使用以下方式创建 VPS 模板 Drupal Xnumx上 Centos 8

我们继续扩大我们的市场。 我们最近讨论了如何 制作了一个 Gitlab 镜像本周它出现在我们的市场中。 Drupal.

我们讲述为​​什么选择它以及图像是如何创建的。

使用以下方式创建 VPS 模板 Drupal Xnumx上 Centos 8

Drupal 是一个方便而强大的平台,可用于创建任何类型的网站:从微型网站和博客到大型社交项目,它也用作 Web 应用程序的基础,用 PHP 编写并使用关系数据库作为数据存储。

Drupal 版本 9 包含了版本 8.9 的所有功能。版本 9 与版本 8 的主要区别在于,该平台在 2021 年 11 月之后仍将继续接收更新和安全补丁。版本 9 还简化了更新流程,使从版本 8 升级更加容易。

服务器要求

使用 Drupal 建议使用 2 GB 内存和 2 个 CPU 核心。

核心文件 Drupal 网站本身大约占用 100 MB 的空间,此外,您还需要空间来存储图片、数据库、主题、附加模块和备份,具体空间大小取决于您的网站大小。

为 Drupal 9 需要 PHP 7.4 或更高版本,且有最低限制(memory_limit)至 64 MB 内存,如果使用附加模块,建议安装 128 MB。

作为网络服务器 Drupal 可以使用 Apache 或 Nginx,数据库可以使用 MySQL、PostgreSQL 或 SQLite。

我们将进行安装 Drupal 使用 Nginx 和 MySQL。

安装

将已安装的软件包更新到最新版本:

sudo dnf update -y

让我们为 http/80 和 https/443 端口的传入流量添加永久权限:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

应用新的防火墙规则:

sudo systemctl reload firewalld

安装 Nginx:

sudo dnf install nginx -y

让我们启动并启用 Nginx 服务器:

sudo systemctl start nginx
sudo systemctl enable nginx

目前在主仓库中 Centos 当前使用的是 PHP 版本 7.2,让我们添加 REMI 存储库,该存储库需要 PHP 7.4(这是最低版本要求)。 Drupal 9)。
为此,请添加 EPEL 存储库(REMI 存储库需要):

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

让我们添加 REMI 存储库:

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

启用 php:remi-7.4 模块来安装 php 7.4:

sudo dnf module enable php:remi-7.4 -y

安装 php-fpm 和 php-cli:

sudo dnf install -y php-fpm php-cli

我们将安装工作所需的 PHP 模块。 Drupal:

sudo dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xml

我们还将安装推荐的 PHP 模块 mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

安装MySQL服务器:

sudo dnf install mysql-server -y

启用并启动 MySQL 服务器:

sudo systemctl start mysqld
sudo systemctl enable mysqld

由于我们正在为 VDS 制作模板,并且它们可能很慢,因此我们将添加 30 秒的 mysqld 启动延迟,否则在初始系统启动期间启动服务器可能会出现问题:

sudo sed -i '/Group=mysql/a 
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service

让我们通过更改 /etc/php-fpm.d/www.conf 来更改 nginx 运行的组和用户:

sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf

相应地将 PHP 会话目录的所有者更改为 nginx:

sudo chown -R nginx. /var/lib/php/session

让我们从 /etc/nginx/nginx.conf 配置文件中删除注释行(这样 sed 就不会出现双重命中):

sudo sed -i -e '/^[ t]*#/d'  /etc/nginx/nginx.conf

将 gzip 压缩设置添加到 /etc/nginx/nginx.conf

sudo sed -i '/types_hash_max_size 2048;/a 

    gzip on;
    gzip_static on;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
    gzip_comp_level 9;
    gzip_proxied any;
    gzip_min_length 1000;
    gzip_disable "msie6";
    gzip_vary on; 
' /etc/nginx/nginx.conf

让我们将index.php索引文件的设置添加到/etc/nginx/nginx.conf中:

sudo sed -i '/        root         /usr/share/nginx/html;/a 
        index index.php index.html index.htm;
' /etc/nginx/nginx.conf

让我们通过 php-fpm 套接字添加默认服务器处理 php 的设置,禁用静态文件的日志,增加过期时间,禁用 favicon.ico 和 robots.txt 的访问和错误日​​志,并拒绝访问 .ht 文件每个人:

sudo sed -i '/        location / {/a 
		try_files $uri $uri/ /index.php?q=$uri&$args;
        }
    
        location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
        access_log off;
        expires max;
        }
    
        location ~ .php$ {
        try_files  $uri =404;
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_ignore_client_abort off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        }
    
        location = /favicon.ico {
        log_not_found off;
        access_log off;
        }
    
        location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
        }
    
        location ~ /.ht {
        deny all;' /etc/nginx/nginx.conf

安装安装 certbot 所需的 wget:

sudo dnf install wget -y

从场外下载 certbot 可执行文件:

cd ~
wget https://dl.eff.org/certbot-auto

将 certbot 移动到 /usr/local/bin/:

mv certbot-auto /usr/local/bin/certbot-auto

并将权利和所有权分配给 root:

chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

安装 certbot 的依赖项并在此阶段停止它(答案:Y、c):

certbot-auto

从官方网站下载最新版本的压缩包。 Drupal 9:

cd ~
wget https://www.drupal.org/download-latest/tar.gz

安装 tar 以解压存档:

sudo dnf install tar -y

删除/usr/share/nginx/html/目录下的默认文件:

rm -rf /usr/share/nginx/html/*

将文件解压到Web服务器目录:

tar xf tar.gz -C /usr/share/nginx/html/

将文件从子目录移动到 Web 服务器的根目录:

mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/

删除子目录:

rm -rf /usr/share/nginx/html/drupal-9.0.7

删除包含安装文件的存档:

rm -f ./tar.gz

设置 nginx 文件的所有者:

chown -R nginx. /usr/share/nginx/html

在此阶段,我们将关闭服务器并拍摄快照:

shutdown -h now

从快照启动 VDS 后,我们将通过运行以下脚本来执行 MySQL 服务器的初始设置:

mysql_secure_installation

启用密码验证器:

Would you like to setup VALIDATE PASSWORD component? : y

设置MySQL root用户密码:

New password:
Re-enter new password:

删除匿名用户:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y

让我们阻止 root 远程连接:

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y

让我们删除测试数据库:

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

重新加载权限表:

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

之后,为了完成安装,我们可以去 vps_ip_地址
在此地址我们将看到安装页面 Drupal.

选择要使用的语言。 例如:俄语。 点击“保存并继续”

让我们选择一个安装配置文件(演示仅用于熟悉系统)。 在我们的例子中,让它成为“标准”。

在下一页上,为数据库命名,例如“drupal”。 指定数据库用户名 root 以及启动 mysql_secure_installation 时给他的密码。 单击“保存并继续”。

让我们等待翻译的安装和更新完成(该过程可能需要几分钟)。

我们将指定网站名称,设置网站邮箱(用于发送网站通知),以及管理员帐户的登录名、密码和邮箱地址。 Drupal我们还需要设置区域设置中的国家/地区和时区。然后,点击“保存并继续”完成安装。

之后,您可以使用创建的管理员登录名和密码登录控制面板。 Drupal.

HTTPS 设置(可选)

要配置 HTTPS,VDS 必须具有有效的 DNS 名称,在中指定

/etc/nginx/nginx.conf

在服务器部分中的服务器名称(例如):

server_name  domainname.ru;

重启nginx:

service nginx restart

让我们启动 certbot:

sudo /usr/local/bin/certbot-auto --nginx

输入您的电子邮件,同意服务条款 (A),订阅时事通讯(可选)(N),选择您要为其颁发证书的域名(全部输入)。

如果一切顺利,我们将看到一条有关证书颁发和服务器设置成功的消息:

Congratulations! You have successfully enabled ...

之后,端口 80 上的连接将被重定向到 443 (https)。

添加到/etc/crontab以自动更新证书:

# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"

设置可信主机安全(推荐)

此设置旨在作为动态 base_url 检测问题的解决方案,并旨在防止 HTTP HOST 标头攻击(当您的网站认为是其他人时)。

为此,您需要在设置文件中指定站点的受信任域名。

在文件中

/usr/share/nginx/html/sites/default/settings.php 取消注释或添加具有实际站点名称模式的设置,例如:

$settings['trusted_host_patterns'] = [
  '^www.mydomain.ru$',
];

安装 PHP APCu(推荐)

Drupal 支持 APCu(PHP 用户缓存替代方案)。版本 8 和 9 比之前的版本更频繁地使用 APCu 作为短期本地缓存。默认缓存大小(32 MB)适用于大多数网站,且不能超过 512 MB。

要激活,请安装 PHP APCu 模块:

dnf -y install php-pecl-apcu

重新启动 nginx 和 php-fpm:

service nginx restart
service php-fpm restart

在使用俄语和APCu以及推荐的缓存大小的情况下,您可以在控制面板中看到一条警告,指出分配的缓存内存的大小与推荐的大小不同,但实际上一切正常,并且不正确警告很可能会在下次更新中得到修复。

或者,如果警告伤害眼睛,您可以使用 来自异地的相应补丁.

我们想提醒您,您也可以为我们制作图像

参与方式有三种选择。

自行准备图像并获得 3000 卢布的余额

如果您准备好立即投入战斗并塑造您所缺乏的形象,我们将在您的内部余额中存入 3000 卢布 - 您可以将其花在服务器上。

如何创建您的形象:

  1. 在我们这里创建一个帐户 在线
  2. 告诉支持人员您将创建和测试图像
  3. 我们将向您赠送 3000 卢布并启用创建快照的功能
  4. 订购具有干净操作系统的虚拟服务器
  5. 在此 VPS 上安装软件并进行设置
  6. 编写软件部署的说明或脚本
  7. 为配置的服务器创建快照
  8. 通过在“服务器模板”下拉列表中选择之前创建的快照来订购新的虚拟服务器
  9. 服务器创建成功后,将第6步收到的材料转发给技术支持
  10. 如果出现错误,您可以向支持人员检查原因并重复设置

对于企业主:提供您的软件

如果您是在 VPS 上部署和使用的软件开发人员,那么我们可以将您纳入市场。 这就是我们如何帮助您吸引新客户、流量和知名度的方式。 写信给我们

请在评论中告诉我们您错过了哪张图片?

我们会自己准备

使用以下方式创建 VPS 模板 Drupal Xnumx上 Centos 8

使用以下方式创建 VPS 模板 Drupal Xnumx上 Centos 8

来源: habr.com

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster