Eigene PHP Version: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(killall)
KKeine Bearbeitungszusammenfassung
 
Zeile 8: Zeile 8:




<pre>
<syntaxhighlight lang=shell>
mkdir php54
mkdir php54
cd php54
cd php54
wget http://de1.php.net/distributions/php-5.4.45.tar.gz
wget http://de1.php.net/distributions/php-5.4.45.tar.gz
tar zxf php-5.4.45.tar.gz
tar zxf php-5.4.45.tar.gz
</pre>
</syntaxhighlight>


<pre>
<syntaxhighlight lang=shell>
./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
./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


Zeile 24: Zeile 24:
make
make
make install
make install
</pre>
</syntaxhighlight>


Hardlink:
Hardlink:
<pre>
<syntaxhighlight lang=shell>
ln php-cgi /home/pacs/xyz00/users/xyz/php-5.4.45/bin/php-cgi
ln php-cgi /home/pacs/xyz00/users/xyz/php-5.4.45/bin/php-cgi
</pre>
</syntaxhighlight>


oder eine eigenes phpstub, falls ein Hardlink nicht erwünscht ist:
oder eine eigenes phpstub, falls ein Hardlink nicht erwünscht ist:
Zeile 36: Zeile 36:
kopieren:
kopieren:


<pre>
<syntaxhighlight lang=output>
php/phpstub
php/phpstub
</pre>
</syntaxhighlight>


in der phpstub.c den folgenden Pfad geändert:
in der phpstub.c den folgenden Pfad geändert:


<pre>
<syntaxhighlight lang=shell>
execl("/home/pacs/xyz00/php-5.4.45/bin/php-cgi", "php", NULL);
execl("/home/pacs/xyz00/php-5.4.45/bin/php-cgi", "php", NULL);
make
make
</pre>
</syntaxhighlight>


Die erzeugte phpstub als myphpstub in die entsprechenden Domain
Die erzeugte phpstub als myphpstub in die entsprechenden Domain
Zeile 51: Zeile 51:


Weiter die  
Weiter die  
<pre>
<syntaxhighlight lang=output>
/etc/php5/cgi/php.ini  
/etc/php5/cgi/php.ini  
</pre>
</syntaxhighlight>


nach ./fastcgi kopiert.
nach ./fastcgi kopiert.
Zeile 59: Zeile 59:
Laufende PHP-Prozesse können mit dem Kommando
Laufende PHP-Prozesse können mit dem Kommando


    killall -u $USER -r php
<syntaxhighlight lang=output>
killall -u $USER -r php
</syntaxhighlight>


beendet werden.
beendet werden.


Änderung der .htaccess der entsprechenden Domains
Änderung der .htaccess der entsprechenden Domains
<pre>
<syntaxhighlight lang=apache line>
AddType application/x-httpd-phpfastcgi .php
AddType application/x-httpd-phpfastcgi .php
Action application/x-httpd-phpfastcgi /fastcgi-bin/myphpstub
Action application/x-httpd-phpfastcgi /fastcgi-bin/myphpstub
</pre>
</syntaxhighlight>


/fastcgi-bin ist dabei kein echtes Verzeichnis, sondern ist in der Apache Konfiguration (/etc/apache2/sites-available/example.com) definierter Alias.
/fastcgi-bin ist dabei kein echtes Verzeichnis, sondern ist in der Apache Konfiguration (/etc/apache2/sites-available/example.com) definierter Alias.
Zeile 75: Zeile 77:
Alle hsadmin definierte MySQL-Passworte sind aus Kompatibilitätsgründen als 16-Byte-Zeichenkette gespeichert.
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:
Um das zu umgehen, ändern Sie das Passwort mit MySQL-Mitteln:
<pre>
<syntaxhighlight lang=shell>
xyz00@h0x:~$ mysql -u xyz00_mysql -p
xyz00@h0x:~$ mysql -u xyz00_mysql -p
Enter password:
Enter password:
Zeile 81: Zeile 83:
mysql> SET SESSION old_passwords=0;
mysql> SET SESSION old_passwords=0;
mysql> SET PASSWORD FOR 'xyz00_mysql'@'%' = PASSWORD('geheim');
mysql> SET PASSWORD FOR 'xyz00_mysql'@'%' = PASSWORD('geheim');
</pre>
</syntaxhighlight>


Damit wir das Passwort als 41-Byte-Zeichenkette gespeichert.
Damit wir das Passwort als 41-Byte-Zeichenkette gespeichert.

Aktuelle Version vom 1. Juli 2024, 11:01 Uhr

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!