Ṣiṣẹda Awoṣe VPS pẹlu Drupal 9 lori Centos 8

A tesiwaju lati faagun ọja wa. Laipẹ a sọ fun ọ bii ṣe aworan Gitlab kan, ati ni ọsẹ yii Drupal han ni ọja wa.

A sọ fun ọ idi ti a fi yan rẹ ati bi a ṣe ṣẹda aworan naa.

Ṣiṣẹda Awoṣe VPS pẹlu Drupal 9 lori Centos 8

Drupal - ipilẹ ti o rọrun ati agbara fun ṣiṣẹda eyikeyi iru oju opo wẹẹbu: lati awọn microsites ati awọn bulọọgi si awọn iṣẹ akanṣe awujọ nla, tun lo bi ipilẹ fun awọn ohun elo wẹẹbu, ti a kọ sinu PHP ati lilo awọn apoti isura data ibatan bi ibi ipamọ data.

Drupal 9 pẹlu gbogbo awọn ẹya ti a ṣafihan ni ẹya 8.9. Iyatọ bọtini laarin ẹya 9 ati ẹya 8 ni pe pẹpẹ yoo tẹsiwaju lati gba awọn imudojuiwọn ati awọn atunṣe aabo lẹhin Oṣu kọkanla ọdun 2021. Ẹya 9 tun ṣe ilana imudojuiwọn ni irọrun, ṣiṣe ilana ti iṣagbega lati ẹya 8 paapaa rọrun.

Server ibeere

Lati lo Drupal, o gba ọ niyanju lati lo 2 GB Ramu ati awọn ohun kohun Sipiyu 2.

Awọn faili Drupal akọkọ gba to 100 MB, ni afikun iwọ yoo nilo aaye lati tọju awọn aworan, ibi ipamọ data, awọn akori, awọn modulu afikun ati awọn afẹyinti, eyi ti yoo dale lori iwọn aaye rẹ.

Drupal 9 nilo PHP 7.4 tabi ga julọ pẹlu aropin to kere julọ (memory_limit) fun 64 MB iranti; ti o ba ti lo awọn afikun modulu, o niyanju lati fi 128 MB sori ẹrọ.

Drupal le lo Apache tabi Nginx gẹgẹbi olupin wẹẹbu kan, ati MySQL, PostgreSQL tabi SQLite gẹgẹbi aaye data kan.

A yoo fi Drupal sori ẹrọ ni lilo Nginx ati MySQL.

eto

Jẹ ki a ṣe imudojuiwọn awọn idii ti a fi sori ẹrọ si ẹya tuntun:

sudo dnf update -y

Jẹ ki a ṣafikun igbanilaaye ayeraye fun ijabọ ti nwọle si http/80 ati https/443 ebute oko:

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

Jẹ ki a lo awọn ofin ogiriina tuntun:

sudo systemctl reload firewalld

Jẹ ki a fi Nginx sori ẹrọ:

sudo dnf install nginx -y

Jẹ ki a bẹrẹ ati mu olupin Nginx ṣiṣẹ:

sudo systemctl start nginx
sudo systemctl enable nginx

Niwọn bi ibi ipamọ Centos akọkọ ti nlo PHP 7.2 lọwọlọwọ, jẹ ki a ṣafikun ibi ipamọ REMI kan pẹlu PHP 7.4 (ẹya ti o kere julọ fun Drupal 9).
Lati ṣe eyi, ṣafikun ibi ipamọ EPEL (ti a beere nipasẹ ibi ipamọ REMI):

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

Jẹ ki a ṣafikun ibi ipamọ REMI naa:

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

Jẹ ki a mu php: remi-7.4 module ṣiṣẹ lati fi php 7.4 sori ẹrọ:

sudo dnf module enable php:remi-7.4 -y

Fi php-fpm ati php-cli sori ẹrọ:

sudo dnf install -y php-fpm php-cli

Jẹ ki a fi sori ẹrọ awọn modulu PHP ti o nilo fun Drupal lati ṣiṣẹ:

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

A yoo tun fi awọn modulu opcache mbstring PHP ti a ṣeduro sori ẹrọ:

sudo dnf install -y php-mbstring php-opcache

Jẹ ki a fi olupin MySQL sori ẹrọ:

sudo dnf install mysql-server -y

Jẹ ki a tan-an ki o bẹrẹ olupin MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Niwọn igba ti a n ṣe awoṣe fun VDS, ati pe wọn le lọra, a yoo ṣafikun idaduro ibẹrẹ mysqld ti awọn aaya 30, bibẹẹkọ awọn iṣoro le wa pẹlu olupin ti o bẹrẹ lakoko bata eto ibẹrẹ:

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

Jẹ ki a yipada ẹgbẹ ati olumulo labẹ eyiti nginx yoo ṣiṣẹ nipa ṣiṣe awọn ayipada si /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

Jẹ ki a yi oniwun ti iwe ilana igba PHP pada si nginx ni ibamu:

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

Jẹ ki a yọ awọn laini kuro pẹlu awọn asọye lati faili iṣeto ni /etc/nginx/nginx.conf (ki o ko si awọn okunfa meji fun sed):

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

Ṣafikun awọn eto funmorawon gzip si /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

Jẹ ki a ṣafikun awọn eto ti faili atọka index.php si /etc/nginx/nginx.conf:

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

Jẹ ki a ṣafikun awọn eto fun olupin aiyipada: Sisẹ PHP nipasẹ iho php-fpm, mu log fun awọn faili aimi, pọ si akoko ipari, mu iwọle ati aṣiṣe aṣiṣe fun favicon.ico ati robots.txt, ati kọ wiwọle si .ht awọn faili fun gbogbo eniyan:

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

Fi sori ẹrọ wget nilo fun fifi certbot sori ẹrọ:

sudo dnf install wget -y

Ṣe igbasilẹ faili iṣẹ ṣiṣe certbot lati ita:

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

Gbe certbot lọ si /usr/agbegbe/bin/:

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

Ati pe jẹ ki a yan awọn ẹtọ bi eni lati gbongbo:

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

Jẹ ki a fi awọn igbẹkẹle certbot sori ẹrọ ati ni ipele yii da iṣẹ rẹ duro (Awọn idahun: Y, c):

certbot-auto

Jẹ ki a ṣe igbasilẹ iwe-ipamọ pẹlu ẹya tuntun ti Drupal 9 lati ita:

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

Fi tar sori ẹrọ lati tu ile-ipamọ silẹ:

sudo dnf install tar -y

Jẹ ki a paarẹ awọn faili aiyipada ni / usr / pin / nginx / html / liana:

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

Jẹ ki a tu awọn faili sinu itọsọna olupin wẹẹbu:

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

Jẹ ki a gbe awọn faili lati inu iwe-ipamọ si iwe-itọsọna root ti olupin wẹẹbu:

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

Jẹ ki a pa iwe-ipamọ abẹlẹ naa rẹ:

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

Jẹ ki a paarẹ ile ifi nkan pamosi pẹlu awọn faili fifi sori ẹrọ:

rm -f ./tar.gz

Jẹ ki a yan eni to ni awọn faili nginx:

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

Ni ipele yii a yoo pa olupin naa ki o ya aworan kan:

shutdown -h now

Lẹhin ifilọlẹ VDS lati aworan aworan, a yoo ṣe iṣeto akọkọ ti olupin MySQL nipa ṣiṣe iwe afọwọkọ naa:

mysql_secure_installation

Jẹ ki a mu olufọwọsi ọrọ igbaniwọle ṣiṣẹ:

Would you like to setup VALIDATE PASSWORD component? : y

Jẹ ki a ṣeto ọrọ igbaniwọle fun olumulo root MySQL:

New password:
Re-enter new password:

Jẹ ki a yọ awọn olumulo alailorukọ kuro:

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

Jẹ ki a ṣe idiwọ root lati sisopọ latọna jijin:

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

Jẹ ki a pa aaye data idanwo naa rẹ:

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

Jẹ ki a tun kojọpọ awọn tabili anfani:

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

Lẹhin eyi, lati pari fifi sori ẹrọ, a le lọ si vps_ip_adirẹsi
Ni adirẹsi yii a yoo rii oju-iwe fifi sori Drupal.

Jẹ ki a yan ede lati lo. Fun apẹẹrẹ: Russian. Tẹ "Fipamọ ati Tẹsiwaju"

Jẹ ki a yan profaili fifi sori ẹrọ ( demo ti lo nikan lati mọ ararẹ pẹlu eto naa). Ninu ọran wa, jẹ ki o jẹ "boṣewa".

Ni oju-iwe ti o tẹle a yoo fun orukọ si ibi ipamọ data, fun apẹẹrẹ "drupal". Jẹ ki a tọka root orukọ olumulo data ati ọrọ igbaniwọle ti a fun ni nigba ṣiṣe mysql_secure_installation. Tẹ "Fipamọ ati Tẹsiwaju."

Jẹ ki a duro fun fifi sori ẹrọ ati imudojuiwọn awọn itumọ lati pari (ilana le gba to iṣẹju diẹ).

A yoo tọka orukọ aaye naa, ṣeto imeeli ti aaye naa (fun iru awọn iwifunni aaye wo ni yoo firanṣẹ), iwọle, ọrọ igbaniwọle ati imeeli ti akọọlẹ oludari Drupal. A yoo tun ṣeto orilẹ-ede ati agbegbe aago ni awọn eto agbegbe. Ati pari fifi sori ẹrọ nipa tite “Fipamọ ati Tẹsiwaju”.

Lẹhin eyi, o le lọ si igbimọ iṣakoso pẹlu iwọle Drupal IT ti o ṣẹda ati ọrọ igbaniwọle.

Ṣiṣeto HTTPS (aṣayan)

Lati tunto HTTPS, VDS gbọdọ ni orukọ DNS to wulo, pato ninu

/etc/nginx/nginx.conf

ni apakan olupin orukọ olupin (fun apẹẹrẹ):

server_name  domainname.ru;

Jẹ ki a tun bẹrẹ nginx:

service nginx restart

Jẹ ki a ṣe ifilọlẹ certbot:

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

Tẹ imeeli rẹ sii, gba si awọn ofin iṣẹ (A), Alabapin si iwe iroyin (aṣayan) (N), yan awọn orukọ ìkápá fun eyiti o fẹ fun iwe-ẹri (Tẹ sii fun gbogbo eniyan).

Ti ohun gbogbo ba lọ laisi awọn aṣiṣe, a yoo rii ifiranṣẹ kan nipa ipinfunni aṣeyọri ti awọn iwe-ẹri ati iṣeto ni olupin:

Congratulations! You have successfully enabled ...

Lẹhin eyi, awọn asopọ si ibudo 80 yoo darí si 443 (https).

Ṣafikun si /etc/crontab lati ṣe imudojuiwọn awọn iwe-ẹri laifọwọyi:

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

Ṣiṣeto Aabo Gbalejo Gbẹkẹle (a ṣeduro)

Eto yii jẹ ipinnu bi ojutu si iṣoro ti o ni nkan ṣe pẹlu ipinnu base_url ti o ni agbara, ati pe a ṣe apẹrẹ lati ṣe idiwọ ikọlu Akọsori HTTP HOST (nigbati aaye rẹ ro pe ẹlomiiran ni).

Lati ṣe eyi, o nilo lati pato awọn orukọ-ašẹ ti o gbẹkẹle fun aaye naa ninu faili eto.

Ninu faili

/usr/share/nginx/html/sites/default/settings.php Jẹ ki a ko dahun tabi ṣafikun eto kan pẹlu awọn ilana ti awọn orukọ aaye gangan, fun apẹẹrẹ:

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

Fifi PHP APCu sori ẹrọ (Iṣeduro)

Drupal ṣe atilẹyin APCu - Kaṣe Olumulo PHP Alternative, awọn ẹya 8 ati 9 ṣe lilo nla ti APCu bi kaṣe agbegbe igba diẹ ju awọn ẹya iṣaaju lọ. Iwọn kaṣe aiyipada (32 MB) dara fun ọpọlọpọ awọn aaye, ko si le kọja 512 MB.

Lati muu ṣiṣẹ, fi sori ẹrọ module PHP APCu:

dnf -y install php-pecl-apcu

Tun nginx bẹrẹ ati php-fpm:

service nginx restart
service php-fpm restart

Ti o ba lo ede Rọsia ati APCu pẹlu iwọn iranti ti a ṣe iṣeduro fun kaṣe, o le rii ikilọ kan ninu igbimọ iṣakoso pe iwọn iranti ti a pin fun kaṣe yatọ si ọkan ti a ṣe iṣeduro, ṣugbọn ni otitọ ohun gbogbo n ṣiṣẹ ni deede. ati ikilọ ti ko tọ yoo ṣee ṣe atunṣe ni awọn imudojuiwọn atẹle.

Tabi ti ikilọ ba dun oju rẹ, o le lo ti o baamu alemo lati offsite.

A yoo fẹ lati leti pe o tun le ṣe aworan fun wa

Awọn aṣayan mẹta wa fun bi o ṣe le ṣe alabapin.

Ṣetan aworan funrararẹ ati gba 3000 rubles si iwọntunwọnsi rẹ

Ti o ba ṣetan lati yara lọ si ogun lẹsẹkẹsẹ ki o ṣẹda aworan ti o padanu, a yoo fun ọ ni 3000 rubles si iwọntunwọnsi inu rẹ, eyiti o le lo lori awọn olupin.

Bii o ṣe le ṣẹda aworan tirẹ:

  1. Ṣẹda iroyin pẹlu wa lori Aaye
  2. Jẹ ki atilẹyin mọ pe iwọ yoo ṣẹda ati idanwo awọn aworan
  3. A yoo ṣe kirẹditi fun ọ 3000 rubles ati mu agbara ṣiṣẹ lati ṣẹda awọn fọto
  4. Paṣẹ olupin foju kan pẹlu ẹrọ ṣiṣe mimọ
  5. Fi sọfitiwia sori ẹrọ lori VPS yii ki o tunto rẹ
  6. Kọ awọn ilana tabi iwe afọwọkọ fun imuṣiṣẹ sọfitiwia
  7. Ṣẹda aworan kan fun olupin ti a tunto
  8. Paṣẹ fun olupin foju tuntun kan nipa yiyan aworan aworan ti a ṣẹda tẹlẹ ninu “Awoṣe olupin” atokọ jabọ-silẹ
  9. Ti olupin naa ba ṣẹda ni aṣeyọri, gbe awọn ohun elo ti o gba ni ipele 6 si atilẹyin imọ-ẹrọ
  10. Ti aṣiṣe ba wa, o le ṣayẹwo pẹlu atilẹyin fun idi naa ati tun iṣeto naa tun

Fun awọn oniwun iṣowo: pese sọfitiwia rẹ

Ti o ba jẹ olupilẹṣẹ sọfitiwia ti o ti ransiṣẹ ati lo lori VPS, lẹhinna a le fi ọ sinu ọjà. Eyi ni bii a ṣe le ṣe iranlọwọ fun ọ lati mu awọn alabara tuntun, ijabọ ati akiyesi. Kọ wa

Sọ fun wa ninu awọn asọye kini aworan ti o nsọnu?

Ati pe awa yoo pese sile funrararẹ

Ṣiṣẹda Awoṣe VPS pẹlu Drupal 9 lori Centos 8

Ṣiṣẹda Awoṣe VPS pẹlu Drupal 9 lori Centos 8

orisun: www.habr.com