Latest:
- Sailfish OS and memory
- Hillshade tile server
- Statistics of OSM Scout for Sailfish OS
- Nebezpečný router
- Tree model with Silica components
By month:
- November 2021
- January 2019
- December 2017
- December 2016
- May 2014
- April 2014
- November 2013
- April 2013
- April 2011
- February 2011
- January 2011
- August 2010
- May 2010
- March 2010
- January 2010
- October 2009
- April 2009
- February 2009
- October 2008
- September 2008
- August 2008
- April 2008
- March 2008
- February 2008
Topic:
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