En aquest article us ensenyarem com tenir diverses versions de PHP i poder gestionar-les des de VestaCP; per fer-ho necessitarem PHPBrew. PHPBrew permet compilar diferents versions de PHP que fins i tot podeu desar a la vostra carpeta HOME. Aquest tutorial serveix per a VestaCP amb Ubuntu 16.
ACTUALITZACIONS
ACTUALITZACIÓ [09/01/2018]: Pel que sembla, PHPBrew va fer canvis importants que fan que el tutorial deixi de funcionar parcialment, per això ens hem vist obligats a actualitzar-lo fent-hi canvis importants.
ACTUALITZACIÓ [09/21/2020]: Aquest tutorial pot estar una mica desfasat, per la qual cosa, si necessiteu diverses versions de PHP, recomanem la instal·lació de HestiaCP.
Instal·lar dependències
El primer pas és instal·lar totes les dependències necessàries perquè PHPBrew funcioni correctament:
# apt-get install build-essential libssl-dev libxml2-dev pkg-config libssl-dev libsslcommon2-dev libbz2-dev libcurl4-openssl-dev libmysqlclient-dev libgdbm-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev libxml2 libxml2-dev libmcrypt4 libmcrypt-dev libmhash2 libmhash-dev libmm-dev libmm14 libtidy-dev libtidy-0.99-0 libxslt1-dev libxslt1.1 libfreetype6 libfreetype6-dev libicu-dev libreadline-dev lcov libzip-devCreem els enllaços següents:
# cd /usr/local/include
# ln -s /usr/include/x86_64-linux-gnu/curl curl
# cd /usr/include
# ln -s x86_64-linux-gnu/curl
# apt-get install libcurl4-gnutls-dev libzip-devInstal·lar i configurar PHPBrew
Per instal·lar PHPBrew en totes dues versions de Ubuntu cal fer-ho de la manera següent:
# curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
# chmod +x phpbrew
# mv phpbrew /usr/bin/phpbrew
# mkdir -p /usr/local/phpDesprés editarem ~/.bashrc i afegirem el següent al final de tot:
# nano ~/.bashrcphpbrew init --root=/usr/local/php
export PHPBREW_ROOT=/usr/local/php
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrcPodem veure quines versions de PHP podem instal·lar amb aquestes ordres:
# phpbrew update
# phpbrew update --oldCompilar PHP en les diferents versions
No esteu obligats a compilar totes les versions de PHP, podeu compilar les que hàgiu d'utilitzar.
-Per a PHP 5.3 executeu:
# phpbrew install 5.3 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 5.4 executeu:
# phpbrew install 5.4 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 5.5 executeu:
# phpbrew install 5.5 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 5.6 executeu:
# phpbrew install 5.6 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 7.0 executeu:
# phpbrew install 7.0 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 7.1 executeu:
# phpbrew install 7.1 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 7.2 executeu:
# phpbrew install 7.2 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddx-Per a PHP 7.3 executeu:
# phpbrew install 7.3 +default +iconv +exif +ftp +mysql +gd +intl +zlib +cgi +dba +wddxInstal·lar extensions addicionals
Per a les versions de PHP superiors a 7.x, l'extensió d'OpenSSL, per exemple, no està instal·lada per defecte. Per això l'haurem d'instal·lar manualment (així com qualsevol altra extensió que necessitem). Per instal·lar una extensió amb PHPBrew cal seguir els passos següents:
Visualitzem les versions que tenim:
# phpbrew listSeleccionem la versió de PHP en què volem instal·lar l'extensió:
# phpbrew use php-5.6.xxAra instal·lem l'extensió necessària; en aquest cas, i a tall d'exemple, instal·larem OpenSSL:
# phpbrew ext install opensslCrear enllaços simbòlics
Crearem els enllaços de les versions de PHP que hàgim compilat perquè puguem executar les diferents versions de PHP des de les plantilles de VestaCP:
# ln -s /usr/local/php/php/php-X.X.XX /usr/local/php/phpXXATENCIÓ: Si s'actualitza la versió de PHP, és possible que l'enllaç canviï en els dos últims números de la versió; per això aquests enllaços s'han de crear manualment. Tot i així, us deixem els enllaços que calia crear quan es va escriure aquest article.
-Per a PHP 5.3 executeu:
# ln -s /usr/local/php/php/php-5.3.29 /usr/local/php/php53-Per a PHP 5.4 executeu:
# ln -s /usr/local/php/php/php-5.4.45 /usr/local/php/php54-Per a PHP 5.5 executeu:
# ln -s /usr/local/php/php/php-5.5.38 /usr/local/php/php55-Per a PHP 5.6 executeu:
# ln -s /usr/local/php/php/php-5.6.31 /usr/local/php/php56-Per a PHP 7.0 executeu:
# ln -s /usr/local/php/php/php-7.0.14 /usr/local/php/php70-Per a PHP 7.1 executeu:
# ln -s /usr/local/php/php/php-7.1.6 /usr/local/php/php71-Per a PHP 7.2 executeu:
# ln -s /usr/local/php/php/php-7.2.10 /usr/local/php/php72-Per a PHP 7.3 executeu:
# ln -s /usr/local/php/php/php-7.3.33 /usr/local/php/php73Finalment activem els mòduls d'Apache necessaris:
# a2enmod actions cgi
# service apache2 restartCreació de plantilles per a VestaCP
Com en el pas anterior, només executarem les ordres per a les versions de PHP que hàgim compilat. Si heu instal·lat totes les versions, podeu executar el codi següent, que executa un script en bash que crea totes les plantilles automàticament; si no, executeu les línies de les versions que hàgiu instal·lat:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/instalar_plantillas.shLi donem permisos i l'executem:
# chmod u+x instalar_plantillas.sh
# ./instalar_plantillas.shSi heu instal·lat alguna versió de PHP en concret, executeu les ordres per a aquesta versió:
-Per a PHP 5.3 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php53.sh -O /usr/local/vesta/data/templates/web/apache2/php53.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php53.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php53.stpl-Per a PHP 5.4 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php54.sh -O /usr/local/vesta/data/templates/web/apache2/php54.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php54.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php54.stpl-Per a PHP 5.5 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php55.sh -O /usr/local/vesta/data/templates/web/apache2/php55.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php55.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php55.stpl-Per a PHP 5.6 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php56.sh -O /usr/local/vesta/data/templates/web/apache2/php56.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php56.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php56.stpl-Per a PHP 7.0 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php70.sh -O /usr/local/vesta/data/templates/web/apache2/php70.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php70.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php70.stpl-Per a PHP 7.1 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php71.sh -O /usr/local/vesta/data/templates/web/apache2/php71.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php71.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php71.stpl-Per a PHP 7.2 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php72.sh -O /usr/local/vesta/data/templates/web/apache2/php72.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php72.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php72.stpl-Per a PHP 7.3 executeu:
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php73.sh -O /usr/local/vesta/data/templates/web/apache2/php73.sh
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.tpl -O /usr/local/vesta/data/templates/web/apache2/php73.tpl
# wget https://gitlab.com/clouding.io-tech.support/vestacp-multiphp/raw/master/php.stpl -O /usr/local/vesta/data/templates/web/apache2/php73.stplAra hem d'actualitzar els permisos de les plantilles:
# chmod 755 /usr/local/vesta/data/templates/web/apache2/*Quan anem al nostre panell VestaCP ja podrem triar quina versió de PHP volem:
Basat en https://git.scit.ch/rs/VestaCP-MultiPHP