LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Desde ISPConfig 3.0.5, es posible utilizar varias versiones de PHP en un servidor y seleccionar la versión de PHP óptimo para un sitio web. Esta característica funciona con PHP-FPM (a partir de PHP 5.3) y FastCGI (todas las versiones de PHP 5.x). En este tutorial se muestra cómo crear PHP 5.3 y PHP 5.4 como PHP-FPM y una versión FastCGI en un servidor Ubuntu/Debian. Estas versiones de PHP se pueden utilizar junto con el PHP por defecto (instalado con apt) en ISPConfig.
1 Nota preliminar
Voy a instalar PHP 5.3.22 y PHP 5.4.12, las últimas versiones de PHP 5.3 y 5.4 respectivamente en el momento de escribir este artículo. También voy a mostrar cómo construir algunas extensiones PHP adicionales, tales como APC, memcache, memcached e ioncube.
Tenga en cuenta que PHP-FPM se puede utilizar tanto en servidores Apache como Nginx, mientras FastCGI sólo está disponible para servidores Apache.
PHP-FPM y FastCGI se excluyen mutuamente en PHP 5.3 y 5.4, por eso os muestro dos formas de construir PHP, uno para PHP-FPM, y otro para FastCGI, sin embargo, debe compilar PHP dos veces para ambos, una vez con --enable-fpm y una vez con --enable-cgi (asegúrese de usar diferentes directorios base, como por ejemplo /opt/php-5.3.22 para PHP-FPM y /opt/phpfcgi-5.3.22 para FastCGI).
2 Crear PHP 5.3.22 (PHP-FPM)
Descargar y extraer PHP 5.3.22:
mkdir /opt/php-5.3.22
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.3.22.tar.bz2/from/this/mirror -O php-5.3.22.tar.bz2
tar jxf php-5.3.22.tar.bz2
cd php-5.3.22/
Instalar los requisitos previos para la construcción de PHP5:
apt-get install build-essential
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
(El último comando se necesita si construyes PHP con --with-imap, porque de otra forma ./configure se detendrá con el siguiente error:
checking for crypt in -lcrypt... yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
root@server1:/usr/local/src/php5-build/php-5.3.22#
)
Configurar y compilar PHP 5.3.22 como sigue (se puede ajustar el comando ./configure para sus necesidades, eche un vistazo a
./configure --help
para ver todas las opciones disponibles, y si se utiliza un ./configure diferente, es posible que se necesiten bibliotecas adicionales, o el proceso de construcción producirá un error):
Para instalarlas, bastará escribir yum install nombre-biblioteca, por ejemplo... yum install pgsql
./configure \
--prefix=/opt/php-5.3.22 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--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 \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-fpm
La última opción (--enable-fpm) se asegura de que esta versión PHP funciona con PHP-FPM. Si desea utilizar esta versión de PHP-FPM con Apache , utilice --with-fpm-user=apache y --with-fpm-group=apache; si desea utilizar esta versión de PHP-FPM con nginx , por favor, utilice --with-fpm-user=nginx y --with-fpm-group=nginx.
make
make install
Copia php.ini y php-fpm.conf a las ubicaciones correctas:
cp /usr/local/src/php5-build/php-5.3.22/php.ini-production /opt/php-5.3.22/lib/php.ini
cp /opt/php-5.3.22/etc/php-fpm.conf.default /opt/php-5.3.22/etc/php-fpm.conf
Debe abrir /opt/php-5.3.22/etc/php-fpm.conf y ajustar las siguientes configuraciones - en la línea listen debe utilizar un puerto no utilizado (por ejemplo, 8999, ya que el puerto 9000 puede estar en uso por defecto en Ubuntu PHP-FPM), y debe agregar la línea include=/opt/php-5.3.22/etc/pool.d/*.conf al final.
vi /opt/php-5.3.22/etc/php-fpm.conf
[...] pid = run/php-fpm.pid [...] user = www-data group = www-data [...] listen = 127.0.0.1:8999 [...] include=/opt/php-5.3.22/etc/pool.d/*.conf |
Cree el directorio pool de PHP-FPM:
mkdir /opt/php-5.3.22/etc/pool.d
A continuación, cree un script de inicio de PHP-FPM:
vi / etc/init.d/php-5.3.22-fpm
#! /bin/sh ### BEGIN INIT INFO # Provides: php-5.3.22-fpm # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts php-5.3.22-fpm # Description: starts the PHP FastCGI Process Manager daemon ### END INIT INFO php_fpm_BIN=/opt/php-5.3.22/sbin/php-fpm php_fpm_CONF=/opt/php-5.3.22/etc/php-fpm.conf php_fpm_PID=/opt/php-5.3.22/var/run/php-fpm.pid php_opts="--fpm-config $php_fpm_CONF" wait_for_pid () { try=0 while test $try -lt 35 ; do case "$1" in 'created') if [ -f "$2" ] ; then try='' break fi ;; 'removed') if [ ! -f "$2" ] ; then try='' break fi ;; esac echo -n . try=`expr $try + 1` sleep 1 done } case "$1" in start) echo -n "Starting php-fpm " $php_fpm_BIN $php_opts if [ "$?" != 0 ] ; then echo " failed" exit 1 fi wait_for_pid created $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Gracefully shutting down php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -QUIT `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed. Use force-exit" exit 1 else echo " done" echo " done" fi ;; force-quit) echo -n "Terminating php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -TERM `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) $0 stop $0 start ;; reload) echo -n "Reload service php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -USR2 `cat $php_fpm_PID` echo " done" ;; *) echo "Usage: $0 {start|stop|force-quit|restart|reload}" exit 1 ;; esac |
Haga el script ejecutable y debe crear los enlaces de inicio del sistema:
chmod 755 /etc/init.d/php-5.3.22-fpm
chkconfig --levels 235 php-5.3.22-fpm on
Finalmente comenzará PHP-FPM:
/etc/init.d/php-5.3.22-fpm start
Siempre y cuando no haya pools en /opt/php-5.3.22/etc/pool.d, recibirá esta advertencia, que puede pasar por alto:
root@server1:/usr/local/src/php5-build/php-5.3.22# /etc/init.d/php-5.3.22-fpm start
Starting php-fpm [04-Mar-2013 14:58:41] WARNING: Nothing matches the include pattern '/opt/php-5.3.22/etc/pool.d/*.conf' from /opt/php-5.3.22/etc/php-fpm.conf at line 512.
done
root@server1:/usr/local/src/php5-build/php-5.3.22#
Eso es todo - si lo desea, ahora puede instalar algunos módulos adicionales como APC, memcache, memcached e ionCube.
La APC, memcache y módulos memcached se pueden instalar a través de PEAR que hay que instalar e inicializar primero:
apt-get -y install php-pear
cd /opt/php-5.3.22/etc
pecl -C ./pear.conf update-channels
APC ahora se puede instalar de la siguiente manera:
pecl -C ./pear.conf install apc
Acepte todos los valores predeterminados. Después, abra/opt/php-5.3.22/lib/php.ini ...
vi /opt/php-5.3.22/lib/php.ini
... y agregue la línea extension=apc.so al final del archivo (también se puede configurar algunas opciones adicionales APC):
[...] extension=apc.so apc.enabled=1 apc.shm_size=128M 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 |
La extensión memcache se puede instalar de la siguiente manera:
pecl -C ./pear.conf install memcache
Abrir /opt/php-5.3.22/lib/php.ini...
vi /opt/php-5.3.22/lib/php.ini
... y agregue la línea extension = memcache.so al final del archivo:
[...] extension = memcache.so |
La extensión memcached se puede instalar de la siguiente manera:
apt-get install libmemcached-dev
ln -s /usr/include/libmemcached /usr/include/libmemcached-1.0
pecl -C ./pear.conf install memcached
Abrir /opt/php-5.3.22/lib/php.ini ...
vi /opt/php-5.3.22/lib/php.ini
... y agregue la línea extension = memcached.so al final del archivo:
[...] extension = memcached.so |
El cargador ionCube se puede instalar de la siguiente manera:
cd /tmp
Lo siguiente es descargar y descomprimir el paquete de cargador ionCube correcto para su arquitectura (x86 o x86_64).
Para x86_64:
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz
Para x86:
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz
Proceda de la siguiente manera:
cp ioncube/ioncube_loader_lin_5.3.so /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so
vi /opt/php-5.3.22/lib/php.ini
Agregue la línea zend_extension = /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so justo al principio del archivo (antes de la línea [PHP]):
zend_extension = /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so [PHP] [...] |
Actualizar PHP-FPM después:
/etc/init.d/php-5.3.22-fpm reload
En ISPConfig 3.0.5, puede configurar la nueva versión PHP bajo Sistema> Otras versiones de PHP . En la fichaNombre de, por favor introduzca un nombre para la versión de PHP (por ejemploPHP 5.3.22 ) - esta versión PHP aparecerá con este nombre en la configuración del sitio web en ISPConfig:
Ir a lapestaña configuración de PHP-FPM (la pestaña configuración FastCGI se puede dejar vacía) y rellene los campos de la siguiente manera:
[ < Anterior ] || [ Siguiente > ]

-
Debian
- Ejecutar Feng Office en Nginx (LEMP) en Debian Squeeze/Ubuntu 11.10
- MX Linux: la mejor distro Linux para nuevos usuarios, basada en Debian para principiantes de Linux
- Montar directorios remotos con SSHFS en Linux
- UEFI Secure Boot será eliminado a partir de Debian 9 'Stretch'
- Debian elimina el soporte para procesadores Pentium de la arquitectura i386
- Fundador de Debian, Ian Murdock fallece a los 42 años.
- Equivalencias entre DEB y RPM, y también APT y YUM para Linux
- Debian 7.0 Wheezy publicado
- Servidor Web, correo electrónico, cluster de base de datos MySQL (espejo)
- Instalando OpenLDAP con soporte SSL en debian
- Cómo tener varias versiones de PHP (PHP-FPM y FastCGI) Con ISPConfig 3 en Ubuntu / Debian Linux (4 de 4)
- Instalar la solución de gestión de exámenes en línea Kaldin En Debian 7 (Wheezy)
- Balanceo de Carga Round Robin o DNS
- Cómo tener varias versiones de PHP (PHP-FPM y FastCGI) Con ISPConfig 3 en Ubuntu / Debian Linux (2 de 4)
- Cómo tener varias versiones de PHP (PHP-FPM y FastCGI) Con ISPConfig 3 en Ubuntu / Debian Linux (1 de 4)