Instalar PHP 7.0 en Mac OS X con MacPorts

He usado este proceso para instalar PHP 7.0 con MacPorts junto con PHP 5.6.

Primero asegurarse de que el Apache que viene junto con Mac OS X está parado:

$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Instalar PHP7 y algunos de sus módulos (la lista completa de módulos disponibles aquí):

$ sudo port install php70
$ sudo port install php70-apache2handler php70-cgi php70-gd php70-curl php70-intl php70-iconv php70-gettext php70-mbstring php70-imap php70-mcrypt php70-xmlrpc php70-mysql php70-openssl php70-sockets php70-zip php70-tidy php70-opcache php70-xsl php70-sqlite

Crear el fichero php.ini base a partir del ejemplo de development:

$ sudo cp /opt/local/etc/php.ini-development /opt/local/etc/php.ini

Averiguar la timezone actual y configurarla en php.ini:

$ TIMEZONE=`sudo systemsetup -gettimezone | awk '{ print $3 }'`
$ TIMEZONE=$(printf "%s\n" "$TIMEZONE" | sed 's/[][\.*^$/]/\\&/g')
$ sudo sed -i.bak "s/;date.timezone =/date.timezone = \"${TIMEZONE}\"/g" php.ini

Actualizar los sockets de MySQL si es que se está usando:

$ sudo sed -i.bak "s#pdo_mysql\.default_socket.*#pdo_mysql\.default_socket=`/opt/local/bin/mysql_config --socket`#" php.ini
$ sudo sed -i.bak "s#mysqli\.default_socket.*#mysqli\.default_socket=`/opt/local/bin/mysql_config --socket`#" php.ini

Ahora con este comando se pueden ver las versiones de PHP instaladas:

$ sudo port select --list php
Available versions for php:
	none
	php56 (active)
	php70

Seleccionar php70 como la versión activa de PHP:

$ sudo port select php php70
Selecting 'php70' for 'php' succeeded. 'php70' is now active.

Habilitar PHP 7 en Apache:

$ cd /opt/local/apache2/modules
$ sudo /opt/local/apache2/bin/apxs -a -e -n php7 mod_php70.so

Reiniciar Apache:

$ sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart

Se puede comprobar la versión de php en la consola así:

$ php -v
PHP 7.0.0 (cli) (built: Dec 12 2015 11:18:35) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Si la versión que se muestra no es la 7.0 asegurarse de que la ruta /opt/local/bin está definida antes que /usr/bin en la variable PATH:

$ echo $PATH
/opt/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

También asegurarse de que /opt/local/bin/php está apuntando a /opt/local/bin/php70:

$ $ ls -l /opt/local/bin/php
lrwxr-xr-x  1 root  admin    20B Dec  5 23:25 /opt/local/bin/php -> /opt/local/bin/php70

Si al ejecutar phpinfo(); no aparece la versión 7.0 comprobar que solo el módulo 7.0 es cargado en /opt/local/apache2/conf/httpd.conf:

#LoadModule php5_module        modules/mod_php56.so
LoadModule php7_module        modules/mod_php70.so

php7

You might also like

Instalar y activar xdebug en MacPorts
Primero instalar php5-xdebug:sudo port install php5-xdebugLuego tan solo hay que añadir las...

Solucionar “mongodb cannot be built while v8 is active” en MacPorts
Mientras actualizaba los ports en macports me salió este error:---> Configuring mongodb Error:...

Byobu: el gestor de ventanas y multiplexador de terminales en modo texto
Byobu es un gestor de ventanas y multiplexador de terminales en modo texto. En este video se puede ver...

Alias útiles de los servicios Apache 2 y MySQL 5 para MacPorts
Estos son algunos de los alias que utilizo para arrancar, parar y reiniciar Apache 2 y MySQL 5 en mi...

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.