Nejnovější:
- Sailfish OS and memory
- Hillshade tile server
- Statistics of OSM Scout for Sailfish OS
- Nebezpečný router
- Tree model with Silica components
Podle data:
- listopad 2021
- leden 2019
- prosinec 2017
- prosinec 2016
- květen 2014
- duben 2014
- listopad 2013
- duben 2013
- duben 2011
- únor 2011
- leden 2011
- srpen 2010
- květen 2010
- březen 2010
- leden 2010
- říjen 2009
- duben 2009
- únor 2009
- říjen 2008
- září 2008
- srpen 2008
- duben 2008
- březen 2008
- únor 2008
Téma:
PHP5 společně s PHP4 na Apache2
Mezi verzemi PHP jsou v některých směrech značné rozdíly. Často se tedy stává, že kód odladěný na PHP5 při nasazení na serveru s PHP4 hází errory a je nutné jej pracně přepisovat. V tomto zápisku popíši jak nastavit pro některé virtuální servery PHP4 a pro ostatní virtuální servery PHP5. Standartně není možné nainstalovat obě verze php jako moduly, protože balíčky libapache2-mod-php5 a libapache2-mod-php4 spolu kolidují. Proto je nutné nainstalovat jednu verzi jako cgi. Spouštění PHP jako CGI má určité nevýhody, například není možné používat sessions a provádění scriptů je pomalejší. Proto tento postup je vhodný spíše na testovací (lokální) servery v kombinaci s aplikacemi, kde php jako cgi nevadí.
Jak mít obě verze php jako modul s jednou instalací Apache2 (2× spuštěného s rozdílnou konfigurací) popisuje Jakub Adamčík na svém blogu.
Následující návod je určen pro Debianí ditribuce. Veškeré přikazy je nutné spouštět s root právy. Postupoval jsem podle návodu na howtoforge, jen s několika odlištnostmi.
Instalace
deb http://ftp.de.debian.org/debian etch mainSeznam balíků poté aktualizujte a nainstalute balík php4-cgi.
Konfigurace
ScriptAlias /php4-cgi /usr/lib/cgi-bin/php4 AddHandler php4-script .php4 Action php4-script /php4-cgi
a zkuste restartovat server apache příkazem
/etc/init.d/apache2 restart
Pokud vám apache místo úspěšného OK vypíše tuto chybu:
Invalid command \'Action\', perhaps misspelled or defined by a module not included in the server configuration
Připište do konfiguračního souboru apache (/etc/apache2/httpd.conf) ještě řádek, který se postará o nahrání modulu actions
LoadModule actions_module /usr/lib/apache2/modules/mod_actions.soPo dalším restartu by již apache neměl vzdorovat.
S touto konfigurací by měl apache soubory s příponou „.php4“ překládat pomocí PHP4 a s příponou „.php“ pomocí PHP5.
Virtuální servery
AddHandler php4-script .php Action php4-script /php4-cgi
Tady ale pozor! Já na jsem se s tímto nastavením na své instalaci stal svědkem toho, že takové nastavení v .htaccess ovlivní i ostatní virtuální servery! …bug či feature? :) Pokud se vám toto stane také, je potřeba na ostatních serverech, na kterých chcete používat PHP5 do .htaccess zapsat
AddHandler php5-script .php