GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak používat PHP 4.4.9 (FastCGI) s Apache a ISPConfig 3 (Debian Wheezy)

Jak používat PHP 4.4.9 (FastCGI) s Apache a ISPConfig 3 (Debian Wheezy)

Od ISPConfig 3.0.5 je možné používat více verzí PHP na jednom serveru a vybrat optimální verzi PHP pro web. Pokud máte na svém serveru nějaké velmi staré webové stránky, nemusí fungovat s PHP5, ale pouze s PHP4. Tento tutoriál ukazuje, jak sestavit PHP 4.4.9 jako FastCGI verzi pro použití s ​​Apache2 na serveru Debian Wheezy. Tuto verzi PHP lze použít společně s výchozím PHP (instalovaným přes apt) v ISPConfig.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

PHP-FPM není k dispozici pro PHP4, proto pouze popisuji, jak vytvořit FastCGI verzi PHP4. FastCGI je k dispozici pouze pro servery Apache, proto jej nelze použít s nginx..

2 Vytváření PHP 4.4.9 (FastCGI)

Nainstalujte předpoklady pro sestavení ze zdrojového kódu:

apt-get install build-essential

PHP 4.4.9 nelze zkompilovat s moderními verzemi OpenSSL, proto musíme nejprve nainstalovat starší verzi OpenSSL (0.9.8x):

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
provést
provést instalaci

Stáhněte a rozbalte PHP 4.4.9:

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/

Vytvořte několik nezbytných symbolických odkazů:

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

Dále musíme zakázat funkce mysql_drop_db a mysql_create_db, protože jinak se při pokusu o sestavení PHP 4.4.9 objeví tyto chyby:

chyba:nedefinovaný odkaz na 'mysql_drop_db'
chyba:nedefinovaný odkaz na 'mysql_create_db'

Otevřete /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

... a přejděte na řádek 1131. Odtud zakomentujte obě funkce:

[...]
/*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;
        }
}*/
/* }}} */
[...]

Nainstalujte si předpoklady pro sestavení PHP5 (v našem případě to také pokrývá předpoklady pro sestavení PHP4):

apt-get build-dep php5

Nakonfigurujte a sestavte PHP 4.4.9 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./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- kalendář \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with- 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 \
--with-kerberos \
--with- gettext \
--with-expat-dir=/usr \
--enable-fastcgi

Poslední přepínač (--enable-fastcgi) zajišťuje, že tato verze PHP bude fungovat s FastCGI.

make
make install

Zkopírujte php.ini do správného umístění:

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

To je vše - nyní přidáme modul APC do naší instalace PHP 4.4.9:

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
provést
provést instalaci

Poté otevřete /opt/phpfcgi-4.4.9/lib/php.ini...

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

... a nastavte extension_dir ="/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429" a přidejte řádek extension=apc.so na konec souboru (vy můžete také nakonfigurovat některá další nastavení APC):

[...]
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

V ISPConfig 3.0.5 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 4.4.9) - tato verze PHP bude uvedena pod tímto názvem v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení FastCGI (záložka Nastavení PHP-FPM může zůstat prázdná) a vyplňte pole následovně:

Pokud vše funguje podle očekávání, můžete si nyní pro web v ISPConfig vybrat PHP 4.4.9. Verzi webu v PHP můžete zkontrolovat vytvořením souboru PHP pomocí phpinfo(); funkce v něm a volání tohoto souboru ve vašem prohlížeči:

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

O autorovi

Falko Timme je vlastníkem Timme Hosting (ultrarychlý webhosting nginx). Je hlavním správcem HowtoForge (od roku 2005) a jedním z hlavních vývojářů ISPConfig (od roku 2000). Přispěl také do O'Reillyho knihy "Linux System Administration".


Panels
  1. Jak vytvořit PHP 5.6 (PHP-FPM &FastCGI) pomocí Zend OPcache a APCu pro ISPConfig 3 na Debianu 7 (Wheezy)

  2. Jak nastavit Opencart pomocí LAMP (PHP, Apache, Mariadb) na Debianu 11

  3. Jak používat EasyApache 3 s WHM/cPanel

  1. Jak nainstalovat PHP 7 (PHP-FPM &FastCGI) pro ISPConfig 3 na Debian 8 (Jessie)

  2. Jak přimět Apache, aby používal PHP 7.0 (ne 7.1)?

  3. Vynucené reklamy na ISPConfig s Debian Etch

  1. Jak nainstalovat PHP 7 jako PHP-FPM &FastCGI pro ISPConfig 3 na Debian 8 (Jessie)

  2. Jak nainstalovat PHP 7.1.16 jako PHP-FPM &FastCGI pro ISPConfig 3.1 na Debian 8 (Jessie)

  3. Jak nainstalovat PHP 7.1, 7.2 a 5.6 jako PHP-FPM &FastCGI pro ISPConfig 3 na Debian 9