如何在Nginx上安装Drupal 9并在Debian 10上加密SSL

如何在Nginx上安装Drupal 9并在Debian 10上加密SSL

Drupal是流行的基于PHP的开源内容管理系统。它是免费的,并根据GNU通用公共许可证发行。 Drupal可以在各种规模的网站上使用,从庞大的国际网站到个人博客,公司和政府网站。

drupal的核心部分称为“ Drupal核心”,它包括基本的内容管理系统,用户管理,菜单管理,布局定制和系统管理。 Drupal Core可以通过插件扩展。到目前为止,Drupal社区已经为Drupal提供了超过31.000个模块。

本教程显示了如何在Debian Buster 10上安装Drupal 9。在LEMP堆栈(Linux,Nginx,MySQL / MariaDB和PHP-FPM)上运行Drupal,并使用SSL Letsencrypt保护安装。 ..

先决条件

本指南将在具有2 GB RAM,50 GB可用磁盘空间和2个CPU的最新版本的Debian Buster 10上测试您的Drupal安装。您还需要root sudo特权才能安装新软件包和编辑系统软件配置。

我该怎么办?

  • 安装Nginx Web服务器
  • 安装和配置PHP-FPM
  • 安装和配置MariaDB
  • 生成SSL Letsencrypt
  • 为Drupal 9设置Nginx Virtualhost
  • 下载Drupal 9源代码
  • 安装Drupal 9之后

第1步-安装Nginx Web服务器

首先,在您的Debian服务器上安装Nginx Web Server。

使用以下apt命令更新系统上可用的存储库,并将所有软件包升级到最新版本。

sudo apt updatesudo apt upgrade

然后使用以下命令安装Nginx Web服务器软件包。

sudo apt install nginx -y

安装完所有内容后,启动Nginx服务并将其添加到系统引导中。

systemctl start nginxsystemctl enable nginx

Nginx服务正在运行。使用以下命令进行检查。

systemctl status nginx

以下是您将获得的结果。

结果,Nginx服务在Debian Buster 10上运行。

在此步骤中,您将在Debian 10上安装并配置PHP-FPM 7.3以安装Drupal。

使用以下apt命令安装PHP和PHP-FPM软件包7.3。

sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y

安装完所有内容后,转到“ /etc/php/7.3”目录,然后使用vim编辑器编辑配置“ php.ini”。

cd /etc/php/7.3/fpm/vim php.ini

取消注释并修改高级配置,如下所示:

date.timezone = Asia/Singaporememory_limit = 256Mupload_max_filesize = 64Mmax_execution_time = 600cgi.fix_pathinfo = 0

保存并关闭。

然后重新启动PHP-FPM服务并将其添加到系统引导中。

systemctl restart php7.3-fpmsystemctl enable php7.3-fpm

默认情况下,PHP-FPM服务已启动并在sock文件下运行

启动php-fpm服务

使用以下命令检查PHP-FPM服务:

ss -plnt | grep phpsystemctl status php7.3-fpm

以下是您将获得的结果。

检查php-fpm服务和sock文件

结果,您已经在Debian Buster 10上完成了Drupal 9 PHP-FPM的安装和配置。

在安装了PHP和PHP-FPM软件包之后,安装MariaDB数据库并为Drupal 9创建一个新数据库。

使用以下apt命令安装MariaDB软件包。

sudo apt install mariadb-server mariadb-client

然后启动MariaDB服务并将其添加到系统引导中。

systemctl start mysqlsystemctl enable mysql

结果,MariaDB数据库安装在Debian服务器上。

设置MySQL root密码

然后使用mysql_secure_installation命令设置默认的MariaDB root用户密码,如下所示:

mysql_secure_installation

输入默认的root密码,然后单击ÿ‘所有选项。

Enter current password for root (enter for none): OK, successfully used password, moving on...Set a root password? [Y/n] YRemove anonymous users? [Y/n] YDisallow root login remotely? [Y/n] YRemove test database and access to it? [Y/n] YReload privilege tables now? [Y/n] Y

然后,设置MariaDB根密码。

接下来,您需要访问MySQL Shell并为Drupal安装创建一个新的数据库和用户。

使用默认的root用户和密码登录到MySQL shell,如下所示:

mysql -u root -p

创建一个名为“ drupaldb”的新数据库,一个密码“ drupaluser”和一个用户“ drupaluser”。[email protected]’使用以下MySQL查询。

create database drupaldb;create user [email protected] identified by '[email protected]';grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';flush privileges;

类型”出口‘要么’Ctrl + d单击“按钮”退出MySQL Shell。

创建Drupal数据库

结果,您为Drupal安装创建了一个新的数据库和用户。

在本教程中,您将使用SSL Letsencrypt保护您的Drupal 9安装。因此,请确保服务器的IP地址具有可解析的域名。

要使用SSL Letsencrypt,您需要使用certbot工具生成SSL证书。

使用以下apt命令安装certbot工具。

sudo apt install certbot -y

然后停止Nginx服务,并使用以下命令为您的Drupal域名生成SSL Letsencrypt:

systemctl stop nginxcertbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io

请更改为您自己的电子邮件地址。完成所有步骤后,SSL证书将在“ /etc/letsencrypt/live/yourdomain.com”目录中可用。

在此步骤中,您将为Drupal创建一个新的Nginx虚拟主机配置。

转到etc / nginx / sites-available目录,然后使用vim编辑器创建新的虚拟主机配置“ drupal9”。

cd /etc/nginx/sites-available/vim drupal9

将SSL Letsencrypt证书的域名和路径更改为您自己的证书,然后将其粘贴。

server {    server_name drupal.hakase-labs.io;    root /var/www/drupal9; ## <-- Your only path reference.    listen 80;    listen [::]:80;    listen 443 default ssl;    ssl_certificate      /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;    ssl_certificate_key  /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;    # Redirect HTTP to HTTPS    if ($scheme = http) {        return 301 https://$server_name$request_uri;    }    location = /favicon.ico {        log_not_found off;        access_log off;    }    location = /robots.txt {        allow all;        log_not_found off;        access_log off;    }    # Very rarely should these ever be accessed outside of your lan    location ~* .(txt|log)$ {        allow 192.168.0.0/16;        deny all;    }    location ~ ..*/.*.php$ {        return 403;    }    location ~ ^/sites/.*/private/ {        return 403;    }    # 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 @rewrite; # For Drupal <= 6        try_files $uri /index.php?$query_string; # For Drupal >= 7    }    location @rewrite {        rewrite ^/(.*)$ /index.php?q=$1;    }    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,    # such as update.php/selection. The rule we use is strict, and only allows this pattern    # with the update.php front controller.  This allows legacy path aliases in the form of    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have    # any paths like that, then you might prefer to use a laxer rule, such as:    #   location ~ .php(/|$) {    # The laxer rule will continue to work if Drupal uses this new URL pattern with front    # controllers other than update.php in a future release.    location ~ '.php$|^/update.php' {        fastcgi_split_path_info ^(.+?.php)(|/.*)$;        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini        include fastcgi_params;        include snippets/fastcgi-php.conf;        fastcgi_param SCRIPT_FILENAME $request_filename;        fastcgi_intercept_errors on;        fastcgi_pass unix:/run/php/php7.3-fpm.sock;    }    # Fighting with Styles? This little gem is amazing.    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7        try_files $uri @rewrite;    }    location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {        expires max;        log_not_found off;    }}

保存并关闭。

接下来,激活Drupal的Nginx虚拟主机配置。

ln -s /etc/nginx/sites-available/drupal9 /etc/nginx/sites-enabled/

测试Nginx配置,确保没有错误,然后重新启动Nginx服务。

nginx -tsystemctl restart nginx

您已经完成了Drupal的Nginx虚拟主机设置。

为Drupal设置Nginx虚拟主机

第6步-下载Drupal

在此步骤中,您将下载最新的Drupal版本9并将其安装在“ / var / www”目录中。

然后转到“ / var / www”目录,并使用wget命令下载Drupal源代码,如下所示:

cd /var/www/wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz

提取drupal源代码并将目录重命名为“ drupal9”。

tar -xf drupal-latest.tar.gzmv drupal-9*/ drupal9/

然后将Drupal安装目录的所有权更改为用户“ www-data”。

chown -R www-data:www-data /var/www/drupal9

结果,Drupal安装目录位于“ / var / www / drupal9”目录中。

下载Drupal 9源代码

步骤7-安装Drupal之后

打开Web浏览器,然后在地址栏中输入Drupal URL安装。

https://drupal.hakase-labs.io/

您将被重定向到安全的HTTPS连接。

现在,为您的Drupal安装选择默认语言。默认语言是“英语‘。

Drupal设置语言

选择它作为您的首选语言,然后保存并继续‘按钮。

选择Drupal安装配置文件,然后单击保存并继续‘。如果您是首次安装Drupal,标准‘安装配置文件。

Drupal安装类型

对于MySQL数据库配置,输入在顶部创建的详细数据库,然后单击保存并继续‘按钮。

Drupal数据库设置

然后,您将获得如下的Drupal安装过程。

Drupal安装过程

完成所有安装后,配置站点名称,管理员用户,密码,电子邮件等。

Drupal站点结构

请点击保存并继续‘按钮。

这将使您重定向到Drupal的默认索引页面,如下所示。

Drupal主页

点击“宪法单击“ op”菜单以显示“ Drupal管理设置”仪表板。

Drupal管理仪表板

结果,我已经在Debian Buster 10上成功安装了带有LEMP堆栈的Drupal 9。

Source

Sidebar