Eigene PHP Version

Aus Hostsharing Wiki
Wechseln zu: Navigation, Suche

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
./configure --prefix $HOME/php-5.4.45 --enable-mbstring --with-curl
--with-openssl --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

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.


ACHTUNG: killall php -u $USER wirkt nicht, prozesse mit ps aux kontrolliert und kill

Änderung der .htaccess der entsprechenden Domains

AddType application/x-httpd-phpfastcgi .php
Action application/x-httpd-phpfastcgi /fastcgi-bin/myphpstub

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!