Centos 9 дээр Drupal 8 ашиглан VPS загвар үүсгэх

Бид зах зээлээ өргөжүүлсээр байна. Хэрхэн гэдгийг бид саяхан танд хэлсэн Gitlab дүрсийг хийсэн, мөн энэ долоо хоногт Drupal манай зах зээлд гарч ирэв.

Бид яагаад түүнийг сонгосон, дүр төрхийг хэрхэн бүтээсэн талаар танд хэлэх болно.

Centos 9 дээр Drupal 8 ашиглан VPS загвар үүсгэх

Drupal — микро сайт, блогоос эхлээд нийгмийн томоохон төслүүд хүртэл ямар ч төрлийн вэб сайт үүсгэхэд тохиромжтой, хүчирхэг платформ бөгөөд PHP дээр бичигдсэн вэб програмын үндэс болгон ашигладаг, харилцааны мэдээллийн санг өгөгдөл хадгалах газар болгон ашигладаг.

Drupal 9 нь 8.9 ​​хувилбарт танилцуулагдсан бүх функцуудыг агуулдаг. 9-р хувилбар ба 8-р хувилбарын гол ялгаа нь платформ нь 2021 оны 9-р сараас хойш шинэчлэлт болон аюулгүй байдлын засваруудыг хүлээн авах болно. 8-р хувилбар нь шинэчлэлтийг хялбарчилж, XNUMX-р хувилбараас шинэчлэх үйл явцыг бүр ч хялбар болгодог.

Серверийн шаардлага

Drupal-г ашиглахын тулд 2 GB RAM, 2 CPU-ийн цөм ашиглахыг зөвлөж байна.

Үндсэн Drupal файлууд нь 100 МБ багтаамжтай бөгөөд үүнээс гадна танд зураг, мэдээллийн сан, сэдэв, нэмэлт модуль, нөөцлөлтийг хадгалах зай хэрэгтэй бөгөөд энэ нь таны сайтын хэмжээнээс хамаарна.

Drupal 9 нь хамгийн бага хязгаарлалттай PHP 7.4 ба түүнээс дээш хувилбарыг шаарддаг (memory_limit) 64 МБ санах ойд зориулагдсан; хэрэв нэмэлт модуль ашиглаж байгаа бол 128 МБ суулгахыг зөвлөж байна.

Drupal нь Apache эсвэл Nginx-ийг вэб сервер, MySQL, PostgreSQL эсвэл SQLite-г мэдээллийн сан болгон ашиглаж болно.

Бид Nginx болон MySQL ашиглан Drupal суулгах болно.

тохиргоо

Суулгасан багцуудыг хамгийн сүүлийн хувилбар болгон шинэчилье:

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-г ашиглаж байгаа тул PHP 7.4 (Drupal 9-ийн хамгийн бага хувилбар) бүхий REMI репозиторыг нэмье.
Үүнийг хийхийн тулд 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 7.4 суулгахын тулд php:remi-7.4 модулийг идэвхжүүлцгээе:

sudo dnf module enable php:remi-7.4 -y

php-fpm болон php-cli-г суулгана уу:

sudo dnf install -y php-fpm php-cli

Drupal ажиллахад шаардлагатай PHP модулиудыг суулгацгаая:

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

/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-г 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

Certbot суулгахад шаардлагатай wget-г суулгана уу:

sudo dnf install wget -y

Сайтаас гадуурх certbot гүйцэтгэх файлыг татаж авна уу:

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

Сертботыг /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

Сертбот хамаарлыг суулгаж, энэ үе шатанд түүний ажлыг тасалцгаая (Хариулт: 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

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". Mysql_secure_installation-г ажиллуулахдаа өгөгдлийн сангийн хэрэглэгчийн нэр болон түүнд өгсөн нууц үгийг зааж өгье. "Хадгалаад үргэлжлүүлэх" дээр дарна уу.

Орчуулгыг суулгаж, шинэчлэхийг хүлээнэ үү (процесс хэдэн минут болж магадгүй).

Бид сайтын нэрийг зааж, сайтын имэйл хаягийг (түүний өмнөөс сайтын мэдэгдэл илгээх), нэвтрэх нэр, нууц үг, Drupal администраторын имэйл хаягийг зааж өгнө. Мөн бид бүс нутгийн тохиргоонд улс, цагийн бүсийг тохируулах болно. Мөн "Хадгалах ба Үргэлжлүүлэх" дээр дарж суулгацыг дуусгана уу.

Үүний дараа та үүсгэсэн Drupal администраторын нэвтрэх болон нууц үгээр хяналтын самбар руу очиж болно.

HTTPS тохируулах (заавал биш)

HTTPS-г тохируулахын тулд VDS нь хүчинтэй DNS нэртэй байх ёстой

/etc/nginx/nginx.conf

серверийн хэсэгт серверийн нэр (жишээ нь):

server_name  domainname.ru;

Nginx-г дахин эхлүүлье:

service nginx restart

Сертбот ажиллуулцгаая:

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 МБ) ихэнх сайтуудад тохиромжтой бөгөөд 512 МБ-аас хэтрэхгүй.

Идэвхжүүлэхийн тулд 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 дээр суулгаж, ашигладаг програм хангамж хөгжүүлэгч бол бид таныг зах зээлд оруулах боломжтой. Ингэснээр бид танд шинэ үйлчлүүлэгчид, замын хөдөлгөөн, мэдлэгийг бий болгоход туслах болно. Бидэнд бичээрэй

Танд ямар зураг дутагдаж байгаагаа сэтгэгдэл дээр хэлээрэй?

Тэгээд бид өөрсдөө бэлдэх болно

Centos 9 дээр Drupal 8 ашиглан VPS загвар үүсгэх

Centos 9 дээр Drupal 8 ашиглан VPS загвар үүсгэх

Эх сурвалж: www.habr.com