Drupal 8 基础教程: 001. Drupal 8 安装 (MAMP版)
目录:
Drupal是全球领先的开源CMS平台之一。 它具有灵活性,可扩展性,可用于构建各种类型的网站,从小型个人博客到大型企业,政治和政府网站。
在本教程中,我们将解释如何在CentOS 7上安装Drupal 8.6。
有多种安装Drupal的方法。 本指南介绍了使用Composer模板为Drupal项目(称为drupal-project)安装Drupal的必要步骤。
我们将使用Nginx作为Web服务器,使用最新的PHP 7.2和MySQL / MariaDB作为数据库服务器。
先决条件
在开始安装之前,请确保您满足以下先决条件:
- 有一个指向您的公共服务器IP的域名。 我们将使用
example.com。已安装Nginx。已为您的域安装了SSL证书。 您可以按照以下说明安装免费的Let's Encrypt SSL证书。以具有sudo特权的用户身份登录。
创建一个MySQL数据库
第一步是创建一个新的数据库和用户帐户,并向用户授予适当的权限。
如果您的服务器上已经安装了MySQL或MariaDB,则可以跳过此步骤,如果没有,则可以通过键入以下内容从CentOS的默认存储库中安装MariaDB 5.5服务器软件包:
sudo yum install mariadb-server
对于全新的MariaDB / MySQL安装,建议运行
mysql_secure_installation
命令以提高数据库服务器的安全性。
通过键入以下命令登录到MySQL Shell,并在出现提示时输入密码:
mysql -u root -p
要创建一个名为
drupal
的数据库,该用户名为
drupaluser
并向该用户授予必要的权限,请运行以下命令:
CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';
安装PHP
CentOS 7附带PHP版本5.4,该版本已过时且不再受支持。 Drupal的推荐PHP版本是PHP 7.2。
首先要在CentOS 7上安装PHP 7.2,我们需要启用EPEL和Remi存储库:
sudo yum install epel-release yum-utils
sudo yum install
sudo yum-config-manager --enable remi-php72
启用存储库以安装PHP 7.2后,所有必需的PHP扩展都将运行以下命令:
sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git
我们安装PHP FPM是因为我们将使用Nginx作为Web服务器。
默认情况下,PHP FPM将以用户
apache
身份在端口9000上运行。我们将用户更改为
nginx
,然后从TCP套接字切换到Unix套接字。 为此,打开
/etc/php-fpm.d/www.conf
文件并编辑以黄色突出显示的行:
… user = nginx… group = nginx… listen = /run/php-fpm/www.sock… listen.owner = nginx listen.group = nginx
使用以下chown命令,确保
/var/lib/php
目录具有正确的所有权:
sudo chown -R root:nginx /var/lib/php
最后,启用并启动PHP FPM服务:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
安装Composer
Composer是PHP的依赖项管理器。 我们将下载Drupal模板,并使用composer安装所有必需的Drupal组件。
以下命令将通过使用curl下载Composer安装程序并将文件移动到
/usr/local/bin
目录来全局安装composer:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
通过运行以下命令来验证安装,该命令将打印作曲家的版本:
composer --version
输出应如下所示:
Composer version 1.8.4 2019-02-11 10:52:10
安装Drupal
现在已经安装了作曲器,使用
/var/www/my_drupal
目录中的Drupal模板创建一个新的Drupal项目:
sudo /usr/local/bin/composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction
上面的命令将下载模板,获取所有必需的php包,并运行准备项目进行安装所需的脚本。 该过程可能需要几分钟,如果成功,则输出结束将如下所示:
Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777
下一步是使用Drush安装Drupal。 在下面的命令中,我们传递在第一部分中创建的MySQL数据库和用户信息:
cd /var/www/my_drupal
sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal
安装程序将提示您以下消息,只需按Enter即可继续。
You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):
安装完成后,脚本将打印管理用户名和密码。 输出应类似于以下内容:
Starting Drupal installation. This takes a while. Installation complete. User name: admin User password: frxka2Db5v
最后,设置正确的权限,以便Web服务器可以完全访问站点的文件和目录:
sudo chown -R nginx: /var/www/my_drupal
配置Nginx
到目前为止,如果没有检查本教程的先决条件,那么您应该已经在系统上安装了带有SSL证书的Nginx。
为了为我们的新Drupal项目创建一个新的服务器块,我们将使用来自Nginx官方站点的Nginx配方。
打开您的文本编辑器并创建以下文件:
sudo nano /etc/nginx/conf.d/example.com
/etc/nginx/conf.d/example.com
# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # Block access to "hidden" files and directories whose names begin with a # period. This includes directories used by version control systems such # as Subversion or Git to store control files. location ~ (^|/)\. { return 403; } location / { try_files $uri /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' fastcgi_split_path_info ^(.+?\.php)(# Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } }
不要忘记用您的Drupal域替换example.com并为SSL证书文件设置正确的路径。 所有HTTP请求都将重定向到HTTPS。 本指南中创建了此配置中使用的摘录。
在重新启动Nginx服务之前,请进行测试以确保没有语法错误:
sudo nginx -t
重新启动Nginx服务,以使更改生效,方法是输入:
测试安装
打开浏览器,键入您的域,并假设安装成功,将出现类似于以下的屏幕:
您可以以管理员身份登录并开始自定义新的Drupal安装。
安装Drupal模块和主题
现在您已经安装了Drupal项目,您将需要安装一些模块和主题。 Drupal模块和主题托管在一个自定义的Composer信息库中,Drupal-project可以直接为我们进行配置。
要安装模块或主题,您所需要做的就是
cd
到项目目录并键入
composer require drupal/module_or_theme_name
。 例如,如果要安装Pathauto模块,则需要运行以下命令:
cd /var/www/my_drupal
sudo -u nginx /usr/local/bin/composer require drupal/pathauto
通过在
sudo -u nginx
之前添加
sudo -u nginx
我们以用户
nginx
身份运行命令
Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles
从上面的输出中可以看到,composer还为我们安装了所有软件包依赖项。
更新Drupal Core
升级之前,最好备份文件和数据库。 您可以使用“备份和迁移”模块,也可以手动备份数据库和文件。
要备份安装文件,可以使用以下rsync命令,当然,您需要使用正确的安装目录路径:
sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)
要备份数据库,我们可以使用标准的
mysqldump
命令:
mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql
或
drush sql-dump
:
cd /var/www/my_drupal
vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql
现在我们已经创建了备份,我们可以通过运行以下命令继续并更新所有Drupal核心文件:
sudo -u nginx /usr/local/bin/composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies
结论
恭喜,您已经成功使用composer安装了Drupal 8,并了解了如何安装模块和主题。 现在,您可以开始自定义您的网站了。 Drupal 8用户指南是学习如何管理Drupal安装的更多信息的良好起点。 另外,不要忘记访问Github上的Drupal Composer模板项目。
centos drupal mysql mariadb cms nginx作曲家如何在centos 7上添加和删除用户
知道如何添加和删除用户是Linux用户应该知道的基本技能之一。 在本教程中,我们将说明如何在CentOS 7系统上添加和删除用户。
如何在centos 7上添加交换空间
交换是物理RAM内存已满时使用的磁盘空间。 本教程说明了如何在CentOS 7系统上添加交换文件。
如何在centos 8上添加交换空间
交换是物理RAM内存已满时使用的磁盘空间。 本文介绍了在CentOS 8系统上添加交换文件的步骤。







