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

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

本页内容

  • 前置条件
  • 安装依赖
  • 配置 PHP
  • 配置 MariaDB 服务器
  • 通过 Composer 下载 TYPO3 CMS
  • 配置 Apache2 虚拟主机
  • 使用 Certbot 保护 TYPO3 CMS
  • 通过 Web 安装程序安装 TYPO3 CMS
  • 总结

TYPO3 是一款免费的开源企业级内容管理系统。它提供企业级特性,例如可伸缩的 CMS(支持多站点)、多语言安装、强大的安全实现、极速运行,并且可以部署在任何环境中。

使用 TYPO3 CMS 可以让你构建灵活、可靠的网站。TYPO3 CMS 背后是一个充满活力的专业社区。从设计上看,TYPO3 CMS 是一个可插拔的内容管理系统,具备可适配、解耦的架构。

本教程将介绍如何在 Debian 12 服务器的 LAMP 技术栈(Apache2、MariaDB 和 PHP)上安装 TYPO3 CMS。

前置条件

在继续本指南之前,请确保你已经具备:

  • 一台 Debian 12 服务器。
  • 一个具有 sudo 管理员权限的非 root 用户。
  • 一个已指向你服务器 IP 地址的域名。

安装依赖

TYPO3 是一个使用 PHP 编写的开源内容管理系统,支持 MySQL/MariaDB 数据库服务器。TYPO3 CMS 可以通过 Composer PHP 依赖管理器安装,并可以运行在 Apache2 或 Nginx Web 服务器上。

在本指南中,你将使用 LAMP 技术栈(Apache2、MariaDB 和 PHP)以及 Composer 来运行 TYPO3 CMS,这些组件都可以通过 APT 从 Debian 官方仓库轻松安装。请完成以下步骤来为 TYPO3 CMS 安装这些依赖。

首先,使用以下命令更新并刷新你的 Debian 软件源。

sudo apt update

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

现在使用下面的 apt install 命令安装 TYPO3 CMS 所需的软件包依赖。通过该命令,你将安装 LAMP 技术栈(Apache2、MariaDB、PHP)及其额外的 PHP 扩展,以及作为 PHP 依赖管理器的 Composer。

sudo apt install apache2 mariadb-server composer php php-common php-mysql libapache2-mod-php php-gd php-curl php-json php-xmlrpc php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap

输入 yo 以确认并继续安装。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

依赖安装完成后,你必须验证每个依赖项,以确保安装成功。

执行以下命令,确保 apache2 服务正在运行并已启用。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

以下输出表明 apache2 服务正在运行且已启用。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

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

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

与 apache2 服务类似,输出 enabled 确认 mariadb 已启用;输出 active (running) 确认 mariadb 正在运行。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

接下来,使用以下命令验证你的 PHP 版本和扩展。

php -v
php -m

你应该看到已安装 PHP 8.2,并启用了一些扩展,例如 apcu、curl、fileinfo 和 gd。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

最后,执行以下命令确保 Composer 已安装,然后验证 Composer 的版本。

which composer
sudo -u www-data composer -v

以下输出显示 Composer 2.5 已安装在 /usr/bin/composer。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

配置 PHP

安装完成 LAMP 技术栈和 Composer 后,你将配置你的 PHP 安装。TYPO3 CMS 运行需要一些特定的 PHP 设置,现在你将根据 TYPO3 CMS 的安装需要来修改 php.ini 配置。

使用以下 nano 编辑器命令打开默认的 PHP 配置文件 /etc/php/8.2/apache2/php.ini。

sudo nano /etc/php/8.2/apache2/php.ini

像下面这样修改默认的 PHP 配置,并确保根据你的服务器环境调整 memory_limit 和 date.timezone 选项。

memory_limit = 512M
max_execution_time = 240
max_input_vars = 1500
date.timezone = Europe/Amsterdam
post_max_filesize = 50M
upload_max_filesize = 50M

完成后保存并退出文件。

现在运行以下 systemctl 命令以重启 apache2 服务,使 PHP 安装的更改生效。

sudo systemctl restart apache2

然后,通过执行以下命令创建一个新的 PHPINFO 文件 /var/www/html/info.php,这将确保你安装的 PHP 正常工作。

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

最后,打开你的 Web 浏览器,访问服务器 IP 地址加上 PHPINFO 文件路径,例如 http://192.168.10.15/info.php。如果一切顺利,你应该能看到关于你 PHP 安装的详细信息。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

配置 MariaDB 服务器

在接下来的部分中,你将通过 mariadb-secure-installation 工具加固 MariaDB 服务器,并通过 mariadb 客户端创建 TYPO3 CMS 将使用的新数据库和用户。

执行以下 mariadb-secure-installation 命令来加固你的 MariaDB 服务器安装。

sudo mariadb-secure-installation

在此过程中,系统会要求你更改一些默认的 MariaDB 配置。输入 Y 以应用更改,或输入 n(No)拒绝更改。

以下是你将被询问的一些 MariaDB 服务器配置:

  • 切换到 unix_socket 认证?输入 n 并按 ENTER。默认的 MariaDB root 用户已经被保护。你也可以选择性地输入 y(yes)来启用它。
  • 更改 root 密码?输入 y 确认并设置你的新 MariaDB root 密码。
  • 删除匿名用户?输入 y 确认。
  • 禁止 root 远程登录?输入 y 确认。如果你使用的是 MariaDB root 用户,将只允许本地连接。
  • 删除测试数据库及其访问权限?输入 y 确认并删除默认的 'test' 数据库。
  • 最后,再次输入 y 以重新加载 MariaDB 服务器上所有表的权限并应用新更改。

加固 MariaDB 服务器后,你将创建 TYPO3 CMS 将使用的新数据库和用户。要创建它们,你必须通过 mariadb 客户端命令登录到 MariaDB 服务器。

通过以下 mariadb 命令登录到 MariaDB 服务器。在提示时输入你的 MariaDB root 密码。

sudo mariadb -u root -p

登录后,运行以下查询来创建一个新数据库 typo3db 和用户 typo3。请务必更改以下查询中的密码。

CREATE DATABASE typo3db;
GRANT ALL PRIVILEGES ON typo3db.* to typo3@localhost IDENTIFIED BY 'typo3password';
FLUSH PRIVILEGES;

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

接下来,运行以下查询以确保用户 typo3 可以访问数据库 typo3db。

SHOW GRANTS FOR typo3@localhost;

以下输出确认 MariaDB 用户 typo3 可以访问数据库 typo3db。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

输入 quit 退出 MariaDB 服务器。

通过 Composer 下载 TYPO3 CMS

在本指南中,你将安装可以通过 Composer 下载的 TYPO3 CMS 12 版本。在接下来的步骤中,你将设置 Web 根目录并下载 TYPO3 CMS 源码,同时你还将为 TYPO3 CMS 的 Web 根目录配置正确的权限和归属。

使用以下命令创建一个新的 Web 根目录 /var/www/typo3 以及额外的目录 /var/www/{.cache,.config}。目录 /var/www/typo3 将作为你 TYPO3 CMS 安装的 Web 根目录。

mkdir -p /var/www/{.cache,.config,typo3}

现在运行以下命令,将 /var/www/typo3 目录的所有权更改为用户 www-data。然后,为 /var/www/typo3 目录的拥有者启用读写权限。

sudo chown -R www-data:www-data /var/www/{.cache,.config,typo3}
sudo chmod u+rw /var/www/typo3

接下来,进入 /var/www/typo3 目录,并通过以下 composer 命令下载 TYPO3 CMS 源码。在本示例中,你将下载 TYPO3 CMS 12。

cd /var/www/typo3
sudo -u www-data composer create-project typo3/cms-base-distribution:^12 .

过程中会显示以下输出:

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

完成后,你应该得到以下输出:

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

TYPO3 CMS 源码下载完成后,执行以下 ls 命令来列出源码。

ls

你应该看到类似于以下的 TYPO3 CMS 源码列表:

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

配置 Apache2 虚拟主机

在接下来的部分中,你将创建一个新的 Apache2 虚拟主机配置,用于运行 TYPO3 CMS。因此在继续之前,请确保你有一个已指向服务器 IP 地址的域名。

首先,输入以下命令以启用 rewrite 和 headers 模块。

sudo a2enmod rewrite headers

现在使用以下 nano 编辑器命令创建一个新的虚拟主机配置 /etc/apache2/sites-available/typo3.conf。

sudo nano /etc/apache2/sites-available/typo3.conf

插入以下配置,并确保更改你 TYPO3 CMS 安装所用的域名。

<VirtualHost *:80>
    ServerAdmin 
[email protected]
    DocumentRoot /var/www/typo3/public
    ServerName howtoforge.local
     <Directory /var/www/typo3/public/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
    
     <Directory /var/www/typo3/public/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*) index.php [PT,L]
    </Directory>
</VirtualHost>

完成后保存文件并退出编辑器。

接下来,运行以下命令以激活新的虚拟主机文件 typo3.conf,并验证你的 Apache2 语法。

sudo a2ensite typo3.conf
sudo apachectl configtest

当 Apache2 语法正确时,你应该得到 Syntax OK 的输出。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

最后,输入以下命令以重启 apache2 服务,使你所做的更改生效。

sudo systemctl restart apache2

使用 Certbot 保护 TYPO3 CMS

配置虚拟主机后,你将通过启用来自 Letsencrypt 的 SSL/TLS 证书来实现安全的 HTTPS,从而保护你的 TYPO3 CMS 安装。你将使用 Certbot 和 Certbot Apache 插件来生成 Letsencrypt 证书。

使用以下 apt 命令安装 Certbot 和 Certbot Apache 插件。

sudo apt install certbot python3-certbot-apache

输入 y 以继续安装。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

安装完成后,运行以下 certbot 命令来为你的 TYPO3 CMS 安装生成新的 SSL/TLS 证书。请务必将域名和电子邮件地址更改为你自己的信息。

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email 
[email protected]
 -d howtoforge.local

你的 SSL/TLS 证书将位于 /etc/letsencrypt/live/domain.com 目录。并且虚拟主机文件 typo3.conf 将通过 Certbot Apache 插件自动配置 HTTPS。

通过 Web 安装程序安装 TYPO3 CMS

首先,运行以下命令创建一个新的文件 /var/www/typo3/public/FIRST_INSTALL。除非文件 /var/www/typo3/public/FIRST_INSTALL 存在,否则 TYPO3 Web 安装程序将不可用。

sudo -u www-data touch /var/www//typo3/public/FIRST_INSTALL

现在打开你的 Web 浏览器,访问你的 TYPO3 CMS 域名,例如 https://howtoforge.local/。你将被重定向到 TYPO3 Web 安装程序。

确认你的系统环境已就绪,然后点击「未检测到问题」(No problems detected),继续安装。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

输入 MariaDB 数据库的用户、密码和主机信息,然后点击 Continue(继续)。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

选择「使用现有空数据库」(Use existing empty database)选项,并选择数据库 typo3db。然后再次点击 Continue(继续)。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

接下来,为你的 TYPO3 CMS 安装输入新的管理员用户、密码和电子邮件地址。点击 Continue(继续)确认。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

安装完成后,你应该会看到以下页面。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

点击「打开 TYPO3 后台」(Open the TYPO3 Backend)以访问 TYPO3 管理仪表盘。

你将进入 TYPO3 登录页面。输入你的用户名和密码,然后点击 Login(登录)。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

登录成功后,你应该会看到类似以下的 TYPO3 管理仪表盘:

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

在右上角菜单中,点击信息菜单,你应该能看到关于你 TYPO3 CMS 安装的详细信息。在下面的截图中,你应该能看到 TYPO3 CMS 12 与 PHP 8.2、MariaDB 服务器 10.11 以及 Apache2 Web 服务器 2.4 一同安装。

在 Debian 12 上使用 Apache 安装 TYPO3 CMS

总结

总之,你已经成功在 Debian 12 服务器上使用 LAMP 技术栈(Apache2、MariaDB 和 PHP)以及 Composer PHP 包管理器安装了 TYPO3 CMS。你还使用 Certbot 和 Certbot Apache 插件,通过 Letsencrypt 生成的 SSL/TLS 证书保护了你的 TYPO3 CMS 安装。现在你可以使用 TYPO3 CMS 来管理内容、进行记录管理、为多语言站点设置附加语言等等。