如何在 Debian 11 上安装 Neos CMS
在此页
- 先决条件
- 安装 Apache2 Web 服务器
- 安装 MariaDB 数据库服务器
- 设置 MariaDB 数据库和用户
- 安装 PHP 8.1 包
- 安装作曲家
- 安装 Neos Base 发行版
- 设置 Apache2 虚拟主机
- 配置 Neos CMS 安装
- 结论
Neos 是一个免费的开源内容管理系统,具有直观的编辑、完全的国际化、最大的灵活性,并且易于与 3rd 方系统集成。
Neos 是一个内置了自定义内容模型的企业内容管理,提供了一种有效的方式来编辑和管理内容、SEO 优化(例如自动重定向和 SEO 元数据)以及强大的角色和用户管理。
在本教程中,我们将探讨如何在 Debian 11 服务器上安装最新版本的 Neos CMS。对于此示例,我们将使用 MariaDB 数据库服务器、PHP 8.1 和 Apache2 Web 服务器设置 Neos CMS。
先决条件
要学习本教程,您需要一台具有非根用户和 sudo/管理员权限的 Debian 11 服务器,并启用 UFW 防火墙。此外,您将需要一个指向您的 Debian 服务器 IP 地址的域名,特别是如果您正在安装 Neos CMS 用于生产。
安装 Apache2 Web 服务器
Neos CMS 可以在多个 Web 服务器上运行,对于本演示,您将使用 Apache2 Web 服务器。
在开始安装软件包之前,请运行以下 apt 命令来更新和刷新您的 Debian 存储库。
sudo apt update
然后,使用下面的 apt 命令安装 Apache2 Web 服务器。系统将要求您确认安装。按 y 和 ENTER 继续安装。
sudo apt install apache2

Apache2 安装完成后,通过下面的 systemcl 命令检查并验证 apache2 服务。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
您将看到 apache2 的输出已启用并将在启动时自动运行。而apache2服务的状态是running。

最后,打开 Debian 服务器上的 HTTP 和 HTTPS 端口,并通过下面的 ufw 命令允许流量进入。 ufw 应用程序配置文件“WWW Full”将允许访问 HTTP 和 HTTPS 端口。
sudo ufw allow "WWW Full"
sudo ufw status
您将看到 UFW 防火墙当前状态的输出是活动的,以及端口列表和启用的应用程序配置文件。

安装 MariaDB 数据库服务器
Neos CMS 支持两种数据库,MariaDB 和 PostgreSQL。在此示例中,您将使用 MariaDB 数据库服务器运行 Neos CMS。在撰写本文时,当前的 Neos CMS 至少需要 MariaDB 10.2.2。
运行以下 apt 命令以在您的 Debian 服务器上安装 MariaDB。 Debian 存储库上的默认 MariaDB 版本是 MariaDB 10.5,它与 Neos CMS 安装兼容。
sudo apt install mariadb-server
当提示确认该过程时,输入 y 和 ENTER 以继续安装。

安装 MariaDB 后,检查 MariaDB 服务并通过 systemctl 命令验证服务是否正在运行,如下所示。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
您将看到 MariaDB 服务的输出已启用,这意味着它将在系统启动时自动运行。 MariaDB服务的当前状态是运行。

最后,您需要保护您的 MariaDB 服务器安装。为此,您可以使用 MariaDB 包中默认包含的脚本 mysql_secure_installation。
运行以下命令 mysql_secure_installation。
sudo mysql_secure_installation
系统将逐步指导您保护 MariaDB 服务器安装。此过程包括 MariaDB root 密码的配置。因此,一定要为您的 MariaDB 服务器安装使用强密码。
在下一个提示中,系统会询问您有关配置的信息,例如删除默认匿名用户、禁止 root 用户远程登录、删除默认数据库测试以及重新加载表权限。为所有这些提示输入 Y,然后按 ENTER 继续。
设置 MariaDB 数据库和用户
安装并保护 MariaDB 服务器后,您将为 Neos CMS 安装创建一个新的 MariaDB 数据库和用户。为此,您必须登录到 MariaDB shell。
运行下面的 mysql 命令,以默认用户 root 登录 MariaDB shell。当提示输入密码时,输入您的 MariaDB root 密码。
sudo mysql -u root -p
现在,运行以下查询为 Neos CMS 创建一个新的数据库和用户。在以下查询中,您将创建数据库 neosdb,即 MariaDB 用户 [email 。
请务必使用强密码替换 [email 用户的密码。
CREATE DATABASE neosdb;
CREATE USER IDENTIFIED BY 'Password';
FLUSH PRIVILEGES;

之后,运行以下查询以验证 [email 用户的权限。
SHOW GRANTS FOR ;
如果您的数据库和用户配置正确,您将看到 [email 用户的输出具有数据库 neosdb 的权限。

最后,输入以下查询以从 MariaDB shell 注销。
quit
安装 PHP 8.1 包
现在您将安装 PHP 包到您的 Debian 服务器。最新版本的 Neos CMS 至少需要 PHP 7.3,对于本例,您将从第三方存储库安装 PHP 8.1。
在下表中,您可以看到最新版本的 Neos CMS v8 需要 PHP 8.0 或 8.1。
Neos version Flow version compatible PHP version
-------------------------------------------------------
4.3 5.3 7.1 - 7.4*
5.x 6.x 7.2 - 7.4
7.x 7.x 7.3 - 7.4 / 8.0 - 8.1
8.x 8.x 8.0 - 8.1
在安装 PHP 之前,运行以下 apt 命令安装一些用于管理第三方存储库的基本包。在提示确认安装时输入 Y,然后按 ENTER 继续。
sudo apt install ca-certificates apt-transport-https software-properties-common wget curl lsb-release
现在,运行以下命令将 PHP 8.x 的存储库添加到您的 Debian 服务器。这个存储库为 Debian 系统提供了多个版本的 PHP 包。
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
在此过程中,您将看到如下输出:

接下来,使用以下 apt 命令安装 PHP 8.1 包。这些命令将安装一些 PHP 扩展和附加包,例如 ImageMagick,用于 Neos CMS 将使用的图像处理。
sudo apt install php8.1 php8.1-cli php8.1-common php8.1-imap php8.1-redis php8.1-snmp php8.1-xml php8.1-zip php8.1-imagick php8.1-mbstring php8.1-curl libapache2-mod-php php8.1-mysql imagemagick
当要求确认安装时输入 Y,然后按 ENTER 继续。

PHP 安装完成后,使用 nano 编辑器打开文件 /etc/php/8.1/apache2/php.ini。
sudo nano /etc/php/8.1/apache2/php.ini
如下更改默认配置。
date.timezone = Europe/Stockholm
完成后保存文件并退出编辑器。
最后,运行以下命令重新启动 Apache2 服务并将新更改应用于 PHP 配置。
sudo systemctl restart apache2
安装作曲家
Composer 是 PHP 包的包管理工具。您将在您的 Debian 服务器上安装 Composer,它将用于为 Neos CMS 安装 PHP 依赖项。
运行以下命令在 Debian 系统上安装 Composer。此命令将下载 Composer 安装程序脚本,然后运行它。 Composer 的目标安装目录是 /usr/bin,文件名是 composer。
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

现在,使用以下命令验证 Composer 安装。
sudo -u www-data composer -v
您将看到安装在 Debian 系统上的 Composer 版本的输出。

安装 Neos Base 发行版
至此,您已经完成了 Neos CMS 包依赖的安装,包括 Apache2 web 服务器、MariaDB 数据库服务器、PHP 8.1 和 PHP Composer。
现在,您将下载 Neos CMS 源代码并通过 Composer 命令安装 PHP 包依赖项。
运行以下 git 命令将 Neos CMS 源代码下载到目录 /var/www/neos。
git clone https://github.com/neos/neos-base-distribution.git /var/www/neos
接下来,移动到目录 /var/www/neos 并运行 composer 命令为 Neos CMS 安装 PHP 依赖项。
cd /var/www/neos
composer install
PHP 依赖项安装完成后,运行以下命令将 /var/www/neos 目录的所有权和权限更改为 www-data 用户。
sudo ./flow core:setfilepermissions www-data www-data
安装 Neos CMS 源代码和 PHP 依赖项后,您就可以继续为您的安装创建 Apache2 虚拟主机配置。
设置 Apache2 虚拟主机
如果您在生产环境中运行 Neos CMS,请确保您的域名指向您的 Debian 服务器 IP 地址。此外,请确保您已经为您的域安装生成了 SSL 证书。
在创建 Apache 虚拟主机配置之前,运行以下命令以启用 Apache2 模块 mod_ssl 和 mod_rewrite。
sudo a2enmod ssl rewrite
现在,使用以下 nano 编辑器创建一个新的虚拟主机配置文件 /etc/apache2/sites-available/neos.conf。
sudo nano /etc/apache2/sites-available/neos.conf
把域名改成你的域名,把SSL证书的路径改成你的路径。然后,将配置粘贴到文件中。
<VirtualHost *:80>
ServerName hwdomain.io
ServerAdmin
#SetEnv FLOW_CONTEXT Production
DocumentRoot /var/www/neos/Web
# Add security
php_flag register_globals off
ErrorLog ${APACHE_LOG_DIR}/hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io.access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem
<Directory /var/www/neos/Web>
AllowOverride All
</Directory>
<Directory /var/www/neos/Web/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
</Directory>
</VirtualHost>
</IfModule>
完成后保存文件并退出编辑器。
接下来,使用以下命令激活虚拟主机配置 neos.conf。然后,验证 Apache2 配置文件。
sudo a2ensite neos.conf
sudo apachectl configtest
如果您有正确的 Apche2 配置文件,您将看到诸如 \Syntax OK\ 之类的输出。
最后,重新启动 apache2 服务以通过 systemctl 命令应用新更改,如下所示。
sudo systemctl restart apache2
配置 Neos CMS 安装
要开始配置 Neos CMS 安装,请打开您的 Web 浏览器并访问您的 Neos CMS 安装的域名(即:https://hwdomain.io/)。
首先,您会看到来自 Neos 的欢迎信息。单击“转到设置”开始配置 Neos CMS。

Neos CMS 初始化将开始。

要启动 Neos CMS 配置,系统会要求您输入设置密码。
返回到您的终端服务器并运行以下命令以显示 Neos CMS 的设置密码。
cat /var/www/neos/Data/SetupPassword.txt

复制生成的设置密码并将其粘贴到 Neos 设置页面。然后,单击“登录”。

现在您将看到 Neos 要求检查的页面。确保安装了其中一种图像处理。然后,单击“下一步”。
在此示例中,我们使用图像处理 ImageMagick,并安装了 php-imagick 和 ImageMagick 包。

对于数据库配置,输入数据库用户名、密码和主机。然后,选择用于 Neos CMS 安装的数据库。之后,点击“下一步”进行下一步配置。

现在单击详细信息新的管理员用户和密码、名字和姓氏。然后,单击“下一步”。

对于新的 Neos 站点配置,在站点包中选择“Neos.Demo”,并在站点名称配置中输入您的 Neos CMS 安装的域名。
单击“下一步”继续安装。

当 Neos CMS 安装和配置完成后,您将看到以下页面。

单击按钮“转到前端”以获取 Neos CMS 安装的默认主页。或者您可以单击“转到后端”以获取 Neos CMS 管理仪表板。
下面是带有“Neos.Demo”站点包的 Neos CMS 安装的默认主页。

当您单击“转到后端”按钮时,您将被重定向到 Neos CMS 登录页面。输入 Neos CMS 安装的用户名和密码,然后单击“登录”。

如果您的 neos CMS 的用户名和密码正确,您将看到 Neos CMS 的管理仪表板。

结论
在本指南中,您已经在 Debian 11 服务器上安装了带有 Apache2 网络服务器、MariaDB 数据库服务器和 PHP 8.1 的 Neos CMS。此外,您还学习了用于安装 PHP 包依赖项的 PHP Composer 的安装。您还为启用了安全 SSL 的 Neos CMS 创建了 Apache 虚拟主机配置。
Neos CMS 是下一代 CMS,可灵活用于不同类型的使用。您现在可以立即开始使用 Neos CMS 管理您的内容并发布您的网站。