GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo usar PHP 4.4.9 (FastCGI) con Apache e ISPConfig 3 (Debian Wheezy)

Cómo usar PHP 4.4.9 (FastCGI) con Apache e ISPConfig 3 (Debian Wheezy)

Desde ISPConfig 3.0.5, es posible utilizar varias versiones de PHP en un servidor y seleccionar la versión de PHP óptima para un sitio web. Si tiene algunos sitios web muy antiguos en su servidor, es posible que no funcionen con PHP5, sino solo con PHP4. Este tutorial muestra cómo compilar PHP 4.4.9 como una versión FastCGI para usar con Apache2 en un servidor Debian Wheezy. Esta versión de PHP se puede usar junto con el PHP predeterminado (instalado a través de apt) en ISPConfig.

¡No emito ninguna garantía de que esto funcione para usted!

1 nota preliminar

PHP-FPM no está disponible para PHP4, por lo que solo describo cómo construir una versión FastCGI de PHP4. FastCGI está disponible solo para servidores Apache, por lo tanto, no puede usarlo con nginx.

2 Construyendo PHP 4.4.9 (FastCGI)

Instale los requisitos previos para compilar desde el código fuente:

apt-get install build-essential

PHP 4.4.9 no se compilará con las versiones modernas de OpenSSL, por lo tanto, primero debemos instalar una versión anterior de 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
hacer
hacer instalación

Descarga y extrae 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/

Cree algunos enlaces simbólicos necesarios:

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

A continuación, debemos deshabilitar las funciones mysql_drop_db y mysql_create_db porque, de lo contrario, obtendrá estos errores cuando intente compilar PHP 4.4.9:

error:referencia indefinida a 'mysql_drop_db'
error:referencia indefinida a 'mysql_create_db'

Abra /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

... y vaya a la línea 1131. A partir de ahí, comente ambas funciones:

Instale los requisitos previos para compilar PHP5 (en nuestro caso, esto también cubre los requisitos previos para compilar PHP4):

apt-get build-dep php5

Configure y cree PHP 4.4.9 de la siguiente manera (puede ajustar el comando ./configure según sus necesidades, eche un vistazo a

./configure --help

para ver todas las opciones disponibles; si usa un comando ./configure diferente, es posible que se requieran bibliotecas adicionales o que el proceso de compilación falle):

./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- calendario \
--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 \
--con-libdir=/lib/x86_64-linux-gnu \
--habilitar-ftp \
--con-imap \
--con-imap-ssl \
--con-kerberos \
--con- gettext \
--with-expat-dir=/usr \
--enable-fastcgi

El último cambio (--enable-fastcgi) asegura que esta versión de PHP funcionará con FastCGI.

hacer
hacer instalar

Copie php.ini en la ubicación correcta:

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

Eso es todo:ahora agregaremos el módulo APC a nuestra instalación de 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
hacer
hacer instalación

Luego, abra /opt/phpfcgi-4.4.9/lib/php.ini...

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

... y configure extension_dir ="/opt/phpfcgi-4.4.9/lib/php/extensions/no-debug-non-zts-20020429" y agregue la línea extension=apc.so al final del archivo (usted también puede configurar algunos ajustes de APC adicionales):

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

En ISPConfig 3.0.5, puede configurar la nueva versión de PHP en Sistema> Versiones adicionales de PHP. En la pestaña Nombre, simplemente ingrese un nombre para la versión de PHP (por ejemplo, PHP 4.4.9); esta versión de PHP aparecerá con este nombre en la configuración del sitio web en ISPConfig:

Vaya a la pestaña Configuración de FastCGI (la pestaña Configuración de PHP-FPM se puede dejar vacía) y complete los campos de la siguiente manera:

Si todo funciona como se esperaba, ahora puede elegir PHP 4.4.9 para un sitio web en ISPConfig. Puede comprobar la versión de PHP de un sitio web creando un archivo PHP con phpinfo(); función en él y llamando a ese archivo en su navegador:

3 Enlaces

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

Sobre el autor

Falko Timme es el propietario de Timme Hosting (alojamiento web nginx ultrarrápido). Es el mantenedor principal de HowtoForge (desde 2005) y uno de los principales desarrolladores de ISPConfig (desde 2000). También ha contribuido al libro de O'Reilly "Administración del sistema Linux".


Panels
  1. Cómo compilar PHP 5.6 (PHP-FPM y FastCGI) con Zend OPcache y APCu para ISPConfig 3 en Debian 7 (Wheezy)

  2. Cómo configurar Opencart con LAMP (PHP, Apache, Mariadb) en Debian 11

  3. ¿Cómo hacer que Apache use Php 7.0 (no 7.1)?

  4. Anuncios forzados en ISPConfig con Debian Etch

  5. Cómo usar EasyApache 3 con WHM/cPanel

Cómo usar varias versiones de PHP (PHP-FPM y FastCGI) con ISPConfig 3 (Ubuntu 13.04)

Cómo usar varias versiones de PHP (PHP-FPM y FastCGI) con ISPConfig 3 (Ubuntu 12.10)

Cómo usar varias versiones de PHP (PHP-FPM y FastCGI) con ISPConfig 3 (CentOS 6.3)

Cómo usar varias versiones de PHP (PHP-FPM y FastCGI) con ISPConfig 3 (Ubuntu 12.04 LTS)

Cómo compilar PHP 5.5 (PHP-FPM y FastCGI) con ionCube Loader, Zend OPcache y APCu para ISPConfig 3 (Debian Wheezy)

Cómo usar varias versiones de PHP (PHP-FPM y FastCGI) con ISPConfig 3 (Debian Wheezy)

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