GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

Verwendung von PHP 4.4.9 (FastCGI) mit Apache &ISPConfig 3 (Debian Wheezy)

So verwenden Sie PHP 4.4.9 (FastCGI) mit Apache und ISPConfig 3 (Debian Wheezy)

Seit ISPConfig 3.0.5 ist es möglich, mehrere PHP-Versionen auf einem Server zu verwenden und die optimale PHP-Version für eine Website auszuwählen. Wenn Sie einige sehr alte Websites auf Ihrem Server haben, funktionieren diese möglicherweise nicht mit PHP5, sondern nur mit PHP4. Dieses Tutorial zeigt, wie man PHP 4.4.9 als FastCGI-Version für die Verwendung mit Apache2 auf einem Debian Wheezy-Server erstellt. Diese PHP-Version kann zusammen mit dem Standard-PHP (installiert über apt) in ISPConfig verwendet werden.

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

PHP-FPM ist für PHP4 nicht verfügbar, daher beschreibe ich nur, wie man eine FastCGI-Version von PHP4 erstellt. FastCGI ist nur für Apache-Server verfügbar, daher können Sie es nicht mit nginx verwenden..

2 Erstellen von PHP 4.4.9 (FastCGI)

Installieren Sie die Voraussetzungen für die Erstellung aus dem Quellcode:

apt-get install build-essential

PHP 4.4.9 wird nicht mit modernen OpenSSL-Versionen kompiliert, daher müssen wir zuerst eine ältere OpenSSL-Version (0.9.8x) installieren:

cd /tmp
wget http://www.openssl.org/source/openssl-0.9.8x.tar.gz
tar xvfz openssl-0.9.8x.tar.gz
cd openssl -0.9.8x
./config --prefix=/usr/local/openssl-0.9.8
make
make install

Laden Sie PHP 4.4.9 herunter und extrahieren Sie es:

mkdir /opt/phpfcgi-4.4.9
mkdir /usr/local/src/php4-build
cd /usr/local/src/php4-build
wget http://de. php.net/get/php-4.4.9.tar.bz2/from/this/mirror -O php-4.4.9.tar.bz2
tar jxf php-4.4.9.tar.bz2

cd php-4.4.9/

Erstellen Sie einige notwendige Symlinks:

ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 /usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/libexpat.so /usr/ lib/
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/libmysqlclient.so
mkdir /usr/kerberos
ln -s /usr/ lib/x86_64-linux-gnu /usr/kerberos/lib

Als nächstes müssen wir die Funktionen mysql_drop_db und mysql_create_db deaktivieren, da Sie sonst diese Fehler erhalten, wenn Sie versuchen, PHP 4.4.9 zu bauen:

Fehler:Undefinierter Verweis auf 'mysql_drop_db'
Fehler:Undefinierter Verweis auf 'mysql_create_db'

Öffnen Sie /usr/local/src/php4-build/php-4.4.9/ext/mysql/php_mysql.c...

vi /usr/local/src/php4-build/php-4.4.9/ext/mysql/php_mysql.c

... und gehen Sie zu Zeile 1131. Kommentieren Sie ab dort beide Funktionen aus:

[...]
/*PHP_FUNCTION(mysql_create_db)
{
        zval **db, **mysql_link;
        int id;
        php_mysql_conn *mysql;

        switch(ZEND_NUM_ARGS()) {
                case 1:
                        if (zend_get_parameters_ex(1, &db)==FAILURE) {
                                RETURN_FALSE;
                        }
                        id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);
                        CHECK_LINK(id);
                        break;
                case 2:
                        if (zend_get_parameters_ex(2, &db, &mysql_link)==FAILURE) {
                                RETURN_FALSE;
                        }
                        id = -1;
                        break;
                default:
                        WRONG_PARAM_COUNT;
                        break;
        }

        php_error_docref(NULL TSRMLS_CC, E_NOTICE, "This function is deprecated, please use mysql_query() to issue a SQL CREATE DATABASE statement instead.");

        ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link, le_plink);

        PHPMY_UNBUFFERED_QUERY_CHECK();

        convert_to_string_ex(db);

        if (mysql_create_db(&mysql->conn, Z_STRVAL_PP(db))==0) {
                RETURN_TRUE;
        } else {
                RETURN_FALSE;
        }
}*/
/* }}} */

/* {{{ proto bool mysql_drop_db(string database_name [, int link_identifier])
   Drops (delete) a MySQL database */
/*PHP_FUNCTION(mysql_drop_db)
{
        zval **db, **mysql_link;
        int id;
        php_mysql_conn *mysql;

        switch(ZEND_NUM_ARGS()) {
                case 1:
                        if (zend_get_parameters_ex(1, &db)==FAILURE) {
                                RETURN_FALSE;
                        }
                        id = php_mysql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);
                        CHECK_LINK(id);
                        break;
                case 2:
                        if (zend_get_parameters_ex(2, &db, &mysql_link)==FAILURE) {
                                RETURN_FALSE;
                        }
                        id = -1;
                        break;
                default:
                        WRONG_PARAM_COUNT;
                        break;
        }

        php_error_docref(NULL TSRMLS_CC, E_NOTICE, "This function is deprecated, please use mysql_query() to issue a SQL DROP DATABASE statement instead.");


        ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, mysql_link, id, "MySQL-Link", le_link, le_plink);

        convert_to_string_ex(db);

        if (mysql_drop_db(&mysql->conn, Z_STRVAL_PP(db))==0) {
                RETURN_TRUE;
        } else {
                RETURN_FALSE;
        }
}*/
/* }}} */
[...]

Installieren Sie die Voraussetzungen zum Erstellen von PHP5 (in unserem Fall deckt dies auch die Voraussetzungen zum Erstellen von PHP4 ab):

apt-get build-dep php5

Konfigurieren und bauen Sie PHP 4.4.9 wie folgt (Sie können den Befehl ./configure Ihren Bedürfnissen anpassen, werfen Sie einen Blick auf

./configure --help

um alle verfügbaren Optionen zu sehen; Wenn Sie einen anderen ./configure-Befehl verwenden, werden möglicherweise zusätzliche Bibliotheken benötigt oder der Erstellungsprozess schlägt fehl):

./configure \
--prefix=/opt/phpfcgi-4.4.9 \
--with-pdo-pgsql \
--with-zlib-dir \
- -with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable- Kalender \
--mit-curl \
--mit-mcrypt \
--mit-zlib \
--mit-gd \
--mit- pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
-- enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
-- with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql=/usr \
--with-mysql-sock =/var/run/mysqld/mysqld.sock \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable- gd-native-ttf \
--with-openssl=/usr/local/openssl-0.9.8 \
--with-openssl-dir=/usr/local/openssl-0.9.8 \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--mit-Kerberos \
--mit- gettext \
--with-expat-dir=/usr \
--enable-fastcgi

Der letzte Schalter (--enable-fastcgi) stellt sicher, dass diese PHP-Version mit FastCGI funktioniert.

make
make install

Kopieren Sie php.ini an die richtige Stelle:

cp /usr/local/src/php4-build/php-4.4.9/php.ini-recommended /opt/phpfcgi-4.4.9/lib/php.ini

Das war's - wir werden jetzt das APC-Modul zu unserer PHP 4.4.9-Installation hinzufügen:

cd /tmp
wget http://pecl.php.net/get/APC-3.0.19.tgz
tar xvfz APC-3.0.19.tgz
cd APC-3.0.19
/opt/phpfcgi-4.4.9/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/opt/phpfcgi-4.4. 9/bin/php-config
make
make install

Öffnen Sie danach /opt/phpfcgi-4.4.9/lib/php.ini...

vi /opt/phpfcgi-4.4.9/lib/php.ini

... und setze extension_dir ="/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429" und füge die Zeile extension=apc.so am Ende der Datei hinzu (du kann auch einige zusätzliche APC-Einstellungen konfigurieren):

[...]
extension_dir = "/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429"
[...]
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=512
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5

In ISPConfig 3.0.5 können Sie die neue PHP-Version unter System> Zusätzliche PHP-Versionen konfigurieren. Auf der Registerkarte Name geben Sie einfach einen Namen für die PHP-Version ein (z. B. PHP 4.4.9) – unter diesem Namen wird diese PHP-Version in den Website-Einstellungen in ISPConfig aufgeführt:

Gehen Sie zur Registerkarte FastCGI-Einstellungen (die Registerkarte PHP-FPM-Einstellungen kann leer gelassen werden) und füllen Sie die Felder wie folgt aus:

Wenn alles wie erwartet funktioniert, können Sie nun PHP 4.4.9 für eine Website in ISPConfig auswählen. Sie können die PHP-Version einer Website überprüfen, indem Sie eine PHP-Datei mit phpinfo(); Funktion darin und Aufruf dieser Datei in Ihrem Browser:

  • PHP:http://www.php.net/
  • ISPConfig:http://www.ispconfig.org/
  • Ubuntu:http://www.ubuntu.com/

Über den Autor

Falko Timme ist der Inhaber von Timme Hosting (ultraschnelles Nginx-Webhosting). Er ist der Hauptbetreuer von HowtoForge (seit 2005) und einer der Kernentwickler von ISPConfig (seit 2000). Er hat auch zum O'Reilly-Buch "Linux System Administration" beigetragen.


Panels
  1. So bauen Sie PHP 5.6 (PHP-FPM &FastCGI) mit Zend OPcache und APCu für ISPConfig 3 auf Debian 7 (Wheezy)

  2. So richten Sie Opencart mit LAMP (PHP, Apache, Mariadb) unter Debian 11 ein

  3. Wie bringt man Apache dazu, Php 7.0 (nicht 7.1) zu verwenden?

  4. Erzwungene Werbung auf ISPConfig mit Debian Etch

  5. So verwenden Sie EasyApache 3 mit WHM/cPanel

Verwendung mehrerer PHP-Versionen (PHP-FPM &FastCGI) mit ISPConfig 3 (Ubuntu 13.04)

Verwendung mehrerer PHP-Versionen (PHP-FPM &FastCGI) mit ISPConfig 3 (Ubuntu 12.10)

So verwenden Sie mehrere PHP-Versionen (PHP-FPM und FastCGI) mit ISPConfig 3 (CentOS 6.3)

Verwendung mehrerer PHP-Versionen (PHP-FPM &FastCGI) mit ISPConfig 3 (Ubuntu 12.04 LTS)

So erstellen Sie PHP 5.5 (PHP-FPM &FastCGI) mit ionCube Loader, Zend OPcache und APCu für ISPConfig 3 (Debian Wheezy)

Verwendung mehrerer PHP-Versionen (PHP-FPM &FastCGI) mit ISPConfig 3 (Debian Wheezy)