Donde guardo mis ideas

Carlos Coronado Maleno

  • RSS
  • Facebook
  • Twitter
  • Linkdin
  • AboutMe
  • Google plus

Actualizar y compilar PHP desde los fuentes

Por: Carlos Coronado 6 - agosto - 2017 Ningún Comentario

En este ejemplo explicaré como actualizar PHP 7.0 a 7.1 (también sirve para PHP 5.6).

Para ello primero necesitaremos satisfacer las dependencias.

NOTA: Yo lo explicaré para instalarlo todo dentro de /opt, así podremos probar nuestro proyecto con la nueva versión de PHP sin tener que modificar la configuración real del equipo. Y si todo va bien, veremos de dejarlo permanente.

 

1. Preparación y dependencias

Creamos una carpeta donde estarán todos los programas necesarios e instalamos en el equipo lo necesario para poder compilar.

$ mkdir /opt/php
$ apt-get install build-essentials

El orden de las dependencias son:

  • PHP depende de Apache para generar el archivo php_module
  • Apache depende de APR y APR-Util (la primera se descarga y se extráe y la segunda hay que compilarla).

Podemos descargarlas todas desde:

PHP: http://php.net/downloads.php
Apache: http://httpd.apache.org/docs/2.4/install.html#download
APR: http://apr.apache.org/
APR-UTILS: https://apr.apache.org/download.cgi

Una vez descargadas y extraídas en sus carpetas, movemos los paquetes APR y APR-Util a: /opt/php/httpd-2.4.27/srclib/

A continuación compilamos el programa APR-Util

$ cd /opt/php/httpd-2.4.27/srclib/apr-util-xxxx
$ ./configure --prefix=/opt/php/httpd-2.4.27/srclib/apr-util
$ make && make install

Con esto ya tenemos las dependencias de Apache satisfechas. Vamos a compilarlo.

$ cd/opt/php/httpd-2.4.27
$ ./configure --prefix=/opt/php/apache --enable-so --with-pcre=/opt/php/httpd-2.4.27/srclib/apr-util/build/bin/pcre-config
$ make && make install

Esto compila e instala esta versión de Apache en /opt/php/apache (no usaremos este apache, solo lo necesitamos para generar la extensión de PHP).

 

2. Compilar PHP

Para compilar PHP seguiremos pasos parecidos a los casos anteriores:

$ cd /opt/php/php-7.1.8
$ ./configure --prefix=/opt/php/current --with-apxs2=/opt/php/apache/bin/apxs
$ make && make install

Para probar que funciona podéis lanzar:

$ opt/php/current/bin/php -v

 

3. Configurar Apache

Ahora que tenemos PHP compilado y funcionando vamos a usarlo en nuestro Apache actual que ya teníamos funcionando con la versión anterior de PHP.

Para ello creamos los archivos (los podemos duplicar de la configuración PHP anterior):

  • /etc/apache2/mods-available/php7.1.conf
  • /etc/apache2/mods-available/php7.1.load

En esté último archivo hay que cambiar la ruta de PHP a esta:

LoadModule php7_module /opt/php/apache/modules/libphp7.so

Activamos el módulo y reiniciamos el servidor de apache:

$ a2dismod php7.0
$ a2enmod php7.1
$ service apache2 restart

LISTO!!

Ya tenemos la nueva versión de PHP funcionando en nuestro servidor.

 

4. Instalar extensiones de PHP

Esta instalación de PHP viene con lo básico. Para añadir nuevas extensiones tendremos que repetir el paso 2 con más opciones.

MCript -> https://sourceforge.net/projects/mcrypt/files/Libmcrypt/
y sus dos dependencias: $ apt-get install libmcrypt-dev libmhash-dev

$ cd /opt/php/libmcrypt-xxxxx
$ ./configure --prefix=/opt/php/libmcrypt-2.5.8/dist
$ make && make install

Curl -> https://curl.haxx.se/download.html

$ cd /opt/php/curl-xxxx
$ ./configure --prefix=/opt/php/curl-xxxxx/dist
$ make && make install

OpenSSL -> https://github.com/openssl/openssl/tags

$ cd /opt/php/openssl-OpenSSL_xxxxx
$ ./configure --prefix=/opt/php/openssl-OpenSSL_xxxxx
$ make && make install

En este caso re-compilaremos la librería de PHP con las extensiones necesarias para un proyecto con Symfony.

$ cd /opt/php/php-7.1.8
$ ./configure --prefix=/opt/php/current --with-apxs2=/opt/php/apache/bin/apxs --with-mcrypt=/opt/php/li
 bmcrypt-2.5.8/dist  --with-pdo-mysql --with-xmlrpc --enable-mbstring --enable-zip --with-zlib --with-mysqli --with-curl=/opt/php/curl-7.54.1/dist --w
 ith-config-file-scan-dir=/etc/php/7.0/apache2/conf.d --enable-sockets --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-openssl=/opt/php/openssl-OpenSSL_1_0_2k/dist
$ make && make install

 

Desarrollador de aplicaciones.
Consultor tecnológico.

Facebook Twitter LinkedIn Google+ Skype  



Política de privacidad

Utilizamos "cookies" propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Puede leer la política de cookies aquí.

Hemos detectado que estás usando un bloqueador de publicidad. Por favor, considera desactivarlo en esta web. Aunque no es mucho, la publicidad nos ayuda a paliar los gastos de mantener esta web activa. Muchas gracias

No cedemos los datos a terceros, solo lo usamos para enviarte notificaciones cuando publicamos algo nuevo.
No enviamos publicidad.