如何在 Debian 12 上安装 SuiteCRM
SuiteCRM 是用 PHP 编写的免费开源 CRM(客户关系管理)软件。它可以帮助您组织和管理企业的营销、销售和客户服务部门。 SuiteCRM几乎适用于每个行业,例如制造业、公共部门、技术、金融、教育等。
在本指南中,我们将逐步引导您在 Debian 12 服务器上安装 SuiteCRM。您将在 Debian 计算机上安装并运行带有 LAMP Stack(Apache2、MariaDB 和 PHP)的 SuiteCRM。您还可以使用 Letsencrypt 的 SSL/TLS 证书来保护 SuiteCRM。
先决条件
要继续阅读本指南,必须满足以下要求:
- Debian 12 服务器。
具有管理员权限的非 root 用户。
指向服务器 IP 地址的域名。
安装依赖项
SuiteCRM是一款用PHP编写、以MySQL/MariaDB为数据库的CRM软件。在本指南中,您将使用 LAMP Stack(Apache2、MariaDB 和 PHP)运行 SuiteCRM,现在您将安装带有其他 PHP 扩展的 LAMP Stack 软件包。
首先,通过下面的 apt update 命令更新 Debian 软件包索引。
sudo apt update
现在使用以下命令安装带有一些 PHP 扩展的 LAMP Stack(Apache2、MariaDB 和 PHP)软件包。
sudo apt install apache2 mariadb-server php php-cli php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-intl php-cli php-opcache php-soap php-imap php-ldap unzip
输入 y 继续安装。
接下来,运行以下 systemctl 命令来验证 apache2 服务。这将确保 apache2 服务已启用并正在运行。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
输出enabled 确认apache2 已启用,输出active (running) 确认apache2 正在运行。
使用以下命令验证 mariadb 服务。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
与 apache2 服务输出类似,您应该看到 mariadb 服务已启用并正在运行。
最后,通过执行以下命令验证 PHP 版本和一些启用的扩展。
php -v
php -m
以下输出显示 PHP 8.2 已安装一些启用的模块,例如 curl、exif、fileinfo 和 gd。
配置 MariaDB 服务器
安装依赖项后,您将保护 MariaDB 服务器安装并创建将用于 SuiteCRM 的新数据库和用户。
执行下面的 mariadb-secure-installation 命令来保护您的 MariaDB 服务器。
sudo mariadb-secure-installation
在此过程中,输入 Y 确认配置,或输入 n 否并拒绝更改。
- 切换到 unix_socket 身份验证?输入 n 并按 ENTER 键。默认的 MariaDB root 用户已受到保护。或者,您还可以通过键入 y(表示“是”)来启用它。
- 修改root密码?输入 y 确认并设置新的 MariaDB root 密码。
- 删除匿名用户?输入 y 确认。
- 禁止远程root登录?输入 y 确认。如果您使用 MariaDB root 用户,则仅允许本地连接。
- 删除测试数据库并访问它?输入 y 确认并删除默认数据库“test”。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
现在 MariaDB 已得到保护,您将为 SuiteCRM 创建新的数据库和用户。
通过下面的mariadb客户端命令登录MariaDB服务器。出现提示时输入您的 MariaDB root 密码。
sudo mariadb -u root -p
接下来,运行以下查询来创建新数据库 suitecrmdb 和密码为 password 的用户 suitecrm。请务必使用您自己的密码更改密码。
CREATE DATABASE suitecrmdb;
CREATE USER 'suitecrm'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON suitecrmdb.* TO 'suitecrm'@'localhost';
FLUSH PRIVILEGES;
现在运行以下查询来验证用户 suitecrm。
SHOW GRANTS FOR 'suitecrm'@'localhost';
在以下输出中,您应该看到用户 suitecrm 有权访问数据库 suitecrmdb。
输入 quit 以退出 MariaDB 服务器。
配置 PHP
现在 MariaDB 服务器已配置完毕,下一步是配置 PHP 安装。 SuiteCRM 需要对 PHP 配置进行一些更改,例如自定义 error_reporting、启用 OPCache 模块,以及自定义 upload_max_filesize 和 post_max_size。
使用以下 nano 编辑器命令打开默认 PHP 配置 /etc/php/8.2/apache2/php.ini 和 /etc/php/8.2/cli/php.ini 。
sudo nano /etc/php/8.2/apache2/php.ini
sudo nano /etc/php/8.2/cli/php.ini
使用以下行更改某些配置的默认参数。请务必根据您的服务器时区调整 date.timezone,并根据服务器内存调整 memory_limit。
date.timezone = Europe/Amsterdam
max_execution_time = 60
memory_limit = 256M
upload_max_filesize = 25M
post_max_size = 25M
更改默认的 error_reporting 参数,如下所示:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING
取消注释 session.save_path 参数,将默认会话路径配置为 /var/lib/php/sessions。
session.save_path = "/var/lib/php/sessions"
现在启用 OPCache 扩展并调整一些设置,如下所示:
opcache.enable=1
; The OPcache shared memory storage size.
opcache.memory_consumption=256
; The maximum number of keys (scripts) in the OPcache hash table.
; Only numbers between 200 and 100000 are allowed.
opcache.max_accelerated_files=20000
; When disabled, you must reset the OPcache manually or restart the
; webserver for changes to the filesystem to take effect.
opcache.validate_timestamps=0
完成后保存并关闭文件。
现在运行以下 systemctl 命令来重新启动 apache2 服务并应用您所做的更改。
sudo systemctl restart apache2
下载并安装 SuiteCRM
此时,LAMP 堆栈已针对 SuiteCRM 配置完毕。现在您将下载 SuiteCRM 源代码并通过命令行安装它。
创建一个新目录 /var/www/suitecrm 将用作 SuiteCRM 的目标安装。
mkdir -p /var/www/suitecrm
移至 /var/www/suitecrm 目录并使用下面的 wget 命令下载 SuiteCRM 源代码。请务必检查 SuiteCRM 下载页面以获取最新版本的源代码。目前,SuiteCRM 8.4 是最新版本。
cd /var/www/suitecrm
wget https://suitecrm.com/download/142/suite84/562972/suitecrm-8-4-0.zip
下载后,使用下面的 unzip 命令解压 suitecrm-8-4-0.zip 文件。
unzip suitecrm-8-4-0.zip
然后运行以下命令来设置 SuiteCRM 源代码的适当权限和所有权。
find . -type d -not -perm 2755 -exec chmod 2755 {} \;
find . -type f -not -perm 0644 -exec chmod 0644 {} \;
find . ! -user www-data -exec chown www-data:www-data {} \;
chmod +x bin/console
最后,通过命令行执行二进制文件 /var/www/suitecrm/bin/console 来安装 SuiteCRM。请务必更改将用于 SuiteCRM 安装的数据库名称、用户、主机、目标域名、管理员用户和密码的详细信息。
sudo -u www-data ./bin/console suitecrm:app:install -u "alice" -p "password" -U "suitecrm" -P "password" -H "127.0.0.1" -N "suitecrmdb" -S "http://suitecrm.hwdomain.io/"
安装完成后,您的终端将显示以下输出:
为 Suite 配置 Apache2 虚拟主机
在以下步骤中,您将创建一个新的 Apache2 虚拟主机配置,用于运行 SuiteCRM。在继续之前,请确保您的域名指向您的服务器 IP 地址。
运行下面的 a2enmod 命令以启用 SuiteCRM 所需的 Apache2 模块。
sudo a2enmod rewrite ssl header
然后,使用以下 nano 编辑器命令创建新的 Apache2 虚拟主机配置 /etc/apache2/sites-available/suitecrm.conf。
sudo nano /etc/apache2/sites-available/suitecrm.conf
插入以下配置,并确保将 ServerName 选项更改为您的域名。
<VirtualHost *:80>
DocumentRoot /var/www/suitecrm/public
ServerName suitecrm.hwdomain.io
<Directory /var/www/suitecrm/public>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/suitecrm-error.log
CustomLog /var/log/apache2/suitecrm-access.log common
</VirtualHost>
完成后保存并关闭文件。
现在运行以下命令来激活虚拟主机文件 suitecrm.conf 并验证您的 Apache2 配置。
sudo a2ensite suitecrm.conf
sudo apachectl configtest
如果您的语法正确,您应该会得到输出Syntax OK。
接下来,运行下面的 systemctl 命令来重新启动 apache2 服务并应用更改。
sudo systemctl restart apache2
最后,打开 Web 浏览器并访问 SuiteCRM 安装的域名,例如 http://suitecrm.hwdomain.io/。如果一切顺利,您应该会看到 SuiteCRM 的登录页面。
使用 Letsencrypt 的 SSL/TLS 保护 SuiteCRM
配置完所有内容后,您现在可以使用 Letsencrypt 的 SSL/TLS 证书来保护 SuiteCRM。
使用以下 apt install 命令安装 Certbot 和 Certbot Apache 插件。输入 y 继续安装。
sudo apt install certbot python3-certbot-apache
现在执行下面的 certbot 命令来生成 SSL/TLS 证书。请务必在以下命令中更改域名和电子邮件地址。
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email -d suitecrm.hwdomain.io
该过程完成后,您的 SSL 证书将在 /etc/letsencrypt/live/suitecrm.hwdomain.io 目录中生成。此外,SuiteCRM 虚拟主机文件 suitecrm.conf 将自动配置 HTTPS。
返回您的网络浏览器并访问您的 SuiteCRM 域名,您应该被重定向到 SuiteCRM 登录页面以进行安全的 HTTPS 连接。输入您的管理员用户和密码,然后点击登录。
如果一切顺利,您应该会看到如下所示的 SuiteCRM 管理仪表板:
结论
总而言之,您现在已经使用 LAMP Stack(Apache2、MariaDB 和 PHP)在 Debian 12 服务器上成功安装了 SuiteCRM。您还使用 SSL/TLS Letsencrypt 保护 SuiteCRM,该加密是通过 Certbot 生成的。现在您可以使用 SuiteCRM 作为您企业的主要 CRM(客户关系管理)应用程序,并且可以首先将 SMTP 服务器添加到您的 SuiteCRM 安装中。