Apple lanzó macOS Mojave 10.14 en septiembre de 2018 con Apache y PHP integrados en el sistema. Utilizaremos los programas Apache y PHP preinstalados para dejarlos operativos sin instalar herramientas de terceros, de forma manual, con los archivos de configuración y el Terminal.
Apache
El nuevo macOS Mojave viene con Apache preinstalado. Todo lo que tenemos que hacer es configurarlo y activarlo. Para verificar la versión de Apache instalada, ejecuta el siguiente comando en Terminal:
$ httpd -v
macOS Mojave viene con Apache 2.4.34. Para iniciar, detener o reiniciar el servidor web Apache tienes a tu disposición los comandos siguientes (solicitan la contraseña de administrador):
$ sudo apachectl start $ sudo apachectl stop $ sudo apachectl restart
Después de arrancar Apache pruébalo abriendo un navegador en http: // localhost. Verás la siguiente salida en tu navegador: ¡Funciona! En caso de que no puedas verlo, ejecuta el siguiente comando para verificar el error:
$ sudo apachectl configtest
Este comando informa sobre errores de sintaxis de archivos de configuración localizando incluso la línea del error y otros posibles problemas que haya que resolver. Cuando todo está bien informa «Syntax OK».
Carpeta del sitio web
DocumentRoot es el directorio donde colocamos los archivos de nuestro sitio web. En Mac tenemos dos posibles ubicaciones, una perteneciente al sistema y otra que pertenece al usuario:
– /Library/Webserver/Documents
– /Usuarios/yo/Web.
En este artículo vamos a configurarlo en la carpeta del usuario.
Creando el archivo user.conf
Ahora es el momento de crear un archivo user.conf que ayudará a configurar el directorio raíz. Nota: utiliza tu verdadero nombre de usuario en lugar de la palabra yo que empleo en los textos.
El comando whoami en Terminal mostrará tu nombre de usuario. Abre Terminal y ve al directorio:
$ cd /etc/apache2/users/
Crea y abre el archivo de configuración user.conf dentro de esa carpeta:.
$ sudo pico user.conf
Escribe lo siguiente en el archivo:
<Directory "/Users/yo/Sites/"> AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted </Directory>
Ctrl + O para guardar y Ctrl + X para salir. Los permisos de este archivo deben ser «-rw-r–r– root wheel «, para dejarlo con esas opciones ejecuta en Terminal:
$ sudo chmod 644 user.conf
Configuración del archivo httpd.conf
Escribe en terminal para ir al directorio apache2:
$ cd /etc/apache2/
Dentro de este directorio está el archivo httpd.conf. Por si acaso haz una copia de seguridad con este comando en Terminal:
$ sudo cp httpd.conf httpd.conf.backup
Abrimos el archivo httpd.conf usando el editor pico que viene por defecto en macOS:
$ sudo pico httpd.conf
Hay que descomentar unas cuantas líneas, para ello hay que borrar el carácter # del inicio de la línea.
Para permitir la carga de los módulos requeridos:
LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule userdir_module libexec/apache2/mod_userdir.so LoadModule include_module libexec/apache2/mod_include.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Y para configurar el directorio web del usuario:
Include /private/etc/apache2/extra/httpd-userdir.conf
También hay que definir la ubicación del directorio web, es el parámetro DocumentRoot. Encuentra las líneas siguientes y coméntalas agregando # al principio de la línea:
#DocumentRoot "/Library/WebServer/Documents" #<Directory "/Library/WebServer/Documents">
Añade las siguientes dos líneas debajo de las líneas comentadas:
DocumentRoot "/Users/yo/Sites/" <Directory "/Users/yo/Sites/">
Además la opción AllowOverride None ha de cambiar a AllowOverride All de forma que la sección DocumentRoot ahora debería verse así:
#DocumentRoot "/Library/WebServer/Documents" #<Directory "/Library/WebServer/Documents"> DocumentRoot "/Users/yo/Sites/" <Directory "/Users/yo/Sites/"> Options FollowSymLinks Multiviews MultiviewsMatch Any AllowOverride All Require all granted
Ctrl + O para guardar y Ctrl + X para salir.
Configuración del archivo httpd-userdir.conf
Escribe el siguiente comando en Terminal para ir al directorio:
$ cd /etc/apache2/extra/
Por si acaso haz una copia de seguridad con este comando en Terminal:
$ sudo cp httpd-userdir.conf httpd-userdir.conf.backup
Abre el archivo con pico:
$ sudo pico httpd-userdir.conf
Descomenta la línea:
Include /private/etc/apache2/users/*.conf
Ctrl + O para guardar y Ctrl + X para salir. Verifica que todo esté configurado correctamente con el comando configtest y reinicia el servidor web:
$ sudo apachectl configtest Syntax OK $ sudo apachectl restart
PHP
macOS Mojave viene con PHP 7.1 preinstalado. Para verificar la versión de PHP en Terminal, escribe:
$ php -v
Abre el archivo httpd.conf:
$ sudo pico /etc/apache2/httpd.conf
Para poder ejecutar PHP descomenta la línea:
LoadModule php7_module libexec/apache2/libphp7.so
Ctrl + O para guardar y Ctrl + X para salir. Reinicia Apache para recoger los cambios.
Probando PHP en el servidor web
Crea un archivo index.php en la carpeta raíz del sitio web (/Users/yo/Sites) y ábrelo con los siguientes comandos en Terminal:
$ touch ~/Sites/index.php $ pico ~/Sites/index.php
Escribe en él esta línea simple que, en código PHP, ejecuta la orden de mostrar en pantalla información muy detallada sobre PHP y Apache:
<? phpinfo(); ?>
Ctrl + O para guardar y Ctrl + X para salir. Abre localhost o 127.0.0.1 en el navegador y obtendrás una página web con esa información detallada.
Apache activo en cada arranque del sistema
Si deseas que Apache se inicie automáticamente cada vez que enciendes el Mac puedes ejecutar este comando en Terminal:
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Archivos de sistema ocultos en Mac
Si en algún momento deseas ver en el Finder las carpetas ocultas a las que se hace referencia en este artículo, recuerda los comandos, Para mostrar u ocultar archivos en Mac, ejecuta en Terminal:
defaults write com.apple.finder AppleShowAllFiles YES;killall Finder defaults write com.apple.finder AppleShowAllFiles NO;killall Finder