Erstellt eng VPS Schabloun mat Drupal 9 op Centos 8

Mir weider eise Maartplaz ausbaue. Mir geschwat kuerzem iwwer wéi e Gitlab Bild gemaach, an dës Woch ass Drupal op eiser Maartplaz opgetaucht.

Mir soen firwat mir et gewielt hunn a wéi d'Bild erstallt gouf.

Erstellt eng VPS Schabloun mat Drupal 9 op Centos 8

drupal ass eng praktesch a mächteg Plattform fir all Zort vu Site ze kreéieren: vu Mikrosites a Blogs bis grouss sozial Projeten, déi och als Basis fir Webapplikatiounen benotzt gëtt, geschriwwe a PHP a benotzt relational Datenbanken als Datelagerung.

Drupal 9 enthält all d'Features, déi an der Versioun 8.9 agefouert goufen. De Schlësselunterscheed tëscht der Versioun 9 an der Versioun 8 ass datt d'Plattform weider Updates a Sécherheetsfixe kritt nom November 2021. Och an der Versioun 9 ass den Upgradeprozess vereinfacht ginn, wat den Upgradeprozess vun der Versioun 8 nach méi einfach mécht.

Server Ufuerderunge

Fir Drupal ze benotzen, ass et recommandéiert 2 GB RAM an 2 CPU Cores ze benotzen.

D'Haapt Drupal Dateien sinn ongeféier 100 MB, zousätzlech brauch Dir Plaz fir Biller, Datebank, Themen, Add-ons a Backups ze späicheren, wat vun der Gréisst vun Ärem Site hänkt.

Drupal 9 erfuerdert PHP 7.4 oder méi héich mat enger Mindestlimit (memory_limit) bis 64 MB Erënnerung, am Fall vun zousätzlech Moduler benotzt, ass et recommandéiert 128 MB ze installéieren.

Drupal kann Apache oder Nginx als Webserver benotzen, a MySQL, PostgreSQL oder SQLite als Datebank.

Mir installéieren Drupal mat Nginx a MySQL.

Kader

Update déi installéiert Packagen op déi lescht Versioun:

sudo dnf update -y

Loosst eis eng permanent Erlaabnis fir erakommen Traffic op http/80 an https/443 Ports addéieren:

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

Déi nei Firewall Regelen uwenden:

sudo systemctl reload firewalld

Installéiert Nginx:

sudo dnf install nginx -y

Loosst eis den Nginx Server starten an aktivéieren:

sudo systemctl start nginx
sudo systemctl enable nginx

Zënter PHP 7.2 gëtt de Moment am Haapt Centos Repository benotzt, loosst eis de REMI Repository mat PHP 7.4 addéieren (déi Minimum Versioun fir Drupal 9).
Fir dëst ze maachen, füügt den EPEL Repository (erfuerderlech vum REMI Repository):

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

Loosst eis de REMI Repository addéieren:

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

Aktivéiert de php:remi-7.4 Modul fir php 7.4 z'installéieren:

sudo dnf module enable php:remi-7.4 -y

Installéiert php-fpm an php-cli:

sudo dnf install -y php-fpm php-cli

Installéiert d'PHP Moduler déi néideg sinn fir Drupal ze schaffen:

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

Mir installéieren och déi recommandéiert PHP Moduler mbstring opcache:

sudo dnf install -y php-mbstring php-opcache

Installéiert MySQL Server:

sudo dnf install mysql-server -y

Aktivéiert a start de MySQL Server:

sudo systemctl start mysqld
sudo systemctl enable mysqld

Well mir eng Schabloun fir VDS maachen, a si kënne lues sinn, addéiere mir eng mysqld Startverzögerung vun 30 Sekonnen, soss kënnen et Probleemer ginn beim Start vum Server beim initialen Systemboot:

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

Loosst eis d'Grupp an de Benotzer änneren ënner deem nginx leeft andeems Dir Ännerungen op /etc/php-fpm.d/www.conf maacht:

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

Ännert de Besëtzer vum PHP Sessiounsverzeechnes op nginx entspriechend:

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

Loosst eis d'Kommentarlinnen aus der /etc/nginx/nginx.conf Konfiguratiounsdatei ewechhuelen (sou datt et keng duebel Hits fir sed gëtt):

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

Füügt gzip Kompressiounsastellungen op /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

Loosst eis d'Astellunge vun der index.php Indexdatei op /etc/nginx/nginx.conf addéieren:

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

Loosst eis Astellunge fir den Default-Serververaarbechtung php duerch de php-fpm Socket derbäi, de Logbuch fir statesch Dateien auszeschalten, d'Verfallszäit erhéijen, den Zougang a Feeler Log fir favicon.ico a robots.txt auszeschalten an den Zougang zu .ht Dateien verleegnen fir jiddereen:

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

Installéiert wget néideg fir certbot z'installéieren:

sudo dnf install wget -y

Luet d'certbot ausführbar Datei vum Offsite erof:

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

Beweegt certbot op /usr/local/bin/:

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

A gitt Rechter a Besëtzer un root:

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

Installéiert d'Ofhängegkeete vum certbot a stoppt et op dëser Etapp (Äntwerten: Y, c):

certbot-auto

Luet den Archiv mat der leschter Versioun vum Drupal 9 vun der Offsite erof:

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

Installéiert tar fir den Archiv auszepaken:

sudo dnf install tar -y

Läschen d'Standarddateien am /usr/share/nginx/html/ Verzeichnis:

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

Unzip d'Dateien an de Webserververzeechnes:

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

Beweegt d'Dateien aus dem Ënnerverzeechnes an de Root-Verzeichnis vum Webserver:

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

Ënnerverzeechnes läschen:

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

Läschen d'Archiv mat den Installatiounsdateien:

rm -f ./tar.gz

Setzt de Besëtzer vun den nginx Dateien:

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

Op dëser Etapp wäerte mir de Server ausschalten an e Snapshot maachen:

shutdown -h now

Nodeems Dir de VDS vum Snapshot gestart hutt, maache mir den initialen Setup vum MySQL Server andeems Dir de Skript ausféiert:

mysql_secure_installation

Aktivéiert de Passwuert Validator:

Would you like to setup VALIDATE PASSWORD component? : y

Setzt de MySQL Root Benotzer Passwuert:

New password:
Re-enter new password:

Anonym Benotzer läschen:

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

Loosst eis verhënneren datt d'Root vu wäitem verbënnt:

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

Loosst eis d'Testdatenbank läschen:

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

Reload d'Privilegientabellen:

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

Duerno, fir d'Installatioun ofzeschléissen, kënne mir goen vps_ip_address
Op dëser Adress gesi mir eng Säit mat der Installatioun vun Drupal.

Wielt d'Sprooch fir ze benotzen. Zum Beispill: Russesch. Klickt op "Späicheren a weider"

Loosst eis en Installatiounsprofil wielen (Demo gëtt nëmme fir d'Bekanntschaft mam System benotzt). An eisem Fall, loosst et "Standard" sinn.

Op der nächster Säit gitt der Datebank en Numm, wéi "drupal". Gitt d'Datebank Benotzernumm Root an d'Passwuert un, deen him gitt wann Dir mysql_secure_installation starten. Klickt op "Späicheren a weider".

Loosst eis waarden bis d'Installatioun an d'Aktualiséierung vun den Iwwersetzunge fäerdeg ass (de Prozess kann e puer Minutten daueren).

Gitt den Numm vum Site un, setzt d'E-Mail vum Site (am Numm vun deem Site Notifikatiounen kommen), Login, Passwuert an E-Mail vum Drupal Administrator Kont. Mir wäerten och d'Land an d'Zäitzon an de regionalen Astellunge setzen. A fäerdeg d'Installatioun andeems Dir op "Späicheren a weider" klickt.

Duerno kënnt Dir op d'Kontrollpanel goen mat dem erstallten Drupal Administrator Login a Passwuert.

HTTPS Astellung (optional)

Fir HTTPS ze konfiguréieren, muss de VDS e gültege DNS Numm hunn, spezifizéiert an

/etc/nginx/nginx.conf

an der Server Sektioun de Server Numm (zum Beispill):

server_name  domainname.ru;

Restart nginx:

service nginx restart

Loosst eis certbot starten:

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

Gitt Är E-Mail un, averstanen d'Konditioune vum Service (A), Abonnéiert Iech op den Newsletter (fakultativ) (N), wielt d'Domainnimm fir déi Dir e Certificat wëllt ausginn (Gitt fir all).

Wann alles ouni Feeler gaang ass, gesi mir e Message iwwer déi erfollegräich Emissioun vun Certificaten a Server-Setup:

Congratulations! You have successfully enabled ...

Duerno ginn d'Verbindungen um Hafen 80 op 443 (https) ëmgeleet.

Füügt op /etc/crontab fir automatesch Certificaten ze erneieren:

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

Vertraute Host Sécherheet opsetzen (recommandéiert)

Dës Astellung ass geduecht als Léisung fir de Problem vun der dynamescher Base_url Detektioun, an ass geduecht fir HTTP HOST Header Attacken ze vermeiden (wann Äre Site mengt datt et een aneren ass).

Fir dëst ze maachen, musst Dir déi vertrauenswürdeg Domainnamen vum Site an der Astellungsdatei uginn.

Am Dossier

/usr/share/nginx/html/sites/default/settings.php decommentéieren oder en Astellung mat Mustere vun aktuellen Sitenimm derbäisetzen, zum Beispill:

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

PHP APCu installéieren (REcommandéiert)

Drupal ënnerstëtzt APCu - Alternativ PHP Benotzer Cache, Versiounen 8 an 9 benotzen APCu méi intensiv als kuerzfristeg lokal Cache wéi virdrun Versiounen. D'Standard-Cachegréisst (32 MB) passt op déi meescht Siten a kann net méi wéi 512 MB sinn.

Fir ze aktivéieren, installéiert de PHP APCu Modul:

dnf -y install php-pecl-apcu

Restart nginx a php-fpm:

service nginx restart
service php-fpm restart

Am Fall vun der Benotzung vun der russescher Sprooch an APCu mat der empfohlener Cache Memory Gréisst, kënnt Dir eng Warnung an der Kontrollpanel gesinn datt d'Gréisst vum zougewisen Cache Memory vun der recommandéierter ënnerscheet, awer tatsächlech funktionnéiert alles richteg, an déi falsch Warnung wäert héchstwahrscheinlech an den nächsten Updates fixéiert ginn.

Oder wann d'Warnung d'Ae wéideet, kënnt Dir benotzen entspriechend Patch aus Offsite.

Mir wëllen Iech drun erënneren datt Dir och e Bild fir eis maache kënnt

Et ginn dräi Méiglechkeeten fir matzemaachen.

Preparéiert d'Bild selwer a kritt 3000 Rubel op Ärem Gläichgewiicht

Wann Dir bereet sidd direkt an d'Schluecht ze rennen an d'Bild ze kreéieren dat Dir selwer feelt, wäerte mir Iech mat 3000 Rubel op Är intern Gläichgewiicht kreditéieren - Dir kënnt et op Serveren verbréngen.

Wéi Dir Äert Bild erstellt:

  1. Schafen e Kont mat eis Site
  2. Sot d'Ënnerstëtzung datt Dir Biller erstellen an testen
  3. Mir wäerten Iech 3000 Rubel Kreditt an erméiglechen d'Fäegkeet Snapshots ze kreéieren
  4. Bestellt e virtuelle Server mat engem proppere Betribssystem
  5. Installéiert d'Software op dësem VPS a setze se op
  6. Schreift Instruktiounen oder Skript fir Software Deployment
  7. Erstellt e Snapshot fir de konfiguréierten Server
  8. Bestellt en neie virtuelle Server andeems Dir de virdru erstallte Snapshot an der Dropdown-Lëscht "Server Template" auswielt
  9. Am Fall vun erfollegräicher Schafung vum Server, transferéiert d'Materialien, déi um Schrëtt 6 op d'technesch Ënnerstëtzung kritt goufen
  10. Am Fall vun engem Feeler, kënnt Dir mat der Ënnerstëtzung fir de Grond kontrolléieren an d'Setup widderhuelen

Fir Geschäftsbesëtzer: bitt Är Software

Wann Dir e Softwareentwéckler sidd deen op engem VPS ofgebaut a benotzt gëtt, da kënne mir Iech op de Maartplaz enthalen. Dëst ass wéi mir Iech hëllefen, nei Clienten, Traffic a Visibilitéit ze bréngen. Schreift eis

Loosst eis an de Kommentarer wëssen wéi eng Bild Dir vermësst?

A mir wäerten et selwer preparéieren

Erstellt eng VPS Schabloun mat Drupal 9 op Centos 8

Erstellt eng VPS Schabloun mat Drupal 9 op Centos 8

Source: will.com