Vi fortsetter Ä utvide vÄr markedsplass. Nylig fortalte vi hvordan , og denne uken har vÄr markedsplass fÄtt Drupal.
Vi forklarer hvorfor vi valgte nettopp dette, og hvordan bildet ble laget.
Drupal â en brukervennlig og kraftig plattform for Ă„ lage alle typer nettsteder: fra mikrosider og blogger til store sosiale prosjekter, og som ogsĂ„ brukes som grunnlag for webapplikasjoner, skrevet i PHP og som benytter relasjonsdatabaser for datalagring.
Drupal 9 inkluderer alle funksjonene som ble introdusert i versjon 8.9. Det viktigste skillet mellom versjon 9 og 8 er at det vil bli gitt oppdateringer og sikkerhetsfikser for plattformen etter november 2021. I tillegg er oppdateringsprosessen i versjon 9 forenklet, noe som gjĂžr oppdatering fra versjon 8 enda enklere.
Serverkrav
For Ă„ bruke Drupal anbefales det Ă„ ha 2 GB RAM og 2 CPU-kjerner.
De grunnleggende filene til Drupal tar omtrent 100 MB, i tillegg trenger du plass til bilder, databaser, temaer, tilleggmoduler og sikkerhetskopier, avhengig av stÞrrelsen pÄ nettstedet ditt.
For Drupal 9 kreves PHP 7.4 eller hÞyere med et minimumsgrense (memory_limit) pÄ 64 MB, og i tilfelle du bruker tilleggmoduler, anbefales 128 MB.
Som webserver kan Drupal bruke Apache eller Nginx, og som database MySQL, PostgreSQL eller SQLite.
Vi vil installere Drupal ved hjelp av Nginx og MySQL.
Installasjon
Vi oppdaterer de installerte pakkene til den nyeste versjonen:
sudo dnf update -yLegg til permanent tillatelse for innkommende trafik til http/80 og https/443 porter:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsBruk de nye brannmurreglene:
sudo systemctl reload firewalldInstaller Nginx:
sudo dnf install nginx -yStart og aktiver Nginx-serveren:
sudo systemctl start nginx
sudo systemctl enable nginx Siden den nÄvÊrende hovedarkivet for CentOS bruker PHP 7.2, legger vi til REMI-arkivet med PHP 7.4 (minimum versjon for Drupal 9).
For dette legger vi til EPEL-arkivet (som kreves av REMI-arkivet):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmLegg til REMI-arkivet:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Aktiver php:remi-7.4-modulen for Ă„ installere php 7.4:
sudo dnf module enable php:remi-7.4 -yInstaller php-fpm og php-cli:
sudo dnf install -y php-fpm php-cliInstaller PHP-modulene som kreves for Ä fÄ Drupal til Ä fungere:
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-xmlVi vil ogsÄ installere de anbefalte PHP-moduler mbstring og opcache:
sudo dnf install -y php-mbstring php-opcacheVi installerer MySQL-serveren:
sudo dnf install mysql-server -yVi aktiverer og starter MySQL-serveren:
sudo systemctl start mysqld
sudo systemctl enable mysqldSiden vi lager en mal for VDS, som kan vÊre trege, legger vi inn en startforsinkelse pÄ mysqld pÄ 30 sekunder, ellers kan det oppstÄ problemer med serverstart ved systemets fÞrste oppstart:
sudo sed -i '\/Group=mysql\/a \nExecStartPre=\/bin\/sleep 30\n' \/usr\/lib\/systemd\/system\/mysqld.serviceVi endrer gruppen og brukeren som nginx vil kjĂžre under ved Ă„ gjĂžre endringer i \/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.confVi endrer eieren av PHP-sessionkatalogen til nginx:
sudo chown -R nginx. \/var\/lib\/php\/sessionVi fjerner kommentarlinjene fra konfigurasjonsfilen \/etc\/nginx\/nginx.conf (for Ä unngÄ dobbeltrigging med sed):
sudo sed -i -e '\/^[ t]*#\/d' \/etc\/nginx\/nginx.confVi legger til gzip-kompresjonsinnstillinger i \/etc\/nginx\/nginx.conf
sudo sed -i '\/types_hash_max_size 2048;\/a \n\ngzip on;\ngzip_static on;\ngzip_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;\ngzip_comp_level 9;\ngzip_proxied any;\ngzip_min_length 1000;\ngzip_disable "msie6";\ngzip_vary on; \n' \/etc\/nginx\/nginx.confVi legger til innstillinger for indeksfilen index.php i \/etc\/nginx\/nginx.conf:
sudo sed -i '\/ root \/usr\/share\/nginx\/html;\/a \n index index.php index.html index.htm;\n' \/etc\/nginx\/nginx.confVi legger til innstillinger for standardserveren for php-behandling via php-fpm-socket, deaktiverer logg for statiske filer, Ăžker utlĂžpstiden, deaktiverer logg over tilgang og feil for favicon.ico og robots.txt og nekter tilgang til .ht-filer:
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.confVi installerer wget som er nĂždvendig for Ă„ installere certbot:
sudo dnf install wget -yVi laster ned den kjĂžrbare filen certbot fra nettstedet:
cd ~
wget https://dl.eff.org/certbot-autoVi flytter certbot til /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoOg setter eierne til root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoVi installerer avhengigheter for certbot og stopper det pÄ dette stadiet (Svar: Y, c):
certbot-autoVi laster ned arkivet med den nyeste versjonen av Drupal 9 fra nettstedet:
cd ~
wget https://www.drupal.org/download-latest/tar.gzVi installerer tar for Ă„ pakke ut arkivet:
sudo dnf install tar -yVi fjerner standardfiler fra katalogen /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Vi pakker ut filene til webserverkatalogen:
tar xf tar.gz -C /usr/share/nginx/html/Vi flytter filene fra underkatalogen til rotkatalogen til webserveren:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Vi sletter underkatalogen:
rm -rf /usr/share/nginx/html/drupal-9.0.7Vi fjerner arkivet med installasjonsfilene:
rm -f ./tar.gzVi setter nginx som eier av filene:
chown -R nginx. /usr/share/nginx/htmlPÄ dette stadiet slÄr vi av serveren og tar en snapshot:
shutdown -h nowEtter Ă„ ha startet VDS fra snapshot, utfĂžrer vi den fĂžrste konfigurasjonen av MySQL-serveren ved Ă„ kjĂžre skriptet:
mysql_secure_installationVi aktiverer passordvalidereren:
Would you like to setup VALIDATE PASSWORD component? : yVi setter password for MySQL-brukeren root:
New password:
Re-enter new password:Vi fjerner anonyme brukere:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : yVi forbyr root tilgang eksternt:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yVi fjerner testdatabasen:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yVi laster inn privilegietabellene pÄ nytt:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Etter dette, for Ä fullfÞre installasjonen, kan vi gÄ til adressen
PĂ„ denne adressen vil vi se installasjonssiden for Drupal.
Vi velger sprĂ„k som skal brukes. For eksempel: norsk. Vi klikker pĂ„ âLagre og fortsetteâ
Vi velger installasjonsprofilen (demoen brukes kun for Ä bli kjent med systemet). I vÄrt tilfelle velger vi 'standard'.
PÄ den neste siden angir vi navnet pÄ databasen, for eksempel 'drupal'. Vi oppgir brukernavnet til databasen root og passordet som ble satt under kjÞringen av mysql_secure_installation. Vi klikker pÄ 'Lagre og fortsette'.
Vi venter pÄ at installasjonen og oversettelsesoppdateringene skal fullfÞres (prosessen kan ta noen minutter).
Vi spesifiserer nettstedets navn, angir nettstedets e-post (fra hvilken varsler vil bli sendt), brukernavn, passord og e-post for Drupal-administratorens konto. Vi vil ogsÄ angi landet og tidssonen i de regionale innstillingene. Vi avslutter installasjonen ved Ä klikke pÄ «Lagre og fortsett».
Etter dette kan du gÄ til kontrollpanelet med det opprettede administratorbrukernavnet og passordet til Drupal.
Konfigurering av HTTPS (valgfritt)
For Ä konfigurere HTTPS mÄ VDS ha et gyldig DNS-navn, spesifiser i
/etc/nginx/nginx.confunder server navnet pÄ serveren (for eksempel):
server_name domainname.ru;La oss starte nginx pÄ nytt:
service nginx restartLa oss starte certbot:
sudo /usr/local/bin/certbot-auto --nginxOppgi e-posten din, godta vilkÄrene for tjenesten (A), abonnement pÄ nyhetsbrev (valgfritt) (N), velg domenenavnene det skal utstedes sertifikat for (Enter for alle).
Hvis alt gikk bra uten feil, vil vi se en melding om vellykket utstedelse av sertifikater og konfigurasjon av serveren:
Congratulations! You have successfully enabled ...Etter dette vil tilkoblinger pÄ port 80 bli videresendt til 443 (https).
Legg til i /etc/crontab for automatisk oppdatering av sertifikater:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Konfigurering av Trusted Host Security (anbefalt)
Denne innstillingen er ment som en lÞsning pÄ problemet med dynamisk bestemmelse av base_url, og tar sikte pÄ Ä forhindre HTTP HOST Header-angrep (nÄr nettstedet ditt tror det er noen annen).
For dette mÄ du angi de pÄlitelige domenenavnene til nettstedet i innstillingsfilen.
I filen
/usr/share/nginx/html/sites/default/settings.php avkommenter eller legg til innstillingen med mĂžnstre for aktuelle domenenavn, for eksempel:
$settings['trusted_host_patterns'] = [
'^www.mydomain.ru$',
];
Installasjon av PHP APCu (ANBEFALES)
Drupal stĂžtter APCu â Alternative PHP User Cache, versjoner 8 og 9 bruker APCu mer intensivt som en kortvarig lokal cache enn tidligere versjoner. Standard cache-stĂžrrelse (32 MB) passer for de fleste nettsteder, og kan ikke overstige 512 MB.
For Ă„ aktivere det, installer PHP APCu-modulen:
dnf -y install php-pecl-apcuLa oss starte nginx og php-fpm pÄ nytt:
service nginx restart
service php-fpm restartI tilfelle du bruker russisk sprÄk og APCu med anbefalt minnestÞrrelse for cachen, kan du se en advarsel i kontrollpanelet om at den tildelte minnestÞrrelsen for cachen avviker fra anbefalt verdi, men alt fungerer riktig, og den feilaktige advarselen vil sannsynligvis bli rettet i kommende oppdateringer.
Eller hvis advarselen er plagsom, kan du bruke .
Vi vil gjerne minne om at du ogsÄ kan lage en image for oss
Det finnes tre alternativer for deltakelse.
Lag bildet selv og fÄ 3000 kroner pÄ balansen
Hvis du er klar til Ă„ kaste deg inn i det og lage bildet som mangler, vil vi kreditere deg 3000 kroner pĂ„ den interne balansen â du kan bruke dette pĂ„ serverne.
Slik lager du ditt eget bilde:
- Opprett en konto hos oss pÄ
- Gi beskjed til supporten at du planlegger Ă„ lage og teste bilder
- Vi vil kreditere deg 3000 kroner og aktivere muligheten for Ă„ lage snapshots
- Bestill en virtuell server med et rent operativsystem
- Installer programvaren pÄ denne VPS-en og konfigurer den
- Lag en instruksjon eller skript for distribusjon av programvaren
- Lag et snapshot for den konfigurerte serveren
- Bestill en ny virtuell server, ved Ă„ velge 'Servermal' fra rullegardinmenyen med den tidligere opprettede snapshot-en
- Ved vellykket oppretting av serveren, gi materiell fra trinn 6 til teknisk stĂžtte
- Ved feil kan du spÞrre supporten om Ärsaken og gjenta oppsettet
For bedrifts eiere: tilby programvaren din
Hvis du er en programvareutvikler som distribueres og brukes pÄ VPS, kan vi inkludere deg i markedsplassen. PÄ denne mÄten kan vi hjelpe deg med Ä fÄ nye kunder, trafikk og synlighet.
Fortell i kommentarene hvilket bilde du mangler?
Og vi vil lage det selv
Kilde: habr.com
