本教程适用于以下操作系统版本

  • Debian 12(Bookworm)
  • Debian 11(Bullseye)
  • Debian 9(Stretch)

本页内容

  • 前置条件
  • 安装依赖项
  • 配置 MariaDB 服务器
  • 配置 PHP
  • 下载并安装 SuiteCRM
  • 为 Suite 配置 Apache2 虚拟主机
  • 使用 Letsencrypt 的 SSL/TLS 保护 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 编写的 CRM 软件,使用 MySQL/MariaDB 作为数据库。在本指南中,您将使用 LAMP Stack(Apache2、MariaDB 和 PHP)运行 SuiteCRM,现在您将安装 LAMP Stack 软件包以及额外的 PHP 扩展。

首先,通过以下 apt update 命令更新您的 Debian 软件包索引。

sudo apt update

在 Debian 12 上安装 SuiteCRM

现在使用以下命令安装 LAMP Stack(Apache2、MariaDB 和 PHP)软件包以及一些 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 以继续安装。

在 Debian 12 上安装 SuiteCRM

接下来,运行以下 systemctl 命令验证 apache2 服务。这将确保 apache2 服务已启用并正在运行。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

输出 enabled 确认 apache2 已启用,输出 active (running) 确认 apache2 正在运行。

在 Debian 12 上安装 SuiteCRM

使用以下命令验证 mariadb 服务。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

与 apache2 服务的输出类似,您应该看到 mariadb 服务已启用并正在运行。

在 Debian 12 上安装 SuiteCRM

最后,通过执行以下命令验证 PHP 版本以及一些已启用的扩展。

php -v
php -m

以下输出向您显示,已安装 PHP 8.2,并且启用了一些模块,例如 curl、exif、fileinfo 和 gd 。

在 Debian 12 上安装 SuiteCRM

配置 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 的新数据库,以及用户 suitecrm,密码为 password 。务必将密码更改为您自己的密码。

CREATE DATABASE suitecrmdb;
CREATE USER 'suitecrm'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON suitecrmdb.* TO 'suitecrm'@'localhost';
FLUSH PRIVILEGES;

在 Debian 12 上安装 SuiteCRM

现在运行以下查询以验证用户 suitecrm 。

SHOW GRANTS FOR 'suitecrm'@'localhost';

在以下输出中,您应该看到用户 suitecrm 有权访问数据库 suitecrmdb 。

在 Debian 12 上安装 SuiteCRM

输入 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 Stack 已为 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.howtoforge.local/"

安装完成后,以下输出将显示在您的终端上:

在 Debian 12 上安装 SuiteCRM

为 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.howtoforge.local
 <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 的输出。

在 Debian 12 上安装 SuiteCRM

接下来,运行以下 systemctl 命令重启 apache2 服务并应用更改。

sudo systemctl restart apache2

最后,打开您的 Web 浏览器并访问您 SuiteCRM 安装的域名,例如 http://suitecrm.howtoforge.local /。如果一切顺利,您应看到 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 protected]
 -d suitecrm.howtoforge.local

一旦过程完成,您的 SSL 证书将生成在 /etc/letsencrypt/live/suitecrm.howtoforge.local 目录中。此外,SuiteCRM 虚拟主机文件 suitecrm.conf 将自动配置为使用 HTTPS。

回到您的 Web 浏览器并访问您的 SuiteCRM 域名,您应被重定向到 SuiteCRM 登录页面以建立安全的 HTTPS 连接。输入您的管理员用户和密码,然后单击 Login 。

在 Debian 12 上安装 SuiteCRM

如果一切顺利,您应看到如下所示的 SuiteCRM 管理仪表板:

在 Debian 12 上安装 SuiteCRM

总结

总结一下,您现在已成功在 Debian 12 服务器上通过 LAMP Stack(Apache2、MariaDB 和 PHP)安装了 SuiteCRM。您还使用通过 Certbot 生成的 Letsencrypt SSL/TLS 保护了 SuiteCRM。现在您可以将 SuiteCRM 用作企业的主要 CRM(客户关系管理)应用程序,并且您可以从向 SuiteCRM 安装添加 SMTP 服务器开始。