Nadal širimo naš tržnici. Nedavno smo govorili o tome kako , a ovog tjedna našoj tržnici se pridružio Drupal.
Objašnjavamo zašto smo ga odabrali i kako je slika stvorena.
Drupal — praktična i moćna platforma za izradu svih vrsta web stranica: od mikrositeova i blogova do velikih društvenih projekata, koja se također koristi kao osnova za web aplikacije, napisana na PHP-u i koristi relacijske baze podataka kao skladište podataka.
Drupal 9 uključuje sve značajke implementirane u verziji 8.9. Ključna razlika između verzije 9 i verzije 8 je ta da će platforma i dalje primati ažuriranja i sigurnosne ispravke nakon studenog 2021. godine. Također, u verziji 9 olakšan je proces ažuriranja, čime je proces nadogradnje s verzije 8 još jednostavniji.
Zahtjevi za poslužitelj
Za korištenje Drupala preporučuje se koristiti 2 GB RAM-a i 2 CPU jezgre.
Osnovni datoteke Drupala zauzimaju oko 100 MB, a dodatno će vam biti potrebno mjesto za pohranu slika, baza podataka, tema, dodatnih modula i sigurnosnih kopija, koje će ovisiti o veličini vaše web stranice.
Za Drupal 9 potrebno je PHP 7.4 ili novija verzija s minimalnim ograničenjem (memory_limit) memorije od 64 MB, a u slučaju korištenja dodatnih modula preporučuje se postaviti 128 MB.
Kao web server Drupal može koristiti Apache ili Nginx, a kao bazu podataka MySQL, PostgreSQL ili SQLite.
Instalirat ćemo Drupal koristeći Nginx i MySQL.
Namestitev
Ažurirati ćemo instalirane pakete na najnoviju verziju:
sudo dnf update -yDodajmo stalno dopuštenje za ulazni promet na http/80 i https/443 portove:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsPrimijenit ćemo nova pravila vatrozida:
sudo systemctl reload firewalldInstaliramo Nginx:
sudo dnf install nginx -yPokrećemo i omogućujemo Nginx server:
sudo systemctl start nginx
sudo systemctl enable nginx Budući da se trenutno u glavnom repozitoriju Centos koristi verzija PHP 7.2, dodajemo REMI repozitorij s PHP 7.4 (minimalna verzija za Drupal 9).
Za to dodajmo EPEL repozitorij (potreban za REMI repozitorij):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmDodajmo REMI repozitorij:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Uključimo php:remi-7.4 modul za instalaciju PHP 7.4:
sudo dnf module enable php:remi-7.4 -yInstalirati ćemo php-fpm i php-cli:
sudo dnf install -y php-fpm php-cliInstaliramo PHP module potrebne za rad Drupala:
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-xmlTudi namestimo priporočene PHP module mbstring opcache:
sudo dnf install -y php-mbstring php-opcacheNamestimo strežnik MySQL:
sudo dnf install mysql-server -yVključimo in zaženemo strežnik MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqldKer pripravljamo predlogo za VDS, ki so lahko počasni, dodamo zakasnitev za zagon mysqld 30 sekund, sicer lahko pride do težav z zagonom strežnika ob prvotnem zagonu sistema:
sudo sed -i '\/Group=mysql\/a \nExecStartPre=\/bin\/sleep 30\n' \/usr\/lib\/systemd\/system\/mysqld.serviceSpremenimo skupino in uporabnika, pod katerim bo nginx deloval, tako da spremenimo \/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.confSpremenimo lastnika mape s sejo PHP tudi na nginx:
sudo chown -R nginx. \/var\/lib\/php\/sessionOdstranimo vrstice s komentarji iz konfiguracijske datoteke \/etc\/nginx\/nginx.conf (da ne bo dvojnega delovanja za sed):
sudo sed -i -e '\/^[ t]*#\/d' \/etc\/nginx\/nginx.confDodamo v \/etc\/nginx\/nginx.conf nastavitve za gzip kompresijo
sudo sed -i '\/types_hash_max_size 2048;\/a \n\n gzip on;\n gzip_static on;\n 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;\n gzip_comp_level 9;\n gzip_proxied any;\n gzip_min_length 1000;\n gzip_disable "msie6";\n gzip_vary on; \n' \/etc\/nginx\/nginx.confDodamo v \/etc\/nginx\/nginx.conf nastavitve za indeksno datoteko index.php:
sudo sed -i '\/ root \/usr\/share\/nginx\/html;\/a \n index index.php index.html index.htm;\n' \/etc\/nginx\/nginx.confDodamo nastavitve za privzeti strežnik obdelavo php preko soketa php-fpm, onemogočimo log za statične datoteke, povečamo čas poteka, onemogočimo dostopne in napake za favicon.ico in robots.txt ter prepovemo dostop do datotek .ht za vse:
sudo sed -i '\/ location \/ {\/a \n\t\ttry_files $uri $uri\/ \/index.php?q=$uri&$args;\n }\n \n location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {\n access_log off;\n expires max;\n }\n \n location ~ .php$ {\n try_files $uri =404;\n fastcgi_pass unix:\/run\/php-fpm\/www.sock;\n fastcgi_index index.php;\n include fastcgi_params;\n fastcgi_intercept_errors on;\n fastcgi_ignore_client_abort off;\n fastcgi_connect_timeout 60;\n fastcgi_send_timeout 180;\n fastcgi_read_timeout 180;\n fastcgi_buffer_size 128k;\n fastcgi_buffers 4 256k;\n fastcgi_busy_buffers_size 256k;\n fastcgi_temp_file_write_size 256k;\n }\n \n location = \/favicon.ico {\n log_not_found off;\n access_log off;\n }\n \n location = \/robots.txt {\n allow all;\n log_not_found off;\n access_log off;\n }\n \n location ~ \/.ht {\n deny all;' \/etc\/nginx\/nginx.confNamestimo wget, ki je potreben za namestitev certbota:
sudo dnf install wget -yZačnemo s prenosom izvajalne datoteke certbot z uradne strani:
cd ~
wget https://dl.eff.org/certbot-autoPremaknemo certbot v /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoIn dodelimo pravice ter lastnika root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoNamestimo odvisnosti certbot in v tem koraku prekiniti njegovo delovanje (Odgovori: Y, c):
certbot-autoPrenesemo arhiv z najnovejšo različico Drupal 9 z uradne strani:
cd ~
wget https://www.drupal.org/download-latest/tar.gzNamestimo tar za razpakiranje arhiva:
sudo dnf install tar -yOdstranimo privzete datoteke v imeniku /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Razpakiramo datoteke v imenik spletnega strežnika:
tar xf tar.gz -C /usr/share/nginx/html/Premaknemo datoteke iz podimenika v korenski imenik spletnega strežnika:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Odstranimo podimenik:
rm -rf /usr/share/nginx/html/drupal-9.0.7Odstranimo arhiv z namestitvenimi datotekami:
rm -f ./tar.gzDodelimo lastništvo datotek nginx:
chown -R nginx. /usr/share/nginx/htmlV tem koraku bomo izklopili strežnik in naredili posnetek:
shutdown -h nowPo zagonu VDS iz posnetka bomo izvedli začetno nastavitev MySQL strežnika z zagonom skripte:
mysql_secure_installationVključimo validator gesel:
Would you like to setup VALIDATE PASSWORD component? : yDoločimo geslo za uporabnika root MySQL:
New password:
Re-enter new password:Odstranimo anonimne uporabnike:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : yOnemogočimo dostop root na daljavo:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yOdstranimo testno bazo podatkov:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yOsvežimo tabele privilegije:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Po tem, da končamo namestitev, lahko obiščemo naslov
Na tem naslovu bomo videli stran z namestitvijo Drupala.
Izberemo uporabljeni jezik. Na primer: slovenščina. Pritisnemo 'Shrani in nadaljuj'
Izberemo namestitveni profil (demo se uporablja izključno za seznanjanje s sistemom). V našem primeru naj bo to 'standard'.
Na naslednji strani določimo ime baze podatkov, na primer 'drupal'. Določimo ime uporabnika baze podatkov root in geslo, ki smo mu ga dodelili pri zagonu mysql_secure_installation. Pritisnemo 'Shrani in nadaljuj'.
Počakamo na zaključek namestitve in posodobitev prevodov (postopek lahko traja nekaj minut).
Navedite naziv sajta, zadate email sa kojeg će dolaziti obaveštenja, korisničko ime, lozinku i email računa administratora Drupal-a. Takođe, postavite zemlju i vremensku zonu u regionalnim podešavanjima. Instalaciju završavamo klikom na 'Sačuvaj i nastavi'.
Nakon toga možete preći na kontrolnu tablu koristeći kreirano korisničko ime i lozinku administratora Drupal-a.
Podešavanje HTTPS (opcionalno)
Za podešavanje HTTPS-a, VDS mora imati važeće DNS ime, navedite u
/etc/nginx/nginx.confodeljku server naziv servera (na primer):
server_name domainname.ru;Ponovo pokrenimo nginx:
service nginx restartPokrenimo certbot:
sudo /usr/local/bin/certbot-auto --nginxUnesite svoj email, saglasite se sa uslovima servisa (A), pretplata na newsletter (opcionalno) (N), izaberite domenska imena za koja treba izraditi sertifikat (Enter za sve).
U slučaju da sve prođe bez grešaka, videćemo poruku o uspešnom izdavanju sertifikata i podešavanju servera:
Čestitamo! Uspešno ste omogućili ...Nakon toga, konekcije na portu 80 biće preusmerene na 443 (https).
Dodajte u /etc/crontab za automatsko ažuriranje sertifikata:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Podešavanje Trusted Host Security (preporučuje se)
Ova postavka je rešenje problema povezanog sa dinamičkim određivanjem base_url i osmišljena je da spreči napade HTTP HOST Header (kada vaš sajt misli da je nešto drugo).
Za to je potrebno navesti pouzdana imena domena sajta u podešavanju.
V datoteki
/usr/share/nginx/html/sites/default/settings.php otkomentarišite ili dodajte postavku sa obrascima aktuelnih imena sajta, na primer:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
Instalacija PHP APCu (PREPORUČUJE SE)
Drupal podržava APCu — Alternative PHP User Cache, verzije 8 i 9 intenzivnije koriste APCu kao kratkoročni lokalni keš nego prethodne verzije. Podrazumevana veličina keša (32 MB) odgovara većini sajtova i ne može preći 512 MB.
Za aktivaciju instalirajte PHP APCu modul:
dnf -y install php-pecl-apcuPonovo pokrenite nginx i php-fpm:
service nginx restart
service php-fpm restartU slučaju korišćenja srpskog jezika i APCu sa preporučenom veličinom memorije za keš, u kontrolnoj tabli možete videti upozorenje da se veličina dodeljene memorije za keš razlikuje od preporučene, ali zapravo sve funkcioniše ispravno, a netačno upozorenje će verovatno ispraviti u narednim ažuriranjima.
Ili ako vam upozorenje ne prija, možete koristiti .
Želimo vam spomniti, da lahko tudi vi ustvarite sliko za nas
Obstajajo tri možnosti, kako sodelovati.
Pripravite sliko sami in prejmite 3000 rubljev na svoj račun
Če ste pripravljeni takoj skočiti v akcijo in ustvariti sliko, ki je ne morete najti, vam bomo nakažemo 3000 rubljev na notranji račun — kar lahko porabite za strežnike.
Kako ustvariti svojo sliko:
- Ustvarite račun pri nas na
- Obvestite podporo, da nameravate ustvarjati in testirati slike
- Nakažemo vam 3000 rubljev in omogočili bomo možnost ustvarjanja posnetkov
- Naročite virtualni strežnik s čisto operacijsko sistem
- Namestite programsko opremo na ta VPS in jo konfigurirajte
- Pripravite navodila ali skripte za namestitev programske opreme
- Ustvarite posnetek za konfiguriran strežnik
- Naročite nov virtualni strežnik, tako da v spustnem seznamu izberete 'Predloga strežnika', prej ustvarjen posnetek
- V primeru uspešne ustvaritve strežnika predajte materiale, pridobljene v koraku 6, tehnični podpori
- V primeru napake lahko pri podpori preverite vzrok in ponovite konfiguracijo
Za podjetnike: ponudite svojo programsko opremo
Če ste razvijalec programske opreme, ki se namešča in uporablja na VPS, vas lahko vključimo v tržnico. Na ta način vam lahko pomagamo pridobiti nove stranke, promet in prepoznavnost.
Sporočite v komentarjih, katere slike vam primanjkuje?
In pripravili jo bomo sami
Izvor: habr.com
