Article ID: 114753, created on Mar 14, 2014, last review on May 11, 2014

  • Applies to:
  • Plesk 11.0 for Linux

Aplicación de la corrección

Desde la versión 11.5, Parallels Plesk Panel para Linux soporta la ejecución de múltiples versiones de PHP en el servidor − Consulte las notas de la versión (EN). Si desea examinar los pasos a seguir para instalar y configurar PHP en Parallels Panel 11.5, consulte la Guía del administrador de Parallels Plesk Panel (EN). 

Resolución

NOTA: las instrucciones indicadas en este artículo sólo son válidas para Parallels Panel 11.0.9. En el caso de Parallels Panel 11.5, consulte la guía mencionada anteriormente.

Para aplicar esta solución es necesario ejecutar PHP como fastcgi.

  1. Acceda a su servidor Parallels Panel como root mediante SSH. A continuación, descargue el origen PHP, descomprímalo y configúrelo:

    # cd /usr/local/src
    # mkdir php540
    # cd php540
    # wget http://www.php.net/get/php-5.4.0.tar.gz/from/at2.php.net/mirror
    # tar xzvf php-5.4.0.tar.gz
    # cd php-5.4.0
    

    Nota: ES NECESARIO UTILIZAR EL PREFIJO SWITCH para instalar su nuevo PHP en un único directorio. Por ejemplo:

    # ./configure '--with-libdir=lib64' '--cache-file=../config.cache' '--prefix=/usr/local/php540-cgi' '--with-config-file-path=/usr/local/php540-cgi/etc' '--disable-debug' '--with-pic' '--disable-rpath' '--enable-fastcgi' '--with-bz2' '--with-curl' '--with-freetype-dir=/usr/local/php540-cgi' '--with-png-dir=/usr/local/php540-cgi' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr/local/php540-cgi' '--with-openssl' '--with-pspell' '--with-pcre-regex' '--with-zlib' '--enable-exif' '--enable-ftp' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-wddx' '--with-kerberos' '--with-unixODBC=/usr' '--enable-shmop' '--enable-calendar' '--without-sqlite3' '--with-libxml-dir=/usr/local/php540-cgi' '--enable-pcntl' '--with-imap' '--with-imap-ssl' '--enable-mbstring' '--enable-mbregex' '--with-gd' '--enable-bcmath' '--with-xmlrpc' '--with-ldap' '--with-ldap-sasl' '--with-mysql=/usr' '--with-mysqli' '--with-snmp' '--enable-soap' '--with-xsl' '--enable-xmlreader' '--enable-xmlwriter' '--enable-pdo' '--with-pdo-mysql' '--with-pdo-pgsql' '--with-pear=/usr/local/php540-cgi/pear' '--with-mcrypt' '--enable-intl' '--without-pdo-sqlite' '--with-config-file-scan-dir=/usr/local/php540-cgi/php.d'
    

    Tal y como puede ver, el prefijo es el siguiente: /usr/local/php540-cgi/

    Es imprescindible seleccionar un prefijo, puesto que este impide que la nueva instalación de PHP interfiera con la versión anterior de PHP usada por Parallels Panel.

  2. Compile su PHP:

    # make
    
  3. Instale su nuevo PHP:

    # make install
    
  4. Cree un wrapper PHP. Por ejemplo, supongamos que tiene un cliente, domain.com, que utiliza algunas de las nuevas funciones de PHP que no existen en el PHP 5.1 predeterminado. Llamaremos a nuestro cliente domain.com y diremos a Apache que utilice nuestra nueva versión de PHP (5.4.0) para el mismo:

    # cd /var/www/vhosts/domain.com/cgi-bin
    # mkdir .cgi_wrapper
    # cd .cgi_wrapper
    

    Cree un archivo nuevo, .phpwrapper, con el siguiente contenido:

    #!/bin/sh
    export PHPRC=/var/www/vhosts/domain.com/etc/
    export PHP_FCGI_CHILDREN=4
    export PHP_FCGI_MAX_REQUESTS=1000
    exec /usr/local/php540-cgi/bin/php-cgi
    

    Defina los permisos y los privilegios necesarios para los archivos y directorios creados:

    # chgrp psaserv /var/www/vhosts/domain.com/cgi-bin
    # cd /var/www/vhosts/domain.com/cgi-bin
    # chmod 101 .cgi_wrapper
    # chmod 500 .cgi_wrapper/.phpwrapper
    # chown domain.com:psacln .cgi_wrapper -R
    # chattr -R +i .cgi_wrapper
    
  5. Haga que Apache conozca la existencia de nuestro nuevo wrapper PHP. Parallels Panel permite cambiar la configuración de httpd de forma individualizada para cada host. Utilizaremos esta opción decir a Apache que domain.com debe usar el nuevo wrapper PHP en vez de usar el proporcionado por Parallels Panel:

    # cd /var/www/vhosts/domain.com/conf
    

    Cree un archivo vhost.conf con el siguiente contenido:

    <Directory /var/www/vhosts/domain.com/httpdocs>
    RemoveHandler fcgid-script
    <IfModule mod_fcgid.c>
        AddHandler fcgid-script .php
        <Files ~ (\.php)>
            SetHandler fcgid-script
            FCGIWrapper /var/www/vhosts/domain.com/cgi-bin/.cgi_wrapper/.phpwrapper .php
            Options +ExecCGI
            allow from all
        </Files>
    </IfModule>
    </Directory>
    

    Así, hemos dicho a Apache que no utilice el wrapper PHP predeterminado de Parallels Panel (RemoveHandler fcgid-script) y, en su lugar, hemos creado un nuevo controlador para los archivos PHP. Cuando se ejecuten archivos PHP en el dominio "domain.com", Apache llamará al nuevo wrapper PHP y usará el nuevo PHP que instalamos en los pasos 1-3.

  6. Vuelva a configurar el dominio "domain.com":

    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-domain domain.com
    
  7. Reinicie Apache:

    # /etc/init.d/httpd restart
    

    Puede realizar los pasos 4, 5, 6 y 7 (reemplazando "domain.com" por el nombre de dominio de su cliente) para cada dominio que necesite funciones adicionales proporcionadas únicamente por versiones de PHP más recientes a la proporcionada por Parallels Panel.

56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 aea4cd7bfd353ad7a1341a257ad4724a 0a53c5a9ca65a74d37ef5c5eaeb55d7f

Email subscription for changes to this article
Save as PDF