Te hanga i tetahi tauira VPS me Drupal 9 i runga i te Centos 8

Kei te whakawhānui tonu i to maatau maakete. No tata nei i korero matou mo te pehea i hanga he ahua Gitlab, a i tenei wiki i puta mai a Drupal ki to maatau kainga hokohoko.

Ka korerotia e matou he aha matou i whiriwhiri ai me pehea te hanga o te ahua.

Te hanga i tetahi tauira VPS me Drupal 9 i runga i te Centos 8

Drupal he waahi watea me te kaha mo te hanga i tetahi momo waahi: mai i nga microsites me nga blogs ki nga kaupapa hapori nui, ka whakamahia hoki hei turanga mo nga tono tukutuku, tuhia ki te PHP me te whakamahi i nga papaaarangi hononga hei rokiroki raraunga.

Kei a Drupal 9 nga ahuatanga katoa i whakauruhia ki te putanga 8.9. Ko te rereketanga nui i waenga i te putanga 9 me te putanga 8 ko te mea ka whiwhi tonu te papaapapa i nga whakahoutanga me nga whakatikanga haumaru i muri i te Whiringa-a-rangi 2021. I roto hoki i te putanga 9, kua whakangwarihia te tukanga whakamohoatanga, kua ngawari ake te mahi whakahou mai i te putanga 8.

Whakaritenga Tūmau

Hei whakamahi i te Drupal, e taunaki ana kia whakamahia te 2 GB o te RAM me te 2 cores CPU.

Ko nga konae Drupal matua e tata ana ki te 100 MB, hei taapiri ka hiahia koe ki te waahi hei penapena whakaahua, papaa raraunga, kaupapa, taapiri me nga taapiri, ka whakawhirinaki ki te rahi o to pae.

Ko te Drupal 9 e hiahia ana ki te PHP 7.4 teitei ake ranei me te tepe iti (memory_limit) ki te mahara 64 MB, mena ka whakamahia etahi atu waahanga, ka tūtohu kia whakauruhia te 128 MB.

Ka taea e Drupal te whakamahi i te Apache, i te Nginx ranei hei tūmau tukutuku, me MySQL, PostgreSQL, SQLite rānei hei pātengi raraunga.

Ka whakauruhia e matou a Drupal ma te whakamahi Nginx me MySQL.

tāutanga

Whakahoutia nga kohinga kua whakauruhia ki te putanga hou:

sudo dnf update -y

Me taapiri he whakaaetanga tuturu mo nga waka taumai ki nga tauranga http/80 me https/443:

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

Hoatu nga ture papaahi hou:

sudo systemctl reload firewalld

Tāuta Nginx:

sudo dnf install nginx -y

Me timata me te whakahohe i te tūmau Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

I te mea kei te whakamahia te PHP 7.2 ki roto i te putunga Centos matua, me taapiri atu te rehitatanga REMI me te PHP 7.4 (te putanga iti mo Drupal 9).
Hei mahi i tenei, taapirihia te putunga EPEL (e hiahiatia ana e te putunga REMI):

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

Me taapirihia te putunga REMI:

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

Whakahohehia te kōwae php:remi-7.4 hei whakauru i te php 7.4:

sudo dnf module enable php:remi-7.4 -y

Tāutahia te php-fpm me te php-cli:

sudo dnf install -y php-fpm php-cli

Tāutahia ngā kōwae PHP e hiahiatia ana kia mahi a 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

Ka whakauruhia ano e matou nga waahanga PHP mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Tāutahia te tūmau MySQL:

sudo dnf install mysql-server -y

Whakahohe me te timata i te tūmau MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

I te mea kei te hanga tauira maatau mo te VDS, a ka puhoi, ka taapirihia e matou he roanga tiimata o te mysqld mo te 30 hēkona, mena ka raru pea te tiimata i te tuumau i te wa e tiimata ana te punaha tuatahi:

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

Me huri tatou i te roopu me te kaiwhakamahi kei raro nei te nginx ka rere ma te whakarereke ki /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

Hurihia te rangatira o te raarangi wahanga PHP ki te nginx kia rite:

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

Me tango e tatou nga rarangi korero mai i te konae whirihoranga /etc/nginx/nginx.conf (kia kore ai he whiunga rua mo te sed):

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

Tāpirihia ngā tautuhinga kōpeketanga gzip ki /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

Me taapiri nga tautuhinga o te konae taurangi index.php ki /etc/nginx/nginx.conf:

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

Kia taapirihia nga tautuhinga mo te tukatuka tūmau taunoa php na roto i te turanga php-fpm, whakakorehia te rangitaki mo nga konae pateko, whakanuia te wa paunga, whakakorehia te urunga me te hapa hapa mo te favicon.ico me robots.txt me te whakakore i te uru ki nga konae .ht mo katoa:

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

Tāutahia te wget hei whakauru i te certbot:

sudo dnf install wget -y

Tikiake i te konae whakahaere certbot mai i te waahi:

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

Nuku certbot ki /usr/local/bin/:

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

A tautapa motika me te mana ki te pakiaka:

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

Tāutahia ngā herenga o te certbot ka mutu i tēnei wā (Whakautu: Y, c):

certbot-auto

Tangohia te puranga me te putanga hou o Drupal 9 mai i waho o te waahi:

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

Tāutahia te tara hei wetewete i te pūranga:

sudo dnf install tar -y

Mukua nga konae taunoa i te /usr/share/nginx/html/ whaiaronga:

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

Wewetehia nga kōnae ki te whaiaronga tūmau tukutuku:

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

Nukuhia nga konae mai i te raarangi-roto ki te raarangi pakiaka o te tūmau tukutuku:

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

Muku whaiarongaroto:

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

Mukua te pūranga me ngā kōnae tāuta:

rm -f ./tar.gz

Tautuhia te rangatira o nga konae nginx:

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

I tenei wa, ka whakawetohia e matou te tūmau ka tango whakaahua:

shutdown -h now

I muri i te tiimata i te VDS mai i te whakaahua, ka mahia e matou te tatūnga tuatahi o te tūmau MySQL ma te whakahaere i te tuhinga:

mysql_secure_installation

Whakahohehia te whakamana kupuhipa:

Would you like to setup VALIDATE PASSWORD component? : y

Tautuhia te kupuhipa kaiwhakamahi pakiaka MySQL:

New password:
Re-enter new password:

Tango i nga kaiwhakamahi ingoamuna:

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

Kia kore te pakiaka e hono mamao:

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

Me tango e tatou te papaunga raraunga whakamatautau:

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

Utaina ano nga ripanga mana:

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

I muri i tera, ki te whakaoti i te whakaurunga, ka taea e tatou te haere ki vps_ip_address
I tenei wahitau ka kite tatou i tetahi whaarangi me te whakaurunga o Drupal.

Tīpakohia te reo hei whakamahi. Hei tauira: Russian. Pāwhiritia "Tiaki me te Haere tonu"

Me whiriwhiri he kōtaha whakaurunga (ka whakamahia te demo mo te maaramatanga ki te punaha). I roto i to tatou take, kia "paerewa".

I te wharangi e whai ake nei, hoatu he ingoa mo te papaarangi, penei i te "drupal". Tauwhāitihia te pakiaka ingoa kaiwhakamahi pātengi raraunga me te kupuhipa i hoatu ki a ia i te tiimata o te mysql_secure_installation. Pāwhiritia "Tiaki me te Haere tonu".

Me tatari kia oti te whakaurunga me te whakahou i nga whakamaoritanga (he maha nga meneti pea te mahi).

Tauwhāitihia te ingoa o te waahi, tautuhi i te imeera o te waahi (mo te taha o nga whakamohiotanga o te waahi ka tae mai), takiuru, kupuhipa me te imeera o te kaute kaiwhakahaere Drupal. Ka tautuhia hoki e matou te whenua me te waahi waahi ki nga waahi rohe. A ka whakaoti i te whakaurunga ma te panui "Tiaki me te Haere tonu".

I muri i tera, ka taea e koe te haere ki te paewhiri mana me te whakaurunga a te kaiwhakahaere Drupal me te kupuhipa.

Tautuhinga HTTPS (he kōwhiringa)

Hei whirihora i te HTTPS, me whai ingoa DNS whaimana te VDS, tohua mai

/etc/nginx/nginx.conf

i te wahanga tūmau te ingoa tūmau (hei tauira):

server_name  domainname.ru;

Tīmata anō te nginx:

service nginx restart

Me timata tatou certbot:

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

Whakauruhia to ī-mēra, whakaae ki nga tikanga o te ratonga (A), Ohauru ki te panui (he kowhiringa) (N), tohua nga ingoa rohe e hiahia ana koe ki te tuku tiwhikete (E tomo mo te katoa).

Mena ka haere nga mea katoa kaore he hapa, ka kite tatou i te panui mo te tukunga angitu o nga tiwhikete me te tatūnga tūmau:

Congratulations! You have successfully enabled ...

Whai muri i tera, ka tukuna nga hononga ki te tauranga 80 ki te 443 (https).

Tāpirihia ki /etc/crontab hei whakahou aunoa i nga tiwhikete:

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

Te whakarite i te Haumarutanga Kaihautu Whakapono (e taunakitia ana)

Ko te tikanga o tenei tautuhinga hei otinga ki te raruraru o te rapunga base_url hihiri, me te mea hei aukati i nga whakaeke a te HTTP HOST Header (ka whakaaro to pae he tangata ke atu).

Ki te mahi i tenei, me tohu e koe nga ingoa rohe whakawhirinaki o te pae i roto i te konae tautuhinga.

I roto i te kōnae

/usr/share/nginx/html/sites/default/settings.php whakakorehia, taapirihia ranei he tautuhinga me nga tauira o nga ingoa waahi, hei tauira:

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

Tāutahia ana te PHP APCu (TOKOHOKO)

Kei te tautoko a Drupal i te APCu - Keteroki Kaiwhakamahi PHP Alternative, ko nga putanga 8 me te 9 ka kaha ake te whakamahi i te APCu hei keteroki rohe mo te wa poto atu i nga putanga o mua. Ko te rahi o te keteroki taunoa (32 MB) ka pai ki te nuinga o nga waahi, a kaua e neke ake i te 512 MB.

Hei whakahohe, tāutahia te kōwae PHP APCu:

dnf -y install php-pecl-apcu

Tīmatahia te nginx me te php-fpm:

service nginx restart
service php-fpm restart

I roto i te take o te whakamahi i te reo Ruhia me te APCu me te rahi o te mahara keteroki e taunaki ana, ka kite koe i te whakatupato i roto i te paewhiri mana he rereke te rahi o te mahara keteroki kua tohatohahia mai i te mea kua tohua, engari he tika nga mahi katoa, me te he. ka whakatauhia te whakatupato i nga whakahoutanga e whai ake nei.

Mena ka mamae te kanohi o te whakatupato, ka taea e koe te whakamahi papaki rite mai i waho.

E hiahia ana matou ki te whakamahara ki a koe ka taea ano e koe te hanga pikitia mo matou

E toru nga whiringa mo te whai waahi.

Whakaritehia te ahua me te whiwhi 3000 rubles i runga i to pauna

Mena kua rite koe ki te tere tere ki te whawhai me te hanga i te ahua kaore koe i a koe, ka whakawhiwhia koe ki te 3000 rubles ki to toenga o roto - ka taea e koe te whakapau i runga i nga kaitoro.

Me pehea te hanga i to ahua:

  1. Waihangahia he kaute ki a maatau pae
  2. Korero atu ki te tautoko kei te hanga koe me te whakamatautau whakaahua
  3. Ka whakawhiwhia e matou ki a koe te 3000 rubles ka taea te kaha ki te hanga pikitia
  4. Tonoa he tūmau mariko me te punaha whakahaere ma
  5. Tāutahia te rorohiko ki runga i tenei VPS ka whakaturia ake
  6. Tuhia nga tohutohu, tuhinga tuhi ranei mo te tukunga rorohiko
  7. Waihangahia he whakaahua mo te tūmau kua whirihora
  8. Tonoa he tūmau mariko hōu mā te kōwhiri i te whakaahua i hangaia i mua i te rārangi taka-iho "Tātauira Tūmau".
  9. Mena ka angitu te hanganga o te tūmau, whakawhitihia nga rauemi i riro i te taahiraa 6 ki te tautoko hangarau
  10. Mena he hapa, ka taea e koe te tirotiro me te tautoko mo te take me te whakahoki ano i te tatūnga

Mo nga kaipakihi: tuku to rorohiko

Mena he kaiwhakawhanake rorohiko koe ka tukuna me te whakamahi i runga i te VPS, katahi ka taea e matou te whakauru ia koe ki te kainga hokohoko. Koinei te huarahi e taea ai e matou te awhina i a koe ki te kawe mai i nga kaihoko hou, nga waka me te tirohanga. Tuhia matou

Me mohio mai ki nga korero he aha te ahua ka ngaro koe?

A ma matou ano e whakarite

Te hanga i tetahi tauira VPS me Drupal 9 i runga i te Centos 8

Te hanga i tetahi tauira VPS me Drupal 9 i runga i te Centos 8

Source: will.com