Instalace nejnovější verze Apache 2.4, PHP 8.2, MariaDB 10.11, Memcached, Xdebug a ImageMagick na Windows 10 a 11
Nainstalujte si webový server Apache 2.4 se skriptovacím jazykem PHP 8.2 přímo na svůj počítač s Windows 10 a 11. K tomu si během pár vteřin přidejte databázový server MariaDB 10.11 a Memcached.
A pro fajnšmekry tu je návod na „VirtualHost“, který využijete pro více (sub)domén na localhostu. Každá (sub)doména bude mít vlastní „DocumentRoot“ a bude dostupná na samostatné adrese, například http://tronlaserarena.cz.localhost a http://devtea.cz.localhost.
Instalace PHP 8.2
Vytvořte hlavní adresář:
C:\dev
A do něj vytvořte adresář pro webové stránky:
C:\dev\localhost_www
Stažení PHP 8.2
Nejnovější verzi PHP 8.2 stáhněte z oficiálních stránek. Najdete ji jako „PHP 8.2 (8.2.x)“, zip u varianty „VS16 x64 Thread Safe“ (stahujeme variantu Thread Safe, protože u Apache nebudeme používat FastCGI, ale LoadModule, více o tom například zde).
Vytvořte adresář:
C:\dev\php82
a rozbalte do něj obsah staženého archivu.
Konfigurace PHP 8.2
Nejprve jděte do adresáře s rozbaleným PHP a přejmenujte konfigurační soubor:
C:\dev\php82\php.ini-development
na:
C:\dev\php82\php.ini
a zrovna jej otevřete v textovém editoru, abychom upravili některé parametry.
Spolu s PHP je přibalena i spousta rozšíření. Nejsou ale automaticky načítána, takže je třeba ručně zvolit, která chceme zavádět. Nejprve musíme určit místo, kde se rozšíření nacházejí. V konfiguračním souboru najděte následující řádek:
;extension_dir = "ext"
odstraňte z jeho začátku středník a upravte jej následovně:
extension_dir = "C:\dev\php82\ext"
Nyní určíme, která rozšíření budeme skutečně zavádět.
Odkomentujte (smažte středníky na začátku řádku) u následujících rozšíření:
;extension=bz2
;extension=ldap
;extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=mbstring
;extension=exif
;extension=mysqli
;extension=odbc
;extension=openssl
;extension=pdo_mysql
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=soap
;extension=sockets
;extension=sodium
;extension=sqlite3
;extension=tidy
;extension=xsl
;extension=zip
Doporučuji také následující parametry navýšit takto:
max_execution_time = 300000
memory_limit = 256M
upload_max_filesize = 200M
post_max_size = 200M
Instalace Apache 2.4
Apache 2.4 přináší oproti předchozí verzi několik novinek, především ve způsobu zápisu dnes již zastaralého „deny from all“, kterým můžete zakázat přístup do adresáře. Uvedený zápis díky modulu mod_access_compat.so, který zachovává zpětnou kompatibilitu, naštěstí funguje i v nové verzi, takže se nového zápisu nemusíte obávat. Pokud vás zajímají rozdíly mezi Apache 2.2 a 2.4, doporučujeme navštívit tento dokument.
Stažení Apache 2.4
Apache Lounge se stará o vytváření binárních balíčků pro Windows (nikoli přímo Apache Software Foundation). Jděte proto jeho oficiální stránky, vlevo v nabídce vyberte VS17 a stáhněte nejnovější verzi „Apache 2.4.XX-XXXXXX Win64“ – stáhněte 64bitovou variantu.
Ze staženého archivu zkopírujte celý adresář „Apache2“, takže na disku budete mít:
C:\dev\Apache24\
Příprava konfiguračního souboru
V textovém editoru přejmenujte konfigurační soubor httpd.conf:
C:\dev\Apache24\conf\httpd.conf
na httpd_php82.conf.
Měli byste mít následující soubor:
C:\dev\Apache24\conf\httpd_php82.conf
Úprava konfiguračního souboru
Ve výše připraveném konfiguračním souboru nastavíme adresář, ve kterém se nachází rozbalený Apache (ServerRoot). Najděte následující řádek:
Define SRVROOT "c:/Apache24"
a upravte jej následovně:
Define SRVROOT "c:/dev/Apache24"
Nastavíme, na jaké adrese a portu bude Apache poslouchat. Uvedeme adresu 127.0.0.1, aby obsah nebyl dostupný v rámci lokální sítě, ale pouze pro tento počítač. Najděte proto následující řádek:
Listen 80
a změňte ho takto:
Listen 127.0.0.1:80
Určíme moduly, které budeme chtít zavádět. Odkomentujte (smažte mřížku na začátku řádku) u následujících modulů:
#LoadModule access_compat_module modules/mod_access_compat.so
#LoadModule alias_module modules/mod_alias.so
#LoadModule deflate_module modules/mod_deflate.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule rewrite_module modules/mod_rewrite.so
Nastavíme DocumentRoot serveru, který se načte po zadání adresy http://localhost do webového prohlížeče. Najděte proto tento řádek:
DocumentRoot "${SRVROOT}/htdocs"
a změňte jej takto:
DocumentRoot "C:/dev/localhost_www"
Hned pod tím se nachází nastavení specifických pravidel pro daný adresář, proto najděte následující řádek:
<Directory "${SRVROOT}/htdocs">
a změňte ho následovně:
<Directory "C:/dev/localhost_www">
Nyní povolíme zpracování načítání souborů .htaccess. O pár řádků níže (v téže části <Directory „C:/dev/localhost_www“>…</Directory>) změňte následující řádek:
AllowOverride none
takto:
AllowOverride All
Aby se nám načítal index.php, aniž bychom jej museli zadávat do adresního řádku prohlížeče, najděte tento řádek:
DirectoryIndex index.html
A upravte jej následovně:
DirectoryIndex index.html index.htm index.php
A na konec souboru přidejte následující řádky pro zpracování php souborů:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Dále přidejte zavedení podpory PHP (LoadModule) a určíme, kde se má hledat konfigurační soubor php.ini (PHPIniDir):
LoadModule php_module "C:/dev/php82/php8apache2_4.dll"
PHPIniDir "C:/dev/php82"
A na úplný konec doporučuji přidat následující řádky, které vám pomohou se vyhnout pomalému načítání stránek na localhostu:
AcceptFilter http none
AcceptFilter https none
Proměnné prostředí
Jako poslední krok je třeba nastavit Proměnné prostředí (Environment Variables). Klikněte na nabídku Start ve Windows vlevo dole, pomocí hledání vyhledejte „Upravit proměnné prostředí systému“ (Edit the system environment variables) a klepněte na pravé dolní tlačítko „Proměnné prostředí…“ (Environment Variables). V dolní části „Systémové proměnné“ (System variables) najděte řádek „Path“, klepněte na něj myší a poté klepněte na tlačítko „Upravit…“ (Edit).
Pomocí tlačítka „Nový…“ (New) je třeba přidat dva následující řádky:
C:\dev\php82\
C:\dev\Apache24\bin\
Všechna otevřená okna poté pozavírejte klepáním na tlačítka „OK“, aby se změna uložila.
Instalace služby Apache a otestování konfiguračním souboru
Nyní se dostáváme k samotné instalaci Apache. Spusťte Příkazový řádek (Command Prompt) jako správce a zadejte do něj následující příkaz a stiskněte enter:
httpd.exe -k install -n "Apache24_php82" -f "C:\dev\Apache24\conf\httpd_php82.conf"
Službu jsme pojmenovali jako „Apache24_php82“ – můžeme si stejným způsobem nainstalovat více verzí Apache či PHP (a jejich kombinace), tak ať se v tom do budoucna vyznáme. Za parametrem -f předáváme adresu konfiguračního souboru pro danou službu Apache.
Pokud jste vše správně zadali, služba by se měla nainstalovat bez zbytečného povyku. Jestli se vyskytly nějaké chyby v konfiguračním souboru, můžete jej otestovat a problémy opravit (například špatně uvedené cesty do adresářů či volání neexistujících modulů atd.):
httpd.exe -t -f "C:\dev\Apache24\conf\httpd_php82.conf"
Jestli se vám podařilo službu úspěšně zavést, spusťte ji takto (teď je to nutné udělat ručně, po restartu počítače se už ale spustí sama):
httpd.exe -k start -n "Apache24_php82"
Takto lze službu ukončit:
httpd.exe -k stop -n "Apache24_php82"
Nebo později odinstalovat:
httpd.exe -k uninstall -n "Apache24_php82"
A restartovat:
httpd.exe -k restart -n "Apache24_php82"
Otestování, jdeme na to!
Vytvořte soubor:
C:\dev\localhost_www\index.php
Napište do něj tyto dva řádky a uložte:
<?php
phpinfo();
Nyní už stačí zadat do adresního řádku webového prohlížeče adresu http://localhost. Pakliže je vše správně nastaveno, měla by vás uvítat stránka s informacemi o nastavení PHP, kterou nám vygenerovala funkce phpinfo().
Jestli se požadovaná stránka nenačetla, restartujte počítač.
Manuály naleznete na oficiálních stránkách: Apache a PHP
Pro pokročilé: VirtualHost pro provoz více „domén“ na localhostu
Ještě chvíli se zastavíme u Apache. Pokud pracujete na více projektech a chcete je mít všechny k dispozici lokálně a ve vlastním kořenovém adresáři (a třeba s odlišnou konfigurací), stačí sáhnout po VirtualHostech.
Pokud vám postačuje pouze jeden http://localhost, můžete tuto část přeskočit a plynule přejít k instalaci MySQL.
Představte si, že chcete mít kromě localhostu přístupné také domény „devtea.cz.localhost“ a „tronlaserarena.cz.localhost“ – pro přehlednost doporučuji ponechávat originální názvy domén a na konec připojit „.localhost“.
Na konec konfiguračního souboru:
C:\dev\Apache24\conf\httpd_php82.conf
Přidejte:
<VirtualHost 127.0.0.1:80>
ServerName devtea.cz.localhost
DocumentRoot "C:/dev/localhost_www/p/devtea.cz"
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerName tronlaserarena.cz.localhost
DocumentRoot "C:/dev/localhost_www/p/tronlaserarena.cz"
</VirtualHost>
Pro každý záznam napřed specifikujeme ip adresu localhsotu, osmdesátkový port, kořenový adresář (DocumentRoot) a název domény (ServerName).
Aby se nám správně načítal obsah i z původní domény localhost, přidejte ještě na konec souboru následující kód:
<VirtualHost 127.0.0.1:80>
ServerName localhost
DocumentRoot "C:/dev/localhost_www"
</VirtualHost>
Soubor httpd_php82.conf uložte a restartujte Apache pomocí příkazového řádku:
httpd.exe -k restart -n "Apache24_php82"
Pro každou takovou „doménu“ musíte ještě přidat záznam do souboru „hosts“ (soubor je bez přípony), který se ve Windows 10 nachází v systémovém adresáři:
c:\Windows\System32\drivers\etc\hosts
Soubor hosts je chráněný, takže spusťte libovolný textový editor (postačí i Poznámkový blok) jako správce a přidejte do něj následující řádky:
127.0.0.1 localhost
127.0.0.1 devtea.cz.localhost
127.0.0.1 tronlaserarena.cz.localhost
Od teď vám budou fungovat nastavené localhostové domény.
Většina moderních prohlížečů by neměla domény *.localhost přesměrovávat na vyhledávání v Google, ale přímo zobrazí obsah. Místo .localhost sice můžete použít .test, .dev nebo .local, ale doporučuji ponechat .localhost, protože je více friendly s password managery, firewally, antiviry atd.
Manuály naleznete na oficiálních stránkách: Apache
Nyní ale jdeme pokračovat v instalaci databázového serveru…
Instalace MariaDB 10.11
Instalace MariaDB je zcela bezproblémová. Stáhněte si oficiální instalátor a spusťte jej. Vše další odklikejte až do zdárného konce, po dokončení bude databáze plně k dispozici. Připojit se k ní můžete následujícími údaji:
Server: localhost (nebo 127.0.0.1)
Port: 3306
User: root
Password: vaše_heslo
Manuál naleznete na oficiálních stránkách: MariaDB
Instalace ImageMagick
Na rozdíl od knihovny GD, která je standardní součástí PHP, umožňuje ImageMagick pokročilejší práci se soubory. Při změně velikosti obrázků vám umožní určit, jaký algoritmus (filtr) se použije pro přepočet pixelů. Na výběr máte z desítek filtrů včetně známým Bilinear (FILTER_TRIANGLE), Bicubic (FILTER_CUBIC) a Lanczos (FILTER_LANCZOS). ImageMagick také umí vytvářet obrázky ve formátech WebP, AVIF a progresivní JPEG (PJPEG).
Stažení ImageMagick
V oficiálním repositáři stáhněte nejnovější stabilní (stable) verzi, v době psaní článku to byla verze 3.7.0. Klikněte na daném řádku na DLL a stáhněte požadovanou verzi pro PHP 8.2, Thread Safe (TS) a architekturu x64. V našem případě hledejte „8.2 Thread Safe (TS) x64“.
Stažený archiv rozbalte, najděte v něm soubor php_imagick.dll a zkopírujte jej do adresáře:
C:\dev\php82\ext
Následně do konfiguračního souboru php.ini (např. C:\dev\php82\php.ini) přidejte k rozšířením následující řádek:
extension=imagick
Instalace ImageMagick
Z oficiálních stránek stáhněte nejnovější verzi instalátoru ImageMagick. Hledejte instalaci pro Windows (Windows Binary Release) a architekturu x64. Takže něco jako „ImageMagick-7.1.1-37-Q16-HDRI-x64-dll.exe“.
Instalátor spusťte, zadejte cílový adresář pro instalaci:
C:\dev\ImageMagick-7.1.1-Q16-HDRI
V pátém kroku instalace se ujistěte, že je zatrhnutá možnost „Add application directory to your system path“.
Manuál naleznete na oficiálních stránkách: ImageMagick
Instalace Memcached
U instalace Memcached pro Windows je asi nejsložitější najít aspoň trochu aktuální a funkční verzi.
Stažení Memcached
Stáhněte Memcached 1.4.4. V oficiálním repositáři sice už existují novější verze, ale ne pro Windows, takže se s těmito postaršími také spokojíme.
Vytvořte následující adresář:
C:\dev\memcached
a rozbalte do něj soubory ze staženého archivu.
Instalace služby Memcached
Spusťte Příkazový řádek jako správce, přejděte do složky:
C:\dev\memcachced\
a zadejte následující instalační příkaz a enter:
memcached.exe -d install
Nyní je Memcached nainstalované jako služba.
Spustit jej můžete příkazem (z adresáře C:\dev\memcachced\):
memcached.exe -d start
nebo ukončit:
memcached.exe -d stop
Po restartu počítače se služba Memcached spustí automaticky.
Pokud jej budete potřebovat odinstalovat, zadejte následující příkaz a enter:
memcached.exe -d uninstall
Nastavení PHP pro Memcache(d)
Na stránce repozitáře PHP-memcache-dll naleznete nejnovější verzi DLL souboru pro Windows, případně přímo na oficiálních stránkách rozšíření pro PHP. Nezapomeňte, že Memcache musíte stahovat pro stejnou verzi jako máte PHP, tj. VC16, x64 a Thread Safe (ts).
V master verzi Git hubu si stáhněte tuto aktuální stabilní verzi (soubor php-8.2.x_memcache.dll):
https://github.com/nono303/PHP-memcache-dll/tree/master/vs16/x64/ts
Soubor přejmenujte na php_memcache.dll a zkopírujte do adresáře /ext/ s rozšířeními PHP (např. C:\dev\php82\ext).
Následně do konfiguračního souboru php.ini (např. C:\dev\php82\php.ini) přidejte k rozšířením následující řádek:
extension=memcache
Pro správu Memcached si můžete stáhnout PHP aplikaci PHPMemcachedAdmin.
Mimochodem: Na oficiálních stránkách PHP můžete nalézt rozšíření Memcache, to ale nepodporuje PHP 8.2 pro Windows (je pouze dostupné do PHP 7.4). Na oficiálních stránkách PHP naleznete také rozšíření nazvané Memcached (s písmenem „d“ na konci, tedy stejně jako název aplikace), to ale na Windows nemusí fungovat. Bez obav proto používejte rozšíření Memcache z návodu výše, které vám bude spolehlivě fungovat.
Manuál naleznete na oficiálních stránkách: Memcached
Instalace Xdebug
Stažení Xdebug
Xdebug stáhněte z oficiálních stránek v aktuální verzi ve variantě Windows binaries (DLL soubor) pro PHP 8.2, VS16 a Thread Safe (TS), takže hledejte něco jako PHP 8.2 VS16 TS (64 bit). Pokud na uvedené stránce nevidíte aktuální stabilní verzi, podívejte se do historie vydání, zdali se tam nenachází vhodná verze.
Instalace Xdebug
Stažený DLL soubor přejmenujte na php_xdebug.dll a umístěte jej do složky s rozšířeními:
C:\dev\php82\ext
Nastavení PHP pro Xdebug
V konfiguračním souboru php.ini (např. C:\dev\php82\php.ini) najděte následující řádek:
;zend_extension=opcache
Neměňte jej, ale přidejte pod něj následující řádek:
zend_extension=xdebug
Na konec php.ini souboru ještě přidejte následující řádek, kterým zapnete dva módy (více o módech v oficiální dokumentaci):
xdebug.mode=develop,debug
Manuál naleznete na oficiálních stránkách: Xdebug