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

  • 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 以确认安装。

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

安装完成后,检查 Apache 和 MariaDB 服务的状态,确保它们正在运行。

使用以下命令检查 Apache Web 服务器。你将看到该服务已启用并处于 active(运行中)状态。

sudo systemctl is-enabled apache2 sudo systemctl status apache2

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

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

sudo systemctl is-enabled mariadb sudo systemctl status mariadb

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

最后,使用以下命令检查 PHP 和 Composer 的版本。你的 Ubuntu 系统上已安装 PHP 8.3 和 Composer 2.7。

php -v sudo -u www-data composer -v

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

配置 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;

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

接下来,运行以下查询检查用户 neos 的权限。请确保用户 neos 能够访问数据库 neosdb。

SHOW GRANTS FOR neos@localhost;

最后,输入 quit 退出 MariaDB 服务器。

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

下载 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。

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

进程完成后,运行以下命令将 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

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

现在使用以下 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

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

使用 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 的输出。

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

现在运行以下命令为 Neos CMS 设置默认图像处理程序,并选择 Imagick。

sudo ./flow setup:imagehandler

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

配置好数据库和图像处理器后,运行以下命令迁移 Neos CMS 数据库。

sudo ./flow doctrine:migrate

在数据库迁移过程中,你会看到如下输出。

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

接下来,运行以下命令为你的 Neos CMS 安装创建一个管理员用户。输入你的用户名、邮箱地址、名、姓以及密码。

sudo ./flow user:create --roles administrator

你将看到如下类似的输出:

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

现在运行以下命令,将 Neos.Demo 站点导入你的安装。如果成功,你将看到 Import of site "Neos Demo site" finished 的输出。

sudo flow:cache:flush sudo ./flow site:import --package-key Neos.Demo

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

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

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

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

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

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

在 Ubuntu 24.04 上安装 NEOS CMS 内容管理系统

总结

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