Pro klasický web development je LAMP taková klasika. Sice existují jiné webservery, databázové systémy i programovací jazyky, ale LAMP pořád ještě má svoje místo.
Apache
Mezi starší verzí Apache 2.2 a Apache 2.4 se odehrálo dost změn (https://httpd.apache.org/docs/2.4/new_features_2_4.html), pro mě je nejdůležitější stabilní podpora protokolu HTTP/2 - viz. https://httpd.apache.org/docs/2.4/howto/http2.html nebo https://http2.pro/doc/Apache.
Instalace
apt-get install -y apache2
a2enmod ssl rewrite expires
a2ensite default-ssl
Důležitá změna od verze Apache 2.4.27 – červenec 2018
V této aktualizaci se skrývá zrada, protože běžně se Apache instaloval v mpm_preforku, kde právě http2 podpora byla odstraněná. Takže třeba při nastavených aktualizacích Apache jste mohli skrytě právě o http2 přijít.
https://tracker.debian.org/news/969425/accepted-apache2-2425-3deb9u5-so…
Unfortunately, this also removes support for http2 when running on mpm_prefork.
Naštěstí je na výše uvedených stránkách https://http2.pro/doc/Apache napsán jednoduchý návod, jak se přepnout na event worker.
Ještě poznámka - http2 funguje jen přes HTTP s platným certifikátem, který se dá naštěstí jednoduše a zdarma (díky Let’s Encrypt https://letsencrypt.org/) vygenerovat pomocí návodu https://certbot.eff.org/lets-encrypt/debianstretch-apache.html. A automaticky obnovovat pomocí CertBot https://certbot.eff.org/.
MySQL/MariaDB
Instalace je jednoduchá:
apt-get -y install mysql-server mysql-client mysql-utilities
mysql_secure_installation
Tady došlo k jedné, docela zásadní změně. Uživatel root je teď autorizován pomocí unix socketů. To znamená, když jste přihlášení v terminálu jako root, tak můžete přistupovat k MySQL bez zadávání hesla.
Jenže to taky znamená, že se třeba jako root nepřihlásíte do phpmyadmina. Jak z toho?
Uživatel phpmyadmin
Vytvoříme si nového MySQL uživatele, který bude mít stejná práva, jako root.
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'heslo';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
RESET QUERY CACHE;
Následná instalace phpMyAdmin je pak popsaná níže, až budeme mít nainstalované i PHP.
PHP
Instalace PHP je také snadná
apt-get -y install php-mysqli php-gd php-mcrypt php-curl php-mbstring php-imagick php-xml php-zip
Jak bylo ale výše uvedené, je nyní třeba použít php-fpm pro podporu http2
apachectl stop
apt-get -y install php-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm
a2dismod php7.0
a2dismod mpm_prefork
a2enmod mpm_event
apachectl start
S tím také souvisí změna cesty ke konfiguračnímu souboru /etc/php/7.0/fpm/php.ini
Funkční https (h2) se nám pak zobrazí například v Chrome Developer Toolu (možná bude třeba povolit zobrazení sloupečku Protocol).
Ještě jedna věc, hned si nastavím podporu češtiny cs_CZ.UTF-8 pomocí dpkg-reconfigure locales. Hodí se pro lokalizované výpisy, např. strftime().
Konfigurace PHP
Je třeba si uvědomit, že nyní nám neběží PHP jako modul apache. Takže se používají i jiné konfigurační soubory (s úplně stejnou syntaxí), konktrétně na cestě /etc/php/7.0/fpm/. A také po jejich změně není třeba restartovat apache, ale je nutné provést
service php7.0-fpm restart
500 Internal server error - protože php_value
Pokud naše aplikace používala např. .htaccess s nastavením PHP hodnot pomocí php_value, přestane nám náš web přes php-fpm fungovat.
Místo toho je třeba vytvořit soubor .user.ini, kde je syntaxe následující
upload_max_filesize = 5M
A ještě pozor, u mě to nefungovalo bez mezer kolem rovnítka.
phpMyAdmin
Když už máme připraveného uživatele, tak si můžeme nainstalovat i phpMyAdmin. Jedna možnost je si ho instalovat ručně (= problémy s udržováním aktualizované verze) stažením přímo z webu https://www.phpmyadmin.net/. Elegantnější je použít balíček z debianu (apt-get -y install phpmyadmin), který se o instalaci, konfiguraci i aktualizace bude starat sám. Jediný problém je, že bude stárnout, takže v nějakém okamžiku nám tam můžou chybět nějaké nové vlastnosti. Je to něco za něco. Aktuálně (2017/07) je v Debianu verze 4.6.6-4, poslední vydaná verze je 4.8.2.
Ideálně ještě po instalaci upravit /etc/apache2/conf-enabled/phpmyadmin.conf a zabezpečit si přístup.