Centos 9 жүйесінде Drupal 8 көмегімен VPS үлгісін жасау

Біз нарықты кеңейтуді жалғастырамыз. Жақында біз сізге қалай екенін айттық Gitlab кескінін жасады, және осы аптада Drupal біздің нарықта пайда болды.

Біз оны не үшін таңдағанымызды және образдың қалай жасалғанын айтамыз.

Centos 9 жүйесінде Drupal 8 көмегімен VPS үлгісін жасау

Drupal — веб-сайттың кез келген түрін құруға арналған ыңғайлы және қуатты платформа: микросайттар мен блогтардан ірі әлеуметтік жобаларға дейін, сонымен қатар PHP тілінде жазылған веб-қосымшалар үшін негіз ретінде пайдаланылады және деректерді сақтау ретінде реляциялық деректер қорын пайдаланады.

Drupal 9 8.9 нұсқасында енгізілген барлық мүмкіндіктерді қамтиды. 9-нұсқа мен 8-нұсқа арасындағы негізгі айырмашылық платформа 2021 жылдың қарашасынан кейін жаңартулар мен қауіпсіздік түзетулерін алуды жалғастырады. Сондай-ақ 9-нұсқа жаңарту процесін жеңілдетеді, бұл 8-нұсқадан жаңарту процесін одан да жеңілдетеді.

Серверге қойылатын талаптар

Drupal пайдалану үшін 2 ГБ жедел жады және 2 процессор өзегін пайдалану ұсынылады.

Негізгі 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 жұмыс істеуі үшін қажет РНР модульдерін орнатайық:

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

/etc/nginx/nginx.conf ішіне gzip қысу параметрлерін қосыңыз

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

/etc/nginx/nginx.conf ішіне index.php индекстік файлының параметрлерін қосамыз:

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 орнатыңыз:

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

Түбірге меншік иесі ретінде құқықтарды тағайындайық:

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 түбірлік пайдаланушысы үшін құпия сөзді орнатайық:

New password:
Re-enter new password:

Анонимді пайдаланушыларды жойайық:

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

Түбірдің қашықтан қосылуына жол бермейік:

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