如何在Alma Linux 9上安装Drupal
在此页面上
- 先决条件
- 安装依赖项
- 设置Firewalld
- 设置 PHP
- 设置 MariaDB
- 下载Drupal源代码
- 创建Httpd虚拟主机
- 通过 Certbot 设置 HTTPS
- 安装Drupal
- 结论
Drupal 是一个开源内容管理系统 (CMS),用于构建和管理网站。 Drupal 以其灵活性和稳健性而闻名,它允许用户创建和组织内容、自定义演示文稿、自动执行管理任务以及管理用户角色和权限。它因其模块化架构而特别受到青睐,该架构使开发人员能够通过数千个附加模块和主题来扩展和修改功能。 Drupal 具有高度可扩展性,使其适用于小型个人博客以及大型企业和政府网站。其强大的社区支持和全面的文档进一步增强了其可用性和开发潜力。
在本教程中,我们将指导您使用LAMP堆栈(Linux、Apache/Httpd、MariaDB和PHP)在Alma Linux 9服务器上安装Drupal。之后,我们将演示如何使用 Certbot 和 Let's Encrypt 通过 Firewalld 和 SSL 证书来保护您的 Drupal 安装。
先决条件
在开始之前,请确保您满足以下要求:
- Alma Linux 9 服务器。
- 具有管理员权限的非 root 用户。
- 域名指向服务器IP地址。
- 具有许可状态的 SELinux。
安装依赖项
此时Drupal的最新版本需要PHP 8.3,因此需要通过第三方存储库安装。此外,您还将安装其他依赖项,包括 Httpd Web 服务器和 MariaDB 服务器。
在安装依赖项之前,将EPEL和Remi存储库添加到您的Alma Linux服务器。当提示添加存储库时输入 y。
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
在基于 RHEL 的发行版中,某些软件包作为存储库模块提供。使用以下命令通过 Remi 存储库启用 PHP 8.3 的存储库模块。
sudo dnf module reset php
sudo dnf module enable php:remi-8.3
现在使用下面的 dnf 命令安装 LAMP Stack(Apache/Httpd、MariaDB 和 PHP)软件包。出现提示时,输入 y 确认安装。
sudo dnf install httpd mariadb-server php php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-crypto
安装完成后,使用以下命令启动并启用httpd服务。
sudo systemctl start httpd
sudo systemctl enable httpd
然后使用以下命令启动并启用 mariadb 服务。
sudo systemctl start mariadb
sudo systemctl enable mariadb
最后,使用以下命令验证 PHP 版本。您将看到系统上安装了 PHP 8.3。
php -v
php -m
设置Firewalld
默认情况下,firewalld在Alma Linux上启动并运行。您必须通过firewalld 开放对HTTP 和HTTPS 协议的访问,并允许流量到达您的Drupal 安装。
使用以下命令将 HTTP 和 HTTPS 服务添加到 firewalld。然后,重新加载firewalld以应用更改。
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
现在运行以下命令来验证防火墙状态并列出启用的规则。您将看到 HTTP 和 HTTPS 服务都添加到了 firewalld 中。
sudo firewall-cmd --list-all
设置 PHP
在本部分中,您将通过编辑默认配置 /etc/php.ini 并通过 PECL(PHP 扩展社区库)安装附加扩展 uploadprogress 来设置 PHP。 Drupal 需要上传进度扩展,但仅作为 PECL 包提供。
使用下面的 nano 编辑器命令打开 PHP 配置文件 /etc/php.ini。
sudo nano /etc/php.ini
使用以下内容更改默认配置。确保根据当前环境调整 memory_limit 和 date.timezone 选项。
memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Stockholm
完成后保存并退出文件。
现在运行以下命令将 uploadprogress 模块安装到您的系统中。 uploadpprogress 模块在 PECL 存储库中可用,而不是在包存储库中可用。
sudo pecl install uploadprogress
安装完成后,您将得到以下输出:
接下来,运行以下命令创建用于启用 uploadprogress 扩展的新配置。
cat <<EOF | sudo tee /etc/php.d/uploadprogress.ini
; configuration for php uploadprogress module
; priority 15
extension=uploadprogress.so
EOF
重新启动 httpd 服务以应用对 PHP 的修改。
sudo systemctl restart httpd
最后,使用以下命令验证模块上传进度。确保您的 PHP 安装中启用了 uploadprogress 模块。
php -m | grep uploadprogress
设置 MariaDB
配置 PHP 后,您需要配置 MariaDB 服务器安装。您将通过命令行保护 MariaDB,然后通过 MariaDB 客户端为 Drupal 创建新的数据库和用户。
使用以下命令保护您的 MariaDB 服务器。
sudo mariadb-secure-installation
在此过程中,输入Y确认并应用新配置或输入N拒绝配置。以下是需要的 MariaDB 配置:
- 切换到 unix_socket 身份验证?输入 n 并按 ENTER 键。默认的 MariaDB root 用户已受到保护。或者,您也可以通过键入 y(表示“是”)来启用它。
- 修改root密码?输入 y 确认并设置新的 MariaDB root 密码。
- 删除匿名用户?输入 y 确认。
- 禁止远程root登录?输入 y 确认。如果您使用 MariaDB root 用户,则仅允许本地连接。
- 删除测试数据库并访问它?输入 y 确认并删除默认数据库“test”。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
使用下面的 mariadb 命令登录 MariaDB 服务器。出现提示时输入您的 MariaDB root 密码。
sudo mariadb -u root -p
现在运行以下查询来创建一个新的数据库 drupaldb,用户为 drupal,密码为 p4ssword。 Drupal 将使用该数据库,因此请确保根据您的信息调整以下数据库详细信息。
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
接下来,使用以下查询验证用户 Drupal 的权限。您将看到用户 Drupal 可以访问数据库 Drupaldb。
SHOW GRANTS FOR drupal@localhost;
最后,输入 quit 退出 MariaDB 服务器。
下载Drupal源代码
现在您已经配置了 MariaDB 并创建了数据库和用户,您可以下载 Drupal 源代码并配置 Drupal 安装的 DocuemtRoot 或 Web 根目录。在这种情况下,您将通过 wget 下载 Drupal 源代码,而不是通过 Composer 安装它。
转到 /var/www 目录并使用下面的 wget 命令下载最新的 Drupal 源代码。
cd /var/www/
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
下载后,解压 Drupal 源代码并将解压目录重命名为 drupal。这样,您的 Drupal DocumentRoot 目录将位于 /var/www/drupal
tar -xvf drupal.tar.gz
mv drupal-* drupal
现在运行以下命令将/var/www/drupal目录的所有权更改为apache用户,并将权限更改为755。
sudo chown -R apache:apache /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/
创建Httpd虚拟主机
在本部分中,您将为 Drupal 创建新的 Httpd 虚拟主机配置。因此,请确保您已为 Drupal 准备好域名,无论是本地域名还是公共域名。
首先,使用以下 nano 编辑器命令创建新的 httpd 虚拟主机配置 /etc/httpd/conf.d/drupal.conf。
sudo nano /etc/httpd/conf.d/drupal.conf
插入下面的配置,并确保将 ServerName 选项更改为您的域名。
<VirtualHost *:80>
ServerName howtoforge.local
ServerAdmin [email
DocumentRoot /var/www/drupal
ErrorLog /var/log/httpd/howtoforge.local.error.log
CustomLog /var/log/httpd/howtoforge.local.access.log combined
<Directory /var/www/drupal>
Options FollowSymlinks
#Allow .htaccess
AllowOverride All
Require all granted
<IfModule security2_module>
SecRuleEngine Off
# or disable only problematic rules
</IfModule>
</Directory>
<Directory /var/www/drupal/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>
</VirtualHost>
完成后保存文件并退出编辑器。
现在运行以下命令来验证您的 httpd 配置。确保您有输出 Syntax OK,确认您有正确的 httpd 语法。
sudo apachectl configtest
最后,使用以下命令重新启动 httpd 以应用新的虚拟主机更改。
sudo systemctl restart httpd
通过 Certbot 设置 HTTPS
在本部分中,您将通过 Certbot 和 Letsencrypt 为 Drupal 配置 HTTPS。当您使用公共域时执行此操作,对于本地域,您可以生成自签名证书。
使用以下命令安装 Certbot 和 Certbot Apache 插件。输入 y 确认安装。
sudo dnf install certbot python3-certbot-apache
安装完成后,使用下面的 certbot 命令为您的 Drupal 安装生成 SSL/TLS 证书。请务必使用您的信息更改域名和电子邮件地址。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email -d howtoforge.local
该过程完成后,您的 SSL/TLS 证书将在 /etc/letsencrypt/live/domain.com 目录中可用。此外,您的 Drupal 安装应该自动配置 HTTPS。
安装Drupal
打开Web浏览器并访问Drupal安装域名,例如https://howtoforge.local/。
选择您的首选语言,然后单击保存并继续按钮。
对于安装配置文件,如果您是第一次安装 Drupal,请选择“标准”,然后单击保存并继续。
系统检查完成后,您将看到Drupal的数据库配置。输入您的 MariaDB 数据库信息的详细信息,再次单击保存并继续。
现在,Drupal 安装应该开始,您将看到以下内容:
安装完成后,输入您的 Drupal 站点信息的详细信息并为 Drupal 创建一个新的管理员用户。然后,点击保存并继续进行确认。
配置完成后,您将看到如下所示的Drupal主页:
结论
恭喜!您现在已经在Alma Linux 9服务器上安装了Drupal。您已经安装了包含 Httpd、MariaDB 和 PHP 的 Drupal。还使用 Letsencrypt 的 SSL/TLS 保护 Drupal。安装 Drupal 后,开始添加新主题或安装扩展。