本教程适用于以下操作系统版本
- Ubuntu 24.04 (Noble Numbat)
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 18.04 (Bionic Beaver)
本页内容
- 准备工作
- 安装依赖项
- 配置 PHP
- 配置 MariaDB 服务器
- 下载 Neos CMS 源代码
- 配置 Apache 虚拟主机
- 使用 HTTPS 保护 Neos CMS
- 通过命令行安装 NEOS CMS
- 总结
Neos 是一款免费且开源的内容管理系统,具备直观的编辑体验、完整的国际化支持、极高的灵活性,以及便于与第三方系统集成的特点。
Neos 是一款企业级内容管理系统,内置自定义内容建模能力,提供高效的内容编辑与管理方式、SEO 优化功能(如自动重定向和 SEO 元数据),以及强大的角色与用户管理。
在本指南中,我们将逐步指导你在 Ubuntu 24.04 服务器上安装 Neos CMS。你将使用 LAMP 技术栈、Composer 和 ImageMagick 来安装 Neos CMS,并使用 flow 工具来安装和管理 Neos CMS。
准备工作
在开始本指南之前,请确保你已具备以下条件:
- 一台 Ubuntu 24.04 服务器。
- 一个具有管理员权限的非 root 用户。
- 一个已指向服务器 IP 地址的域名。
安装依赖项
在安装 Neos CMS 之前,你需要安装一些依赖项,例如 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)、Composer、Git 和 ImageMagick。这些软件包在 Ubuntu 软件源中默认提供,你可以通过 APT 进行安装。
首先,使用以下命令更新 Ubuntu 软件包索引:
sudo apt update
现在使用以下命令安装 Neos CMS 所需的依赖项。接下来,你将安装 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)、Composer、Git 和 ImageMagick 等软件包。
sudo apt install apache2 mariadb-server composer git php php-cli php-common php-imap php-redis php-snmp php-xml php-zip php-imagick php-mbstring php-curl libapache2-mod-php php-mysql imagemagick
输入 Y 以确认安装。

安装完成后,检查 Apache 和 MariaDB 服务的状态,确保它们正在运行。
使用以下命令检查 Apache Web 服务器。你将看到该服务已启用并处于 active(运行中)状态。
sudo systemctl is-enabled apache2 sudo systemctl status apache2

现在使用以下命令检查 MariaDB 服务状态——你将看到类似的输出。MariaDB 已启用并处于 active(运行中)状态。
sudo systemctl is-enabled mariadb sudo systemctl status mariadb

最后,使用以下命令检查 PHP 和 Composer 的版本。你的 Ubuntu 系统上已安装 PHP 8.3 和 Composer 2.7。
php -v sudo -u www-data composer -v

配置 PHP
安装依赖项后,你将通过编辑 php.ini 文件来完成 PHP 配置,然后重启 Apache Web 服务器。
使用以下 nano 编辑器命令打开 PHP 配置文件 /etc/php/8.3/apache2/php.ini。
sudo nano /etc/php/8.3/apache2/php.ini
按如下方式修改默认配置。请务必根据你的服务器设置调整 date.timezone 和 memory_limit。
date.timezone = Europe/Amsterdam upload_max_filesize = 80M memory_limit = 512M max_execution_time = 360
完成后,保存文件并退出编辑器。
现在运行以下命令重启 Apache Web 服务器,使 PHP 配置生效。
sudo systemctl restart apache2
配置 MariaDB 服务器
在本节中,你将加固 MariaDB 服务器的安装,并为 Neos CMS 创建新的数据库和用户。你将使用 mariadb-secure-installation 来加固 MariaDB,然后通过 mariadb 客户端访问 MariaDB 服务器。
要加固 MariaDB 服务器安装,请运行以下 mariadb-secure-installation 命令。
sudo mariadb-secure-installation
接下来系统会提示你进行 MariaDB 服务器配置:
- 对于默认未设置 root 密码的 MariaDB 服务器安装,当询问密码时直接按 ENTER。
- MariaDB root 用户的本地身份验证默认已受保护,当询问是否将认证方式改为 'unix_socket' 时,输入 'n'。
- 输入 'Y' 以创建新的 MariaDB root 密码。然后输入你的 MariaDB root 用户强密码并重复确认。
- 当询问是否禁用 MariaDB root 用户的远程身份验证时,输入 'Y' 同意。
- 默认的 MariaDB 服务器安装附带 'test' 数据库,并允许匿名用户访问。
- 对这两项设置均输入 'Y',以删除默认的 'test' 数据库并移除匿名用户的权限。
- 最后,输入 'Y' 确认重新加载表权限。
加固 MariaDB 之后,你将通过 mariadb 客户端工具创建新的数据库和用户。
运行以下命令登录 MariaDB 服务器。当系统询问时,输入你的 MariaDB root 密码。
sudo mariadb -u root -p
现在运行以下 SQL 语句,为 Neos CMS 创建新的数据库和用户。在本示例中,你将创建一个名为 neosdb 的新数据库,以及一个用户名为 neos、密码为 neospassword 的用户。你可以根据实际情况修改这些信息。
CREATE DATABASE neosdb; CREATE USER neos@localhost IDENTIFIED BY 'neospassword'; GRANT ALL PRIVILEGES ON neosdb.* TO neos@localhost IDENTIFIED BY 'neospassword'; FLUSH PRIVILEGES;

接下来,运行以下查询检查用户 neos 的权限。请确保用户 neos 能够访问数据库 neosdb。
SHOW GRANTS FOR neos@localhost;
最后,输入 quit 退出 MariaDB 服务器。

下载 Neos CMS 源代码
现在你已经配置好 PHP 和 MariaDB,接下来将下载 Neos CMS 源代码,并使用 Composer 安装 PHP 依赖项。你还需要为 Neos CMS 安装设置正确的权限和所有权。
首先,运行以下 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 依赖项。
cd /var/www/neos composer install
此时,输入 yes 以确认并以 root 身份运行 Composer。

进程完成后,运行以下命令将 Neos CMS 源代码的权限更改为 www-data 用户。
sudo ./flow core:setfilepermissions www-data www-data sudo chown -R www-data:www-data /var/www/neos
配置 Apache 虚拟主机
在本节中,你将创建新的 Apache 虚拟主机来运行 Neos CMS。因此,请确保你的域名已指向服务器 IP 地址。你可以使用公网域名或本地域名进行开发。
使用以下命令启用 Apache 的 rewrite 和 ssl 模块。
sudo a2enmod rewrite ssl

现在使用以下 nano 编辑器创建新的 Apache 虚拟主机文件 /etc/apache2/sites-available/neos.conf。
sudo nano /etc/apache2/sites-available/neos.conf
将配置内容写入文件,并在 ServerName 选项中填入你的域名。
<VirtualHost *:80>
ServerName howtoforge.local
ServerAdmin
[email protected]
ErrorLog ${APACHE_LOG_DIR}/howtoforge.local.error.log
CustomLog ${APACHE_LOG_DIR}/howtoforge.local.access.log combined
#SetEnv FLOW_CONTEXT Production
DocumentRoot /var/www/neos/Web
# Add security
php_flag register_globals off
<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>
完成后,保存并退出文件。
接下来,运行以下命令激活虚拟主机文件 neos.conf 并验证 Apache 配置语法。如果你的 Apache 语法正确无误,你将看到 Syntax is OK 的输出。
sudo a2ensite neos.conf sudo apachectl configtest
最后,运行以下命令重启 Apache Web 服务器以使更改生效。重启完成后,你的 Neos CMS 应该已经准备就绪。
sudo systemctl restart apache2

使用 HTTPS 保护 Neos CMS
在本指南中,你将通过 Certbot 和 Let's Encrypt 以 HTTPS 方式运行 Neos CMS。这仅在你使用公网域名安装 Neos CMS 时才可行。如果你使用的是本地域名,可以通过 OpenSSL 生成 SSL 证书,并手动配置 HTTPS。
使用以下命令安装 Certbot 和 Certbot Apache 插件。输入 Y 确认安装。
sudo apt install certbot python3-certbot-apache2
现在运行以下 certbot 命令,为 Neos CMS 生成 SSL/TLS 证书。请务必将邮箱地址和域名替换为你自己的信息。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d howtoforge.local
过程完成后,你的 SSL 证书将位于 /etc/letsencrypt/live/domain.com 目录中。此时你的 Neos CMS 应该已通过 HTTPS 自动得到保护。
通过命令行安装 NEOS CMS
既然你已经下载了 Neos CMS 源代码并配置好了 Apache 虚拟主机,接下来将通过终端开始安装 Neos CMS。借助 flow 工具,你可以从终端对 Neos CMS 进行安装和管理。
使用以下命令进入 /var/www/neos 目录:
cd /var/www/neos
运行以下命令为 Neos CMS 设置数据库。选择 mysqli 作为数据库驱动,并输入你之前创建的 MariaDB 数据库和用户信息。
sudo ./flow setup:database
成功后,你将看到类似 Database neosdb was connected successfully 的输出。

现在运行以下命令为 Neos CMS 设置默认图像处理程序,并选择 Imagick。
sudo ./flow setup:imagehandler

配置好数据库和图像处理器后,运行以下命令迁移 Neos CMS 数据库。
sudo ./flow doctrine:migrate
在数据库迁移过程中,你会看到如下输出。

接下来,运行以下命令为你的 Neos CMS 安装创建一个管理员用户。输入你的用户名、邮箱地址、名、姓以及密码。
sudo ./flow user:create --roles administrator
你将看到如下类似的输出:

现在运行以下命令,将 Neos.Demo 站点导入你的安装。如果成功,你将看到 Import of site "Neos Demo site" finished 的输出。
sudo flow:cache:flush sudo ./flow site:import --package-key Neos.Demo

至此,Neos CMS 的安装已完成。访问你的域名(例如 https://howtoforge.local),你将看到如下的 Neos CMS 主页:

要访问 Neos CMS 登录页面,请访问 https://howtoforge.local/login,并输入你创建的管理员用户名和密码。点击 Login 确认。

如果你输入了正确的管理员凭据,你将看到如下的 Neos CMS 仪表盘:

总结
恭喜!你已成功在 Ubuntu 24.04 服务器上完成 Neos CMS 的安装。你现在运行的 Neos CMS 基于 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP),并已通过 Let's Encrypt 的 HTTPS 得到保护。你还学习了用于安装和管理 Neos CMS 的基本命令流程。