在CentOS 7上安装和配置Drupal 9

时间:2020-02-23 14:31:03  来源:igfitidea点击:

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定制和其他配置选项的更多信息。