Eigene PHP Version
Aktuelle PHP Version
Dieser Artikel bezieht sich auf ältere PHP Versionen. Wer eine aktuellere PHP-Version benötigt als in Debian Stable vorhanden, folgt bitte der Anleitung PHP
Falls Anwendungen nach dem Upgrade auf Jessie übergangsweise eine ältere PHP-Version benötigen, kann im Paket eine eigene Version compiliert werden.
mkdir php54 cd php54 wget http://de1.php.net/distributions/php-5.4.45.tar.gz tar zxf php-5.4.45.tar.gz
./configure --prefix $HOME/php-5.4.45 --enable-mbstring --with-xmlrpc --enable-soap --enable-zip --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-intl --with-xsl --with-mysqli=/usr/bin/mysql_config --with-pdo-mysql --enable-pdo=shared --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-zlib --with-mysql # eigentlich auch noch --with-curl --with-openssl # die jedoch ggf. inkompatibel zu den aktuellen Bibliotheken bei Hostsharing sind # oft kann man jedoch darauf verzichten make make install
Hardlink:
ln php-cgi /home/pacs/xyz00/users/xyz/php-5.4.45/bin/php-cgi
oder eine eigenes phpstub, falls ein Hardlink nicht erwünscht ist:
Dazu die Dateien aus /usr/local/src/phpstub in folgendes Verzeichnis kopieren:
php/phpstub
in der phpstub.c den folgenden Pfad geändert:
execl("/home/pacs/xyz00/php-5.4.45/bin/php-cgi", "php", NULL); make
Die erzeugte phpstub als myphpstub in die entsprechenden Domain fastcgi[-ssl] Verzeichnisse kopieren.
Weiter die
/etc/php5/cgi/php.ini
nach ./fastcgi kopiert.
Laufende PHP-Prozesse können mit dem Kommando
killall -u $USER -r php
beendet werden.
Änderung der .htaccess der entsprechenden Domains
AddType application/x-httpd-phpfastcgi .php Action application/x-httpd-phpfastcgi /fastcgi-bin/myphpstub
/fastcgi-bin ist dabei kein echtes Verzeichnis, sondern ist in der Apache Konfiguration (/etc/apache2/sites-available/example.com) definierter Alias.
Mögliche Probleme mit MySQL-Passwort umgehen
Alle hsadmin definierte MySQL-Passworte sind aus Kompatibilitätsgründen als 16-Byte-Zeichenkette gespeichert. Um das zu umgehen, ändern Sie das Passwort mit MySQL-Mitteln:
xyz00@h0x:~$ mysql -u xyz00_mysql -p Enter password: mysql> SET SESSION old_passwords=0; mysql> SET PASSWORD FOR 'xyz00_mysql'@'%' = PASSWORD('geheim');
Damit wir das Passwort als 41-Byte-Zeichenkette gespeichert.
ACHTUNG: Nach jeder Änderung mit hsadmin wird wieder ein 16-Byte-Hash gespeichert!