Pokračujeme v rozšiřování našeho tržiště. Nedávno jsme mluvili o tom, jak , a tento týden se v našem tržišti objevil Drupal.
Přinášíme vám důvody, proč jsme si vybrali právě jeho a jak obraz vznikal.
Drupal — pohodlná a výkonná platforma pro vytváření jakýchkoli typů webových stránek: od mikrostránek a blogů po velké sociální projekty, používající se také jako základ pro webové aplikace, psaná v PHP a využívající relační databáze jako úložiště.
Drupal 9 zahrnuje všechny funkce zavedené ve verzi 8.9. Hlavní rozdíl mezi verzí 9 a verzí 8 spočívá v tom, že pro platformu budou vydávány aktualizace a opravy zabezpečení i po listopadu 2021. Ve verzi 9 byl také zjednodušen proces aktualizace, což zjednodušuje přechod z verze 8.
Požadavky na server
Pro používání Drupalu se doporučuje mít 2 GB RAM a 2 jádra CPU.
Základní soubory Drupalu zabírají přibližně 100 MB, navíc budete potřebovat místo na ukládání obrázků, databáze, motivů, dalších modulů a záloh, což bude záviset na velikosti vašeho webu.
Pro Drupal 9 je potřeba PHP 7.4 nebo vyšší s minimálním limitem paměti (memory_limit) 64 MB, při použití dalších modulů se doporučuje nastavit 128 MB.
Jako webový server může Drupal používat Apache nebo Nginx, a jako databázi MySQL, PostgreSQL nebo SQLite.
Budeme instalovat Drupal pomocí Nginx a MySQL.
Instalace
Aktualizujeme nainstalované balíčky na nejnovější verzi:
sudo dnf update -yPřidáme trvalé povolení pro příchozí provoz na porty http/80 a https/443:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=httpsPoužijeme nová pravidla firewallu:
sudo systemctl reload firewalldNainstalujeme Nginx:
sudo dnf install nginx -ySpustíme a aktivujeme server Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx Protože v současném repozitáři Centos je používána verze PHP 7.2, přidáme repozitář REMI s PHP 7.4 (minimální verze pro Drupal 9).
Proto přidáme repozitář EPEL (vyžaduje ho repozitář REMI):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmPřidáme repozitář REMI:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Aktivujeme modul php:remi-7.4 pro instalaci php 7.4:
sudo dnf module enable php:remi-7.4 -yNainstalujeme php-fpm a php-cli:
sudo dnf install -y php-fpm php-cliNainstalujeme požadované PHP moduly pro fungování Drupalu:
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-xmlTaké nainstalujeme doporučené moduly PHP mbstring opcache:
sudo dnf install -y php-mbstring php-opcacheNainstalujeme server MySQL:
sudo dnf install mysql-server -yAktivujeme a spustíme server MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqldProtože vytváříme šablonu pro VDS, které mohou být pomalé, přidáme zpoždění spuštění mysqld 30 sekund, jinak může být problém se spuštěním serveru při prvním zavedení systému:
sudo sed -i 's/Group=mysql/a
ExecStartPre=/bin/sleep 30
/' /usr/lib/systemd/system/mysqld.serviceZměníme skupinu a uživatele, pod kterými bude nginx pracovat, tím, že provedeme změny v /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.confZměníme vlastníka adresáře sezení PHP rovněž na nginx:
sudo chown -R nginx. /var/lib/php/sessionOdstraníme řádky s komentáři z konfiguračního souboru /etc/nginx/nginx.conf (aby nedošlo k dvojímu spuštění pro sed):
sudo sed -i -e '/^[ \t]*#/d' /etc/nginx/nginx.confPřidáme do /etc/nginx/nginx.conf nastavení komprese gzip
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.confPřidáme do /etc/nginx/nginx.conf nastavení indexového souboru index.php:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.confPřidáme nastavení pro výchozí server pro zpracování php přes socket php-fpm, vypneme log pro statické soubory, zvýšíme dobu expirace, vypneme log přístupu a chyb pro favicon.ico a robots.txt a zakážeme přístup k souborům .ht pro všechny:
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.confNainstalujeme wget, který je vyžadován pro instalaci certbot:
sudo dnf install wget -yStáhneme spustitelný soubor certbot z oficiálního webu:
cd ~
wget https://dl.eff.org/certbot-autoPřesuneme certbot do /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-autoA nastavíme práva a vlastníka root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoNainstalujeme závislosti certbotu a v této fázi přerušíme jeho provoz (Odpovědi: Y, c):
certbot-autoStáhneme z oficiálního webu archiv s poslední verzí Drupal 9:
cd ~
wget https://www.drupal.org/download-latest/tar.gzNainstalujeme tar pro rozbalení archivu:
sudo dnf install tar -yOdstraníme výchozí soubory v adresáři /usr/share/nginx/html/:
rm -rf /usr/share/nginx/html/*Rozbalíme soubory do adresáře webového serveru:
tar xf tar.gz -C /usr/share/nginx/html/Přesuneme soubory z podadresáře do kořenového adresáře webového serveru:
mv /usr/share/nginx/html/drupal-9.0.7/* /usr/share/nginx/html/Odstraníme podadresář:
rm -rf /usr/share/nginx/html/drupal-9.0.7Odstraníme archiv s instalačními soubory:
rm -f ./tar.gzNastavíme vlastníka souborů na nginx:
chown -R nginx. /usr/share/nginx/htmlV této fázi vypneme server a vytvoříme snapshot:
shutdown -h nowPo spuštění VDS ze snapshotu provedeme prvotní nastavení MySQL serveru spuštěním skriptu:
mysql_secure_installationPovolíme validátor hesel:
Would you like to setup VALIDATE PASSWORD component? : yNastavíme heslo pro uživatele root MySQL:
New password:
Re-enter new password:Odstraníme anonymní uživatele:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : yZakážeme vzdálené přihlašování root:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yOdstraníme testovací databázi:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : yRestartujeme privilegované tabulky:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Poté, pro dokončení instalace, můžeme přejít na adresu
Na této adrese uvidíme instalační stránku Drupal.
Vybereme používaný jazyk. Například: čeština. Klikneme na „Uložit a pokračovat“
Vybereme instalační profil (demo se používá výhradně pro seznámení se systémem). V našem případě to bude „standardní“.
Na další stránce zadáme název databáze, například „drupal“. Uvedeme jméno uživatele DB root a heslo, které jsme mu nastavili při spuštění mysql_secure_installation. Klikneme na „Uložit a pokračovat“.
Počkáme na dokončení instalace a aktualizace překladů (proces může trvat několik minut).
Zadejte název webu, nastavte e-mail webu (ze kterého budou přicházet upozornění), uživatelské jméno, heslo a e-mail administrátorského účtu Drupal. Také nastavte zemi a časové pásmo v regionálních nastaveních. A dokončete instalaci kliknutím na „Uložit a pokračovat“.
Poté se můžete přihlásit do administračního panelu pomocí vytvořeného uživatelského jména a hesla pro Drupal.
Nastavení HTTPS (volitelné)
Pro nastavení HTTPS musí mít VDS platné DNS jméno, zadejte ho do
/etc/nginx/nginx.confv sekci serveru jméno serveru (například):
server_name domainname.cz;Restartujeme nginx:
service nginx restartSpustíme certbot:
sudo /usr/local/bin/certbot-auto --nginxZadejte svůj e-mail, souhlasíte s podmínkami služby (A), Přihlášení k odběru novinek (volitelné) (N), vyberte doménová jména, pro která je třeba vydat certifikát (Enter pro všechna).
Pokud všechno proběhlo bez chyb, zobrazí se zpráva o úspěšném vydání certifikátů a nastavení serveru:
Gratulujeme! Úspěšně jste povolili ...Po tomto připojení bude port 80 přesměrován na 443 (https).
Přidáme do /etc/crontab pro automatickou aktualizaci certifikátů:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"Nastavení zabezpečení důvěryhodného hostitele (doporučeno)
Toto nastavení slouží k řešení problému s dynamickým určováním base_url a je určeno k prevenci útoků HTTP HOST Header (kdy si váš web myslí, že je někdo jiný).
K tomu je třeba uvést důvěryhodná doménová jména webu v konfiguračním souboru.
V souboru
/usr/share/nginx/html/sites/default/settings.php odkomentujte nebo přidejte nastavení s vzory aktuálních názvů webů, například:
$settings['trusted_host_patterns'] = [
'^www.mydomain.cz$',
];
Instalace PHP APCu (DOPORUČUJE SE)
Drupal podporuje APCu — Alternative PHP User Cache; verze 8 a 9 intenzivněji využívají APCu jako krátkodobou místní mezipaměť než předchozí verze. Velikost mezipaměti ve výchozím nastavení (32 MB) vyhovuje většině webů a nemůže překročit 512 MB.
K aktivaci nainstalujte modul PHP APCu:
dnf -y install php-pecl-apcuRestartujeme nginx a php-fpm:
service nginx restart
service php-fpm restartPokud používáte ruský jazyk a APCu s doporučenou velikostí paměti pro mezipaměť, v administračním panelu můžete vidět varování, že přidělená velikost paměti pro mezipaměť se liší od doporučené, ale ve skutečnosti všechno funguje správně, a nesprávné varování bude pravděpodobně opraveno v nejbližších aktualizacích.
Nebo pokud varování je nepříjemné, můžete použít .
Rádi bychom Vám připomněli, že také můžete pro nás vytvořit obraz
Existují tři možnosti, jak se zapojit.
Připravte si obraz sami a získejte 3000 Kč na zůstatek
Pokud jste připraveni se ihned vrhnout do práce a vytvořit obraz, který vám chybí, přidáme vám 3000 Kč na vnitřní zůstatek — můžete je utratit za servery.
Jak vytvořit svůj obraz:
- Vytvořte si u nás účet na
- Dejte vědět podpoře, že plánujete vytvářet a testovat obrazy
- Přidáme vám 3000 Kč a aktivujeme možnost vytvářet snapshoty
- Objednejte si virtuální server s čistým operačním systémem
- Nainstalujte na tuto VPS software a nastavte jej
- Sestavte návod nebo skript pro nasazení softwaru
- Vytvořte snapshot pro nastavený server
- Objednejte nový virtuální server, výběrem dříve vytvořeného snapshotu v rozbalovacím seznamu „Serverový šablon“
- V případě úspěšného vytvoření serveru předáte materiály získané v kroku 6 technické podpoře
- V případě chyby se můžete informovat u podpory o důvodu a opakovat nastavení
Pro majitele podniků: nabídněte svůj software
Pokud jste vývojář softwaru, který je nasazován a používán na VPS, můžeme vás zahrnout do tržiště. Tak vám můžeme pomoci získat nové klienty, provoz a povědomí.
Řekněte v komentářích, jakého obrazu vám chybí?
A my ho připravíme za vás
Zdroj: habr.com
