Nastavljamo s proširenjem našeg tržišta. Nedavno smo govorili o tome kako , a ovog tjedna na našem tržištu pojavio se Drupal.
Objašnjavamo zašto smo odabrali upravo njega i kako je slika stvorena.
Drupal — praktična i snažna platforma za izradu svih vrsta web stranica: od mikrosajtova i blogova do velikih društvenih projekata, koja se također koristi kao osnova za web aplikacije, napisana na PHP jeziku i koristeći relacijske baze podataka kao skladište podataka.
Drupal 9 uključuje sve značajke provedene u verziji 8.9. Ključna razlika između verzije 9 i verzije 8 je u tome što će se ažuriranja i sigurnosne ispravke izdavati za platformu i nakon studenog 2021. godine. Također, u verziji 9 pojednostavljen je proces ažuriranja, što čini proces ažuriranja s verzije 8 još lakšim.
Zahtjevi za server
Za korištenje Drupala preporučuje se 2 GB RAM-a i 2 jezgre CPU-a.
Glavni datoteke Drupala zauzimaju oko 100 MB, a dodatno će vam biti potrebno prostora za pohranu slika, baza podataka, tema, dodatnih modula i sigurnosnih kopija, što će ovisiti o veličini vaše web stranice.
Za Drupal 9 potreban je PHP 7.4 ili viša s minimalnim ograničenjem (memory_limit) na memoriju od 64 MB; u slučaju korištenja dodatnih modula preporučuje se postavljanje na 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.
Instalacija
Ažuriramo instalirane pakete na najnoviju verziju:
sudo dnf update -yDodajemo trajno dopuštenje za dolazni promet na http/80 i https/443 portove:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsPrimijenite nova pravila vatrozida:
sudo systemctl reload firewalldInstaliramo Nginx:
sudo dnf install nginx -yPokrećemo i uključujemo server Nginx:
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 dodajemo EPEL repozitorij (potrebno za REMI repozitorij):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmDodajemo REMI repozitorij:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Omogućujemo modul php:remi-7.4 za instalaciju php 7.4:
sudo dnf module enable php:remi-7.4 -yInstaliramo 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-xmlTakođer ćemo instalirati preporučene PHP module mbstring opcache:
sudo dnf install -y php-mbstring php-opcacheInstalirat ćemo MySQL server:
sudo dnf install mysql-server -yUključit ćemo i pokrenuti MySQL server:
sudo systemctl start mysqld
sudo systemctl enable mysqldBudući da pravimo predložak za VDS, koji može biti spor, dodajemo odgodu pokretanja mysqld od 30 sekundi, inače može doći do problema s pokretanjem servera prilikom inicijalnog pokretanja sustava:
sudo sed -i 's/Group=mysql/&\nExecStartPre=/bin/sleep 30
/' /usr/lib/systemd/system/mysqld.servicePromijenit ćemo grupu i korisnika pod kojim će raditi nginx tako da unesemo promjene u /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.confPromijenit ćemo vlasnika PHP direktorija sesije također na nginx:
sudo chown -R nginx. /var/lib/php/sessionUklonit ćemo redove s komentarima iz konfiguracijske datoteke /etc/nginx/nginx.conf (kako ne bi bilo dvostrukih aktivacija za sed):
sudo sed -i -e '/^[\t ]*#/d' /etc/nginx/nginx.confDodajmo u /etc/nginx/nginx.conf postavke za gzip kompresiju
sudo sed -i '/types_hash_max_size 2048;/a \n 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.confDodajmo u /etc/nginx/nginx.conf postavke za indeksnu datoteku index.php:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confDodajmo postavke za default server obradu php putem php-fpm socketa, isključimo logiranje za statičke datoteke, povećajmo vrijeme isteka, isključimo logiranje pristupa i pogrešaka za favicon.ico i robots.txt te zabranimo pristup .ht datotekama za sve:
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.confInstalirat ćemo wget potreban za instalaciju certbota:
sudo dnf install wget -yPreuzimamo izvršnu datoteku certbot s službene stranice:
cd ~
wget https://dl.eff.org/certbot-autoPremještamo certbot u /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoI dodajemo dopuštenja te postavljamo vlasnika na root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoInstaliramo ovisnosti certbota i u ovom koraku prekinemo njegov rad (Odgovori: Y, c):
certbot-autoPreuzimamo arhivu s posljednjom verzijom Drupal 9 s službene stranice:
cd ~
wget https://www.drupal.org/download-latest/tar.gzInstaliramo tar za raspakiranje arhive:
sudo dnf install tar -yBrišemo zadane datoteke u direktoriju /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Raspakiramo datoteke u direktorij web poslužitelja:
tar xf tar.gz -C /usr/share/nginx/html/Premještamo datoteke iz poddirektorija u korijenski direktorij web poslužitelja:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Brišemo poddirektorij:
rm -rf /usr/share/nginx/html/drupal-9.0.7Brišemo arhivu s instalacijskim datotekama:
rm -f ./tar.gzPostavljamo vlasnika datoteka na nginx:
chown -R nginx. /usr/share/nginx/htmlU ovom trenutku isključujemo poslužitelj i radimo snimku:
shutdown -h nowNakon pokretanja VDS iz snimke izvršit ćemo inicijalnu konfiguraciju MySQL poslužitelja pokretanjem skripte:
mysql_secure_installationAktiviramo validator lozinki:
Would you like to setup VALIDATE PASSWORD component? : yPostavljamo lozinku za korisnika root MySQL:
New password:
Re-enter new password:Brišemo anonimne korisnike:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : ySpriječavamo daljinsko prijavljivanje root-a:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yBrišemo testnu bazu podataka:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yPonovno učitavamo tablice privilegija:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Nakon toga, za završetak instalacije, možemo otići na adresu
Na ovoj adresi vidjet ćemo stranicu s instalacijom Drupala.
Odabiremo jezik koji ćemo koristiti. Na primjer: hrvatski. Kliknemo «Spremi i nastavi»
Biramo instalacijski profil (demo se koristi isključivo za upoznavanje s sustavom). U našem slučaju to će biti «standardni».
Na sljedećoj stranici postavljamo ime baze podataka, na primjer «drupal». Unosimo korisničko ime baze podataka root i lozinku koju smo postavili prilikom pokretanja mysql_secure_installation. Kliknemo «Spremi i nastavi».
Čekamo da se instalacija završi i da se ažuriraju prijevodi (proces može potrajati nekoliko minuta).
Unesite naziv web stranice, definirajte email web stranice (s kojeg će dolaziti obavijesti), korisničko ime, lozinku i email administratorskog računa Drupl. Također, odaberite državu i vremensku zonu u regionalnim postavkama. Završite instalaciju klikom na "Spremi i nastavi".
Nakon toga možete se prijaviti u upravljačku ploču sa stvorenim korisničkim imenom i lozinkom za administratora Drupl.
Postavljanje HTTPS (opcionalno)
Za postavljanje HTTPS na VDS-u, potrebno je imati važeće DNS ime, navedite u
/etc/nginx/nginx.confodjeljku server ime servera (npr.):
server_name domainname.hr;Ponovo pokrenimo nginx:
service nginx restartPokrenimo certbot:
sudo /usr/local/bin/certbot-auto --nginxUnesite svoj email, slažete se s uvjetima usluge (A), pretplatom na biltene (opcionalno) (N), odaberite domenska imena za koja želite dobiti certifikat (Enter za sve).
Ako sve prođe bez grešaka, vidjet ćemo poruku o uspješnom izdavanju certifikata i konfiguraciji poslužitelja:
Čestitamo! Uspješno ste omogućili ...Nakon ovog povezivanja portovi 80 će se preusmjeriti na 443 (https).
Dodajte u /etc/crontab za automatsko ažuriranje certifikata:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Postavljanje Trusted Host Security (preporučuje se)
Ova postavka je namijenjena kao rješenje problema s dinamičkim određivanjem base_url, a služi za sprečavanje napada HTTP HOST Header (kada vaš web misli da je netko drugi).
Za to je potrebno navesti pouzdana domena imena web stranice u datoteci postavki.
U datoteci
/usr/share/nginx/html/sites/default/settings.php otkomentirajte ili dodajte postavku s obrascima aktualnih imena web stranice, na primjer:
$settings['trusted_host_patterns'] = [
'^www.mojadomena.hr$',
];
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 cache nego prethodne verzije. Veličina cache-a po defaultu (32 MB) odgovara većini web stranica i ne može prelaziti 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štenja ruskog jezika i APCu s preporučenom veličinom memorije za cache, u upravljačkoj ploči možete vidjeti upozorenje da veličina dodijeljene memorije za cache odstupa od preporučene, ali zapravo sve pravilno funkcionira, a netočno upozorenje vjerojatno će ispraviti u najnovijim ažuriranjima.
Ili, ako vam upozorenje smeta, možete koristiti .
Želimo vas podsjetiti da i vi možete kreirati sliku za nas
Postoje tri načina kako možete sudjelovati.
Pripremite sliku sami i dobijte 3000 kuna na saldo
Ako ste spremni odmah se upustiti u borbu i sami stvoriti sliku koja vam nedostaje, uplatit ćemo vam 3000 kuna na unutarnji saldo — moći ćete ih potrošiti na servere.
Kako stvoriti svoju sliku:
- Kreirajte računa kod nas na
- Obavijestite podršku da namjeravate kreirati i testirati slike
- Uplatit ćemo vam 3000 kuna i omogućiti stvaranje snimaka stanja
- Naručite virtualni server s čistim operativnim sustavom
- Instalirajte softver na ovu VPS i postavite ga
- Sastavite upute ili skriptu za implementaciju softvera
- Kreirajte snimak stanja za postavljeni server
- Naručite novi virtualni server, birajući prethodno kreirani snimak stanja u padajućem izborniku 'Predložak servera'
- U slučaju uspješnog kreiranja servera, proslijedite materijale dobivene u koraku 6 tehničkoj podršci
- U slučaju pogreške možete se obratiti podršci za uzrok i ponoviti postavku
Za vlasnike tvrtki: ponudite svoj softver
Ako ste programer softvera koji se instalira i koristi na VPS-u, možemo vas uključiti u tržište. Tako možemo pomoći da dovedete nove klijente, promet i prepoznatljivost.
Recite nam u komentarima koje slike vam nedostaju?
I mi ćemo je pripremiti sami
Izvor: habr.com
