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