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 CentOS 6.3. Estas versiones de PHP se pueden utilizar junto con el PHP por defecto (instalado con yum) 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:
yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel
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=nginx \
--with-fpm-group=nginx \
--with-libdir=lib64 \
--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 CentOS PHP-FPM), y debe agregar la línea include=/opt/php-5.3.22/etc/pool.d/*.conf al final. Si desea utilizar esta versión de PHP-FPM con Apache , utilice user = apache y group = apache, si desea utilizar esta versión de PHP-FPM con nginx , por favor, utilice user = nginx y group = nginx .
vi /opt/php-5.3.22/etc/php-fpm.conf
[...] pid = run/php-fpm.pid [...] user = nginx group = nginx [...] 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 php-5.3.22]# /etc/init.d/php-5.3.22-fpm start
Starting php-fpm [05-Mar-2013 17:34:54] 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 511.
done
[root@server1 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:
yum 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:
yum install libmemcached-devel
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:
[ Siguiente > ] || [ < Anterior ]

-
CloudComputing
- Cómo instalar CloudPanel en Debian 10 Buster
- Las 7 mejores aplicaciones para instalar en Nextcloud
- Cómo instalar ONLYOFFICE en cualquier distro Linux: una suite ofimática completa basada en la web para aumentar la eficiencia de su equipo
- Coautor de documentos en Linux con ONLYOFFICE Docs
- Cómo instalar ONLYOFFICE Docs en Debian y Ubuntu
- Qué se puede hacer con la Nube de ExtreHost
- Usando ownCloud para integrar Dropbox, Google Drive y más en Linux
- ¿Por qué debería utilizar microservicios y contenedores?
- ¿Qué es y qué significa CI / CD?
- Cómo instalar el servidor de respaldo remoto rsnapshot en Red Hat / CentOS Linux
- La UE quiere pisar nuestros derechos y cobrar por usar Dropbox y WeTransfer
- Open365: tu suite de ofimática libre en la nube
- Servidores caseros: para qué sirven y qué pueden hacer por ti
- Almacenamiento distribuido a través de 4 nodos con Gluster FS en Linux CentOS (1 de 2)
- Cómo instalar OwnCloud en Linux (Ubuntu, Debian, RedHat, Fedora, CentOS)