本教程适用于以下操作系统版本
- AlmaLinux 9
- AlmaLinux 8
本页内容
- 准备工作
- 安装 LAMP 技术栈依赖
- 配置 PHP
- 配置 MariaDB 服务器
- 配置 Firewalld
- 下载 Joomla
- 配置 Httpd 虚拟主机
- 使用 Certbot 和 Let's Encrypt 加固安全
- 安装 Joomla
- 总结
Joomla 是一款灵活的开源内容管理系统,用于构建网站和在线出版物。它由 PHP 驱动,可用于多种场景,例如论坛、图片画廊、电子商务以及其他基于 Web 的应用程序。
按照本教程,在 AlmaLinux 9 服务器上使用 LAMP 技术栈(Apache/Httpd、MariaDB 和 PHP)安装 Joomla CMS。
准备工作
在开始之前,请确保你的环境中具备以下条件:
- 一台 AlmaLinux 9 服务器。
- 一个具有管理员权限的非 root 用户。
- SELinux 状态为 permissive(宽松模式)。
- 一个解析到服务器 IP 地址的域名。
安装 LAMP 技术栈依赖
Joomla 是一个用 PHP 编写、使用 MySQL/MariaDB 数据库的内容管理系统。因此在安装 Joomla 之前,你需要先安装其依赖项。本示例中,你将在 AlmaLinux 9 服务器上使用 LAMP 技术栈(Apache/Httpd、MySQL/MariaDB 和 PHP)安装 Joomla。
首先,执行以下命令,将 EPEL 和 Remi 软件源添加到你的 AlmaLinux 服务器。安装一些额外依赖需要 EPEL 软件源,而 PHP 软件包则需要 Remi 软件源。
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

现在执行以下命令,重置 PHP 软件源模块并启用 Remi PHP 模块。输入 y 确认并继续。
sudo dnf module reset php
sudo dnf module enable php:remi-8.2

软件源添加完成后,执行以下命令安装 LAMP 技术栈及额外依赖。
sudo dnf install httpd mariadb-server php php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip wget unzip nano
出现提示时,输入 y 继续安装。如果被要求接受 GPG 密钥,同样输入 y。


安装完成后,使用以下命令启动并启用 httpd 服务。
sudo systemctl start httpd
sudo systemctl enable httpd
然后检查 httpd,确保服务正在运行。
sudo systemctl status httpd
下方可以看到 httpd 服务正在运行。

对于 mariadb 服务,执行以下命令启动并启用它。
sudo systemctl start mariadb
sudo systemctl enable mariadb
然后使用以下命令检查 mariadb 服务。你将看到 mariadb 正在运行。
sudo systemctl status mariadb

最后,执行以下命令,验证 PHP 版本以及已启用的扩展列表。
php -v
php -m
你将看到 PHP 8.2 已安装,如下所示:

配置 PHP
现在你已经在 AlmaLinux 服务器上安装了 LAMP 技术栈,下一步是为 Joomla 配置 PHP 安装。你将修改默认的 PHP 配置文件 php.ini,并做相应更改。
执行以下 nano 命令,打开默认的 PHP 配置文件 /etc/php.ini 。
sudo nano /etc/php.ini
将默认配置修改为以下内容,并务必根据你的可用内存/RAM 调整 memory_limit 选项。
memory_limit=512M upload_max_filesize=64M post_max_size=64M max_execution_time=60 output_buffering = Off
修改完成后保存文件并退出编辑器。
现在使用以下命令重启 httpd 服务,使修改生效。
sudo systemctl restart httpd
配置 MariaDB 服务器
配置完 PHP 后,你将通过 mariadb-secure-installation 工具加固 MariaDB 服务器安装,然后为 Joomla 创建新的数据库和用户。
执行 mariadb-secure-installation 命令,以加固你的 MariaDB 服务器安装。
sudo mariadb-secure-installation
当被要求应用新的配置时,输入 y 确认或 n 拒绝。以下是你会被询问的一些 MariaDB 服务器配置:
- MariaDB 默认安装不带密码,在提示输入密码时直接按 ENTER。
- 输入 Y 以设置 MariaDB root 密码。然后输入 MariaDB 的新密码并重复确认。
- 输入 Y 以从 MariaDB 安装中移除匿名用户。
- 在提示禁用 MariaDB root 用户远程登录时,再次输入 Y。
- 输入 Y 以移除 MariaDB 中默认的 test 数据库。
- 最后,输入 Y 以重新加载表权限并应用新的更改。
MariaDB 服务器配置完成后,你需要为 Joomla 创建一个新的数据库和用户。
执行以下 mariadb 命令登录 MariaDB。出现登录提示时,输入你的 MariaDB root 密码。
sudo mariadb -u root -p
现在执行以下 MariaDB 查询,创建新数据库 joomladb、新用户 joomla(密码为 p4ssword),然后为 joomla 用户授予 joomladb 数据库的权限。
CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;

接下来,使用以下 MariaDB 查询验证 joomla 用户的权限列表。你将看到 joomla 用户拥有访问 joomladb 数据库的权限。
SHOW GRANTS FOR joomla@localhost;

最后,输入 quit 退出 MariaDB 服务器。
配置 Firewalld
默认情况下,AlmaLinux 服务器上 firewalld 处于运行状态。因此现在你需要为 firewalld 开放 HTTP 和 HTTPS 端口。
执行以下 firewall-cmd 命令,在 firewalld 上开放 HTTP 和 HTTPS 服务。然后重新加载 firewalld 使修改生效。
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
现在执行以下命令,查看 firewalld 上已启用的规则列表。
sudo firewall-cmd --list-all
你将看到 HTTP 和 HTTPS 服务都已添加到 firewalld。

下载 Joomla
现在 LAMP 技术栈已安装并配置完成,下一步是下载 Joomla 源代码,为 Joomla 设置文档根目录,并为 Joomla 源代码设置正确的属主。
切换到工作目录 /var/www,并使用以下 wget 命令下载 Joomla 源代码。请务必前往 Joomla 下载页面获取最新版本的链接。
cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-0-2/Joomla_5-0-2-Stable-Full_Package.zip
下载完成后,执行以下 unzip 命令,将 Joomla 源代码解压到 joomla 目录。因此你的 Joomla 文档根目录将位于 /var/www/joomla 目录。
unzip Joomla_5-0-2-Stable-Full_Package.zip -d joomla
最后,执行以下 chmod 命令,将 /var/www/joomla 目录的属主改为 apache 用户和组。这样可以确保 httpd Web 服务器能够访问 Joomla 源代码。
sudo chown -R apache:apache /var/www/joomla
配置 Httpd 虚拟主机
下载好 Joomla 源代码后,下一阶段你将为 Joomla 创建一个新的 httpd 虚拟主机文件。因此继续之前,请确保已为 Joomla 安装准备好域名。
使用以下 nano 编辑器命令,创建新的虚拟主机配置文件 /etc/httpd/conf.d/joomla.conf 。
sudo nano /etc/httpd/conf.d/joomla.conf
插入以下配置,并务必将域名替换为你的 Joomla 域名。同时,请务必修改 Joomla 的访问日志和错误日志路径。
<VirtualHost *:80> ServerAdmin [email protected] ServerName howtoforge.local DocumentRoot /var/www/joomla <Directory /var/www/joomla/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog /var/log/httpd/howtoforge.local_error.log CustomLog /var/log/httpd/howtoforge.local_access.log combined </VirtualHost>
完成后,保存文件并退出编辑器。
现在执行以下 apachectl 命令,验证你的 httpd 配置。如果语法正确,你应当看到 Syntax OK 的输出。
sudo apachectl configtest
最后,使用以下命令重启 httpd 服务,使虚拟主机配置生效。
sudo systemctl restart httpd

使用 Certbot 和 Let's Encrypt 加固安全
至此,所有配置均已就绪,可以开始安装 Joomla 了。但在此之前,你将使用 Let's Encrypt 提供的 SSL/TLS 证书来加固 Joomla 的安全。如果你为 Joomla 安装准备了域名,请按照本节操作;如果没有,可以跳过本节。
首先,使用以下命令安装 Certbot 及 Certbot Apache 插件。
sudo dnf install certbot python3-certbot-apache -y
现在执行以下 certbot 命令,为你的 Joomla 安装生成 SSL/TLS 证书。请务必将域名和邮箱地址替换为你的信息。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email
[email protected]
-d howtoforge.local
流程完成后,你的 SSL/TLS 证书将位于 /etc/letsencrypt/live/domain.com 目录。同时,你的 Joomla 安装会自动配置为使用 HTTPS。
安装 Joomla
打开你的网页浏览器,访问 Joomla 安装的域名,例如 http://howtoforge.local/。如果安装成功,你将看到 Joomla 安装页面。
将默认语言选择为英文,并输入你的站点名称。然后点击 Setup Login Data 继续。

现在输入 Joomla 的邮箱地址、用户名和密码,点击 Setup Database Connection 。

输入你的 MariaDB 数据库凭据信息,点击 Install Joomla 继续安装。

在 Joomla 安装过程中,你将看到如下界面:

Joomla 安装完成后,你将收到一条消息『Congratulations! Your Joomla site is ready』(恭喜!你的 Joomla 站点已就绪)。

在此页面,你可以点击以下两个链接:
- Open Site:访问 Joomla 站点首页。
- Open Administrator:打开 Joomla 后台登录页面,地址为 http://howtoforge.local/administrator。
下方为 Joomla 的默认首页。

下方为 Joomla 管理员登录页面。输入用户名和密码,然后点击 Login 。

如果管理员用户名和密码正确,你将看到如下的 Joomla 管理员仪表盘:

至此,你在 AlmaLinux 9 服务器上安装 Joomla 的工作已全部完成。
总结
恭喜!你已在 AlmaLinux 9 服务器上完成了 Joomla 开源内容管理系统的安装。你使用 LAMP 技术栈(Apache/Httpd、MariaDB 和 PHP)安装了 Joomla,使用 Let's Encrypt 提供的 SSL/TLS 证书加固了 Joomla 的安全,并配置了 firewalld 以开放 HTTP 和 HTTPS 端口。