ΠΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΏΠ°Π·Π°Ρ. ΠΠ°ΡΠΊΠΎΡΠΎ Π²ΠΈ ΠΊΠ°Π·Π°Ρ
ΠΌΠ΅ ΠΊΠ°ΠΊ
Π Π°Π·ΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π²ΠΈ Π·Π°ΡΠΎ ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅ Π½Π΅Π³ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΠ±ΡΠ°Π·ΡΡ.
Drupal β ΡΠ΄ΠΎΠ±Π½Π° ΠΈ ΠΌΠΎΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΡΠ΅Π±ΡΠ°ΠΉΡΠΎΠ²Π΅: ΠΎΡ ΠΌΠΈΠΊΡΠΎΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈ Π±Π»ΠΎΠ³ΠΎΠ²Π΅ Π΄ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΎΡΠΈΠ°Π»Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° PHP ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
Drupal 9 Π²ΠΊΠ»ΡΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈ Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 8.9. ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡ 9 ΠΈ Π²Π΅ΡΡΠΈΡ 8 Π΅, ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΠ»Π΅Π΄ Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2021 Π³. ΠΠ΅ΡΡΠΈΡ 9 ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΎΡ Π²Π΅ΡΡΠΈΡ 8 ΠΎΡΠ΅ ΠΏΠΎ-Π»Π΅ΡΠ΅Π½.
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ°
ΠΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Drupal, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ 2 GB RAM ΠΈ 2 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ 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 ΠΈ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π±Π°Π²Π½ΠΈ, ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°Π±Π°Π²ΡΠ½Π΅ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° mysqld ΠΎΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎΡΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
ΠΠ΅ΠΊΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π³ΡΡΠΏΠ°ΡΠ° ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, ΠΏΠΎΠ΄ ΠΊΠΎΠΈΡΠΎ nginx ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² /etc/php-fpm.d/www.conf:
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 ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅Π· php-fpm ΡΠΎΠΊΠ΅ΡΠ°, Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» Π·Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅, Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π·Π° 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
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ wget, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° certbot:
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/*
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° ΡΠ΅Π± ΡΡΡΠ²ΡΡΠ°:
tar xf tar.gz -C /usr/share/nginx/html/
ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° ΡΠ΅Π± ΡΡΡΠ²ΡΡΠ°:
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
ΠΠ΅ΠΊΠ° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°ΡΠΎΠ»Π°ΡΠ° Π·Π° root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° MySQL:
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
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π·Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈΠΌ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΠΌ Π½Π°
ΠΠ° ΡΠΎΠ·ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° 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
ΠΡΠ²Π΅Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΡ e-mail, ΡΡΠ³Π»Π°ΡΠ΅ΡΠ΅ ΡΠ΅ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° (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 Header (ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°ΠΉΡΡΡ Π²ΠΈ ΠΌΠΈΡΠ»ΠΈ, ΡΠ΅ Π΅ Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³).
ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ Π·Π° ΡΠ°ΠΉΡΠ° Π²ΡΠ² ΡΠ°ΠΉΠ»Π° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΡΠ² ΡΠ°ΠΉΠ»Π°
/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 ΡΡΠ±Π»ΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡ Π²ΡΡΡΠ΅ΡΠ΅Π½ Π±Π°Π»Π°Π½Ρ - ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΏΠΎΡ Π°ΡΡΠΈΡΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠΈ.
ΠΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ Π°ΠΊΠ°ΡΠ½Ρ ΠΏΡΠΈ Π½Π°Ρ Π½Π°
ΡΠ΅Π±ΡΠ°ΠΉΡ - Π£Π²Π΅Π΄ΠΎΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ°, ΡΠ΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΈ ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- Π©Π΅ Π²ΠΈ ΠΊΡΠ΅Π΄ΠΈΡΠΈΡΠ°ΠΌΠ΅ 3000 ΡΡΠ±Π»ΠΈ ΠΈ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ
- ΠΠΎΡΡΡΠ°ΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ Ρ ΡΠΈΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎΡΡΡΠ΅ΡΠ° Π½Π° ΡΠΎΠ·ΠΈ VPS ΠΈ Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΡΠ΅
- ΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΡΡΡΠ΅Ρ
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΡΡΠ²ΡΡ
- ΠΠΎΡΡΡΠ°ΠΉΡΠ΅ Π½ΠΎΠ² Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ, ΠΊΠ°ΡΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° Π² ΠΏΠ°Π΄Π°ΡΠΈΡ ΡΠΏΠΈΡΡΠΊ βΠ¨Π°Π±Π»ΠΎΠ½ Π½Π° ΡΡΡΠ²ΡΡΠ°β.
- Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π½Π° ΡΡΡΠΏΠΊΠ° 6 ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ ΠΊΡΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°
- ΠΠΊΠΎ ΠΈΠΌΠ° Π³ΡΠ΅ΡΠΊΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° ΠΈ Π΄Π° ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ°
ΠΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠΈ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ: ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΡΡΡΠ΅Ρ
ΠΠΊΠΎ ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΡΠΎΡΡΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²Π½Π΅Π΄ΡΡΠ²Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° VPS, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈ Π²ΠΊΠ»ΡΡΠΈΠΌ Π² ΠΏΠ°Π·Π°ΡΠ°. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌ Π΄Π° ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅ΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΡΡΠ°ΡΠΈΠΊ ΠΈ ΠΎΡΠ²Π΅Π΄ΠΎΠΌΠ΅Π½ΠΎΡΡ.
ΠΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈ Π»ΠΈΠΏΡΠ²Π°?
Π Π½ΠΈΠ΅ ΡΠ΅ Π³ΠΎ ΠΏΡΠΈΠ³ΠΎΡΠ²ΠΈΠΌ ΡΠ°ΠΌΠΈ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com