在CentOS 7上安装和配置Drupal 9
Drupal是一个免费的开源内容管理平台,旨在高效地创建专业内容。 Drupal使我们可以轻松创建,在线内容和用户参与社区。 Drupal用PHP编写,它使用数据库后端存储其数据MySQL,MariaDB,SQLite或者PostgreSQL。本指南将向我们展示在CentOS 7 Linux系统上安装和配置Drupal 9所需的步骤。
以下是在CentOS 7上运行Drupal 9的最低要求:
- PHP> = 7.3
- MySQL或者Percona,版本> = 5.7.8
- MariaDB> = 10.3.7
- PostgreSQL> = 10
Drupal 9的一些功能是:
- Layout Builder:允许内容编辑者设计页面而无需工程帮助
- API优先架构:支持构建健壮的去耦和无头应用程序
- 媒体库:使图像,视频和其他资产的管理比以往更加轻松。
- 自动更新
- 新的管理界面和默认主题
在CentOS 7上安装和配置Drupal 9
在本节中,我们将介绍在CentOS 7上运行Drupal所需的依赖项的安装。本指南中使用的Web服务器是Apache,但是我们可以选择使用Nginx或者任何其他Web服务器。 Drupal的优点之一是其自定义级别以及许多可用的插件。
安装数据库服务器
选择我们要使用的数据库服务器,可以是MySQL,MariaDB或者PostgreSQL。在本指南中,我们将使用MariaDB数据库服务器。
在安装数据库之前更新并重新引导系统:
sudo yum -y update sudo systemctl reboot
然后参考我们的有关在CentOS 7上安装MariaDB的指南:
如何在CentOS 7上安装MariaDB
创建Drupal数据库
Drupal CMS需要数据库和用户才能正常运行。打开MariaDB shell。
$mysql -u root -p
为Drupal创建数据库和用户。
CREATE DATABASE drupal; GRANT ALL ON drupal.* TO 'drupal'@'localhost' IDENTIFIED BY 'theitroad@localhost'; FLUSH PRIVILEGES; \q
安装PHP和所需的扩展
我们需要为Drupal 9安装PHP 7.3或者更高版本。为此安装,需要EPEL和REMI存储库:
sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum -y install epel-release
启用PHP 7.3 REMI存储库:
sudo yum -y install yum-utils sudo yum-config-manager --disable remi-php54 sudo yum-config-manager --enable remi-php73
在CentOS 7上安装PHP 7.3:
sudo yum -y install php php-{cli,gd,mysqlnd,mbstring,json,common,dba,dbg,devel,embedded,enchant,bcmath,gmp,intl,ldap,odbc,pdo,opcache,pear,pgsql,process,recode,snmp,soap,xml,xmlrpc}
确认PHP版本:
$php -v PHP 7.3.19 (cli) (built: Jun 9 2017 08:06:30) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.3.19, Copyright (c) 1998-2016 Zend Technologies
安装Web服务器
在本指南中,可以将Apache用作CentOS 7上Drupal的Web服务器:
sudo yum -y install httpd
设置PHP时区和内存限制。
$sudo vi /etc/php.ini memory_limit = 256M date.timezone = Africa/Nairobi
启动并启用httpd服务。
sudo systemctl enable --now httpd
在防火墙中允许http和https协议。
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
检查httpd服务是否正在运行:
$systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2017-06-28 16:24:26 CEST; 2min 48s ago Docs: man:httpd(8) man:apachectl(8) Process: 2708 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 2713 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─2713 /usr/sbin/httpd -DFOREGROUND ├─2714 /usr/sbin/httpd -DFOREGROUND ├─2715 /usr/sbin/httpd -DFOREGROUND ├─2716 /usr/sbin/httpd -DFOREGROUND ├─2717 /usr/sbin/httpd -DFOREGROUND └─2718 /usr/sbin/httpd -DFOREGROUND Jun 28 16:24:26 centos.theitroad.local systemd[1]: Starting The Apache HTTP Server... Jun 28 16:24:26 centos.theitroad.local systemd[1]: Started The Apache HTTP Server.
在CentOS 7上下载Drupal 9
下载Drupal 9 tar包:
sudo yum install -y wget wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
解压缩下载的文件。
tar xvf drupal.tar.gz
将结果文件夹移动到/var/www/html目录。
rm -f drupal*.tar.gz sudo mv drupal-*/ /var/www/html/drupal
确认文件内容:
$ls /var/www/html/drupal autoload.php core INSTALL.txt profiles sites vendor composer.json example.gitignore LICENSE.txt README.txt themes web.config composer.lock index.php modules robots.txt update.php
创建Drupal安装程序所需的其他目录和文件。
sudo mkdir /var/www/html/drupal/sites/default/files sudo cp /var/www/html/drupal/sites/default/default.settings.php /var/www/html/drupal/sites/default/settings.php
将drupal目录的所有权设置为Apache用户和组。
sudo chown -R apache:apache /var/www/html/ sudo chmod -R 755 /var/www/html/
修复SELinux标签:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/drupal(/.*)?" sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/drupal/sites/default/settings.php' sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/drupal/sites/default/files' sudo restorecon -Rv /var/www/html/drupal sudo restorecon -v /var/www/html/drupal/sites/default/settings.php sudo restorecon -Rv /var/www/html/drupal/sites/default/files
为Drupal配置Apache
为Drupal创建一个新的Apache配置。
sudo vi /etc/httpd/conf.d/drupal.conf
修改以下内容,并添加到文件集域,管理员用户和正确的Drupal数据路径。
<VirtualHost *:80> ServerName mysite.com ServerAlias www.mysite.com ServerAdmin theitroad@localhost DocumentRoot /var/www/html/drupal/ CustomLog /var/log/httpd/access_log combined ErrorLog /var/log/httpd/error_log <Directory /var/www/html/drupal> Options Indexes FollowSymLinks AllowOverride All Require all granted RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$index.php?q= [L,QSA] </Directory> </VirtualHost>
确认配置语法:
$sudo apachectl -t Syntax OK
重新启动httpd Web服务器。
systemctl restart httpd
在CentOS 7上安装Drupal 9
打开我们喜欢的Web浏览器以完成在CentOS 7上Drupal 9的安装。
选择安装语言:
选择要使用的安装配置文件。
设置数据库访问详细信息,如先前为Drupal配置的:
等待它完成:
配置站点:
完成后,我们将被定向到管理控制台。
请参阅官方文档,以获取有关Drupal定制和其他配置选项的更多信息。