如何在 AlmaLinux 9 上使用 Apache 安装 Joomla 并加密 SSL
Joomla 是一种灵活的开源内容管理工具,用于构建网站和在线出版物。它由 PHP 提供支持,可用于多种场景,例如论坛、图库、电子商务和其他基于 Web 的应用程序。
按照我们的教程使用 LAMP 堆栈(Apache/Httpd、MariaDB 和 PHP)在 AlmaLinux 9 服务器上安装 Joomla CMS。
先决条件
在开始之前,请确保您的环境中有以下这些:
- AlmaLinux 9 服务器。
- 具有管理员权限的非 root 用户。
- 具有许可状态的 SELinux。
- 域名指向服务器IP地址。
安装 LAMP 堆栈依赖项
Joomla 是一个用 PHP 编写的内容管理系统,带有 MySQL/MariaDB 数据库。因此,在安装 Joomla 之前,您需要为其安装依赖项。在此示例中,您将在 AlmaLinux 9 服务器上安装带有 LAMP Stack(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 Stack 和其他依赖项。
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 继续安装。另外,如果询问,请输入 y 接受 GPG 密钥。
安装完成后,使用以下命令启动并启用 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 Stack,下一步是为 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 中删除默认数据库测试。
- 最后,输入 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 的列表权限。您将看到具有访问数据库joomladb权限的joomla用户。
SHOW GRANTS FOR joomla@localhost;
最后,输入 quit 退出 MariaDB 服务器。
设置 Firewalld
默认情况下,firewalld运行在AlmaLinux服务器上。所以现在您需要向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 Stack,下一步是下载 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
ServerName hwdomain.io
DocumentRoot /var/www/joomla
<Directory /var/www/joomla/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/hwdomain.io_error.log
CustomLog /var/log/httpd/hwdomain.io_access.log combined
</VirtualHost>
完成后,保存文件并退出编辑器。
现在执行下面的 apachectl 命令来验证您的 httpd 配置。当您拥有正确的语法时,您应该得到一个输出 Syntax OK。
sudo apachectl configtest
最后,使用以下命令重新启动 httpd 服务以应用虚拟主机配置。
sudo systemctl restart httpd
使用 Certbot 和 Letscrypt 进行保护
此时,您已完成所有配置并准备好开始 Joomla 安装。但在此之前,您将使用 Letsencrypt 的 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 -d hwdomain.io
该过程完成后,您的 SSL/TLS 证书将在 /etc/letsencrypt/live/domain.com 目录中可用。此外,您的 Joomla 安装会自动配置 HTTPS。
安装 Joomla
启动 Web 浏览器并访问 Joomla 安装的域名,例如 http://hwdomain.io/。如果安装成功,您将看到Joomla安装页面。
选择默认语言为英语并输入您的基本站点名称。然后点击设置登录数据继续。
现在输入 Joomla 的电子邮件地址、用户名和密码,然后单击设置数据库连接。
输入您的 MariaDB 数据库凭据的详细信息,然后单击安装 Joomla 继续安装。
在 Joomla 安装过程中,您将看到以下内容:
Joomla 安装完成后,您将收到一条消息“恭喜!”您的 Joomla 网站已准备就绪'。
从那里,您可以单击两个链接:
- 打开网站以访问您的 Joomla 网站的主页。
- 打开管理员打开 Joomla 的管理员登录,该登录位于 http://hwdomain.io/administrator。
下面您可以看到 Joomla 的默认主页。
下面是Joomla管理员的登录页面。输入您的用户名和密码,然后点击登录。
如果您有正确的管理员用户和密码,您将获得如下所示的 Joomla 管理员仪表板:
至此,您在 AlmaLinux 9 服务器上的 Joomla 安装就完成了。
结论
恭喜!您已经在AlmaLinux 9 服务器上完成了Joomla 开源内容管理系统的安装。您已使用 LAMP Stack(Apache/Httpd、MariaDB 和 PHP)安装了 Joomla,使用 Letsencrypt 的 SSL/TLS 证书保护 Joomla 的安全,并将firewalld 配置为打开 HTTP 和 HTTPS 端口。