Mamorona Template VPS miaraka amin'ny Drupal 9 amin'ny Centos 8

Manohy manitatra ny tsenanay izahay. Vao haingana izahay no nilaza taminao ny fomba nanao sary Gitlab, ary tamin'ity herinandro ity dia niseho teo amin'ny tsenanay ny Drupal.

Lazainay aminao ny antony nifidiananay azy sy ny fomba namoronana ilay sary.

Mamorona Template VPS miaraka amin'ny Drupal 9 amin'ny Centos 8

Drupal — sehatra mety sy matanjaka amin'ny famoronana karazana tranonkala rehetra: manomboka amin'ny microsites sy blaogy ka hatramin'ny tetikasa sosialy lehibe, ampiasaina ho fototry ny rindranasa tranonkala, voasoratra amin'ny PHP ary mampiasa angon-drakitra mifandraika ho fitahirizana angon-drakitra.

Drupal 9 dia ahitana ny endri-javatra rehetra nampidirina tamin'ny version 8.9. Ny fahasamihafana lehibe eo amin'ny version 9 sy ny version 8 dia ny hanohy handray fanavaozana sy fanamboarana fiarovana aorian'ny Novambra 2021 ny sehatra. Ny version 9 koa dia manamora ny fizotry ny fanavaozana, manamora kokoa ny fizotran'ny fanavaozana avy amin'ny version 8.

Fepetran'ny mpizara

Raha hampiasa Drupal, dia asaina mampiasa 2 GB RAM sy 2 CPU cores.

Ny rakitra Drupal lehibe dia maka 100 MB eo ho eo, ankoatra izany dia mila toerana hitehirizana sary, database, lohahevitra, modules fanampiny ary backups ianao, izay miankina amin'ny haben'ny tranokalanao.

Drupal 9 dia mitaky PHP 7.4 na ambony miaraka amin'ny fetra farany ambany (memory_limit) ho an'ny fitadidiana 64 MB; raha misy mody fanampiny ampiasaina dia asaina mametraka 128 MB.

Drupal dia afaka mampiasa Apache na Nginx ho mpizara tranonkala, ary MySQL, PostgreSQL na SQLite ho tahiry.

Hametraka Drupal mampiasa Nginx sy MySQL izahay.

fametrahana

Andao hanavao ny fonosana napetraka amin'ny dikan-teny farany:

sudo dnf update -y

Andeha isika hanampy fahazoan-dàlana maharitra amin'ny fifamoivoizana miditra amin'ny seranana http/80 sy https/443:

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

Andao hampihatra ny fitsipika firewall vaovao:

sudo systemctl reload firewalld

Andao hametraka Nginx:

sudo dnf install nginx -y

Andao hanomboka ary avelao ny mpizara Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

Koa satria mampiasa PHP 7.2 ny tahiry Centos lehibe amin'izao fotoana izao, andao hampiditra tahiry REMI miaraka amin'ny PHP 7.4 (dika farany ambany indrindra ho an'ny Drupal 9).
Mba hanaovana izany, ampio ny EPEL repository (takin'ny REMI repository):

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

Andao ampio ny tahiry REMI:

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

Alefaso ny module php:remi-7.4 hametraka php 7.4:

sudo dnf module enable php:remi-7.4 -y

Mametraka php-fpm sy php-cli:

sudo dnf install -y php-fpm php-cli

Andao hametraka ny maody PHP ilaina amin'ny Drupal miasa:

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

Hametraka ny PHP mbstring opcache modules ihany koa izahay:

sudo dnf install -y php-mbstring php-opcache

Andao hametraka ny mpizara MySQL:

sudo dnf install mysql-server -y

Andao velomina ary atomboka ny mpizara MySQL:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Koa satria manao môdely ho an'ny VDS izahay, ary mety miadana izy ireo, dia hanampy ny mysqld fanombohana fahatarana 30 segondra, raha tsy izany dia mety hisy olana amin'ny mpizara manomboka mandritra ny rafitra voalohany boot:

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

Andao hanova ny vondrona sy ny mpampiasa izay hihazakazaka ny nginx amin'ny fanovana ny /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

Andao hanova ny tompon'ny lahatahiry PHP sessions ho nginx mifanaraka amin'izany:

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

Andao esorina ny andalana misy fanehoan-kevitra ao amin'ny fisie /etc/nginx/nginx.conf (mba tsy hisy trigger roa ho an'ny sed):

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

Ampio ny fanerena gzip amin'ny /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

Andao ampidiro ao amin'ny /etc/nginx/nginx.conf ny firafitry ny rakitra index.php:

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

Andeha isika hanampy ny fikandrana ho an'ny mpizara default: ny fanodinana PHP amin'ny alàlan'ny socket php-fpm, esory ny log ho an'ny rakitra static, ampitomboy ny fotoana lany daty, esory ny fidirana sy ny lozisialy ho an'ny favicon.ico sy robots.txt, ary mandà ny fidirana amin'ny .ht rakitra ho an'ny rehetra:

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

Mametraka wget ilaina amin'ny fametrahana certbot:

sudo dnf install wget -y

Ampidino ny rakitra azo tanterahana certbot avy amin'ny tranokala:

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

Alefaso ny certbot mankany /usr/local/bin/:

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

Ary andao omena ny zo ho tompon'ny faka:

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

Andao hametraka ny fiankinan-doha certbot ary amin'ity dingana ity dia manapaka ny asany (Valiny: Y, c):

certbot-auto

Andao hisintona ny arisiva miaraka amin'ny kinova farany an'ny Drupal 9 avy amin'ny tranokala:

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

Mametraka tar hanesorana ny arisiva:

sudo dnf install tar -y

Andeha hofafana ny rakitra default ao amin'ny lahatahiry /usr/share/nginx/html/:

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

Andeha hovahantsika ny rakitra ao amin'ny lahatahiry mpizara tranonkala:

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

Andao hamindra ny rakitra avy amin'ny subdirectory mankany amin'ny lahatahiry fototry ny mpizara tranonkala:

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

Andeha hofafantsika ny subdirectory:

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

Andao hamafa ny arisiva miaraka amin'ny rakitra fametrahana:

rm -f ./tar.gz

Andao hanendry ny tompon'ny rakitra nginx:

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

Amin'ity dingana ity dia hamono ny mpizara isika ary haka sary:

shutdown -h now

Aorian'ny fandefasana ny VDS avy amin'ny sary dia hanao ny fametrahana voalohany ny mpizara MySQL amin'ny alàlan'ny fampandehanana ny script:

mysql_secure_installation

Aleo atao ny validator ny tenimiafina:

Would you like to setup VALIDATE PASSWORD component? : y

Andao hametraka ny tenimiafina ho an'ny mpampiasa root MySQL:

New password:
Re-enter new password:

Andao esorina ireo mpampiasa tsy mitonona anarana:

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

Andao hanakana ny faka tsy hifandray lavitra:

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

Andao hofafantsika ny angon-drakitra fitsapana:

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

Andao avereno averina ny tabilao tombontsoa:

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

Rehefa afaka izany, mba hamita ny fametrahana, dia afaka mandeha any vps_ip_address
Amin'ity adiresy ity dia ho hitantsika ny pejy fametrahana Drupal.

Andao hifidy ny fiteny hampiasaina. Ohatra: Rosiana. Tsindrio ny "Save and Continue"

Andao hisafidy mombamomba ny fametrahana (ny demo dia ampiasaina fotsiny mba hahafantaranao ny rafitra). Raha ny antsika dia aoka ho "manara-penitra".

Amin'ny pejy manaraka dia hanome anarana ny angon-drakitra isika, ohatra hoe "drupal". Andeha hojerentsika ny fototry ny anaran'ny mpampiasa database sy ny tenimiafina nomena azy rehefa mihazakazaka mysql_secure_installation. Tsindrio ny "Save and Continue."

Andeha isika hiandry ny fametrahana sy fanavaozana ny fandikan-teny ho vita (mety haharitra minitra maromaro ny dingana).

Hanondro ny anaran'ny tranokala izahay, apetraho ny mailaka amin'ny tranokala (amin'ny anaran'ny fampandrenesana tranokala halefa), fidirana, tenimiafina ary mailaka an'ny kaonty mpitantana Drupal. Hametraka ny firenena sy ny faritry ny ora ao amin'ny faritra ihany koa isika. Ary fenoy ny fametrahana amin'ny fipihana ny "Save and Continue".

Aorian'izany dia afaka mandeha any amin'ny tontonana fanaraha-maso ianao miaraka amin'ny fidirana sy tenimiafina mpitantana Drupal noforonina.

Fametrahana HTTPS (tsy voatery)

Mba hanitsiana ny HTTPS, ny VDS dia tsy maintsy manana anarana DNS manan-kery, mamaritra ny

/etc/nginx/nginx.conf

ao amin'ny fizarana mpizara ny anaran'ny mpizara (ohatra):

server_name  domainname.ru;

Andao hanomboka indray ny nginx:

service nginx restart

Andao hanomboka certbot:

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

Ampidiro ny mailakao, manaiky ny fepetran'ny serivisy (A), Misoratra anarana amin'ny gazetiboky (tsy voatery) (N), safidio ny anaran'ny sehatra izay tianao hamoahana taratasy fanamarinana (Ampidiro ho an'ny rehetra).

Raha mandeha tsy misy hadisoana ny zava-drehetra, dia hahita hafatra momba ny famoahana mari-pahombiazana ny mari-pankasitrahana sy ny fanamafisam-peo izahay:

Congratulations! You have successfully enabled ...

Aorian'izany, ny fifandraisana amin'ny seranan-tsambo 80 dia halefa any amin'ny 443 (https).

Ampio amin'ny /etc/crontab hanavao ho azy ny mari-pankasitrahana:

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

Fametrahana fiarovana mpampiantrano azo itokisana (recommended)

Ity toe-javatra ity dia natao ho vahaolana amin'ny olana mifandraika amin'ny famaritana base_url mavitrika, ary natao hisorohana ny fanafihana HTTP HOST Header (rehefa mihevitra ny tranokalanao fa olon-kafa izy io).

Mba hanaovana izany dia mila mamaritra ny anaran-tsehatra azo itokisana ho an'ny tranokala ianao ao amin'ny fisie.

Ao anaty rakitra

/usr/share/nginx/html/sites/default/settings.php Andeha hofoanana na ampio fika misy lamin'ny anaran-tranonkala tena izy, ohatra:

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

Fametrahana PHP APCu (RECOMMENDED)

Drupal dia manohana ny APCu - Alternative PHP User Cache, ny dikan-teny 8 sy 9 dia mampiasa bebe kokoa ny APCu ho cache eo an-toerana fohy noho ny dikan-teny teo aloha. Ny haben'ny cache default (32 MB) dia mety amin'ny ankamaroan'ny tranokala, ary tsy mihoatra ny 512 MB.

Mba hampavitrika, apetraho ny module PHP APCu:

dnf -y install php-pecl-apcu

Avereno indray ny nginx sy php-fpm:

service nginx restart
service php-fpm restart

Raha mampiasa teny Rosiana sy APCu miaraka amin'ny haben'ny fitadidiana atolotra ho an'ny cache ianao, dia mety hahita fampitandremana ao amin'ny tontonana fanaraha-maso ianao fa ny haben'ny fahatsiarovana natokana ho an'ny cache dia tsy mitovy amin'ilay natolotra, fa raha ny marina dia mandeha tsara ny zava-drehetra. ary ny fampitandremana diso dia azo ahitsy amin'ny fanavaozana manaraka.

Na raha mandratra ny masonao ny fampitandremana dia azonao ampiasaina patch mifanaraka amin'izany avy any ivelany.

Mampahatsiahy anao izahay fa afaka manao sary ho anay koa ianao

Misy safidy telo ny fomba handraisana anjara.

Omano ny sary ary mahazo 3000 roubles amin'ny fifandanjanao

Raha vonona ny hihazakazaka avy hatrany amin'ny ady ianao ary hamorona ny sary tsy hita, dia hanome anao 3000 roubles ho an'ny fifandanjanao anatiny ianao, izay azonao laninao amin'ny lohamilina.

Ahoana no hamoronana ny sarinao manokana:

  1. Mamorona kaonty miaraka aminay amin'ny tranonkala
  2. Ampahafantaro ny fanohanana fa hamorona sy hizaha toetra sary ianao
  3. Manome crédit anao 3000 roubles izahay ary mamela ny fahafahana mamorona sary
  4. Manafatra mpizara virtoaly misy rafitra fiasa madio
  5. Apetraho amin'ity VPS ity ny rindrambaiko ary amboary izany
  6. Manorata toromarika na script ho an'ny fametrahana rindrambaiko
  7. Mamorona sary ho an'ny mpizara namboarina
  8. Manafatra mpizara virtoaly vaovao amin'ny alàlan'ny fisafidianana ny sary noforonina teo aloha ao amin'ny lisitry ny midina "Server template".
  9. Raha voaforona soa aman-tsara ny mpizara dia afindrao amin'ny fanohanana ara-teknika ireo fitaovana voaray tamin'ny dingana faha-6
  10. Raha misy hadisoana dia azonao atao ny manamarina amin'ny fanohanana ny antony ary mamerina ny fanamboarana

Ho an'ny tompona orinasa: manolotra ny logiciel-nao

Raha mpamorona rindrambaiko napetraka sy ampiasaina amin'ny VPS ianao, dia afaka mampiditra anao eny an-tsena izahay. Izany no fomba ahafahanao manampy anao hitondra mpanjifa vaovao, fifamoivoizana ary fanentanana. Soraty izahay

Lazao anay ao amin'ny fanehoan-kevitra hoe inona no sary tsy hitanao?

Ary ny tenanay no hanomana izany

Mamorona Template VPS miaraka amin'ny Drupal 9 amin'ny Centos 8

Mamorona Template VPS miaraka amin'ny Drupal 9 amin'ny Centos 8

Source: www.habr.com