He fallado durante un año en encontrar una manera de ejecutar SSI (incluye el lado del servidor) en mi iMac usando el servidor web apache incluido con server.app.
Me pregunto si la aplicación del servidor permitirá incluir del lado del servidor en un sitio web alojado por Apache en High Sierra.
No. De hecho, Apple eliminará por completo la funcionalidad del servidor web de la aplicación del servidor en un futuro muy cercano y documentará cómo migraría sus datos a apache para servir páginas web.
El PDF anterior tiene las páginas 22 a 32 dedicadas a cómo migraría los datos a un servidor web de código abierto. Si le gusta apache, la herramienta homebrew podría ser una buena opción para administrar esa instalación y parchear y el estado del servicio (detener/iniciar/reiniciar el servidor web en comando o arranque).
A partir de ahí, estaría solo (o necesitaría hacer una pregunta volada, posiblemente en otro sitio sobre cómo habilitar el SSI que desea en la versión del servidor web que ha elegido).
Acabo de hacer que esto funcione hoy. No estaba usando la aplicación macOS Server. Sin embargo, mi sistema ya tenía instalado Apache 2.4. Estoy ejecutando macOS 10.13.5 (17G65), también conocido como High Sierra.
Primero tuve que seguir las instrucciones aquí para hacer funcionar el servidor. Tenga en cuenta que no me molesté con la sección de PHP porque no necesito esa funcionalidad, y tampoco me molesté en configurar varios sitios. Así que básicamente implicó colocar un archivo index.html en mi directorio ~/Sites, que ya existía.
Luego configuré apache como se describe en la sección 3 del documento anterior. Creé /etc/apache2/users/myusername.conf y agregué lo siguiente:
<Directory "/Users/username/Sites/">
AllowOverride All
Options Includes Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
Tenga en cuenta el extra Includes
en la Options
sección. Ese es el primer requisito para que el lado del servidor funcione. Tenga en cuenta también que si escribe +Includes
como se sugiere en los documentos de Apache, fallará silenciosamente. Esto es lo que me pasó. O todas las opciones tienen que tener el +
símbolo o ninguna puede tenerlo.
Luego edité /etc/apache2/httpd.conf de las siguientes maneras:
Descomentó la línea para module_include
:
LoadModule include_module libexec/apache2/mod_include.so
Descomenté los otros módulos sugeridos en los documentos anteriores:
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
Encontré y descomenté estas líneas:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Eso dice que .shtml
los archivos se procesarán para incluir en el servidor
Creo que eso es todo lo que hice. Tenga en cuenta que puede buscar en Console.app en la sección /var/log
. Si lo abres, hay otra carpeta dentro llamada apache2
. Si hace clic en eso, hay varios registros de apache. Como se mencionó anteriormente, son escasos y no le informan todos los errores que ocurrieron, pero sí algunos. Eventualmente descubrí el problema haciendo:
apachectl -M
y viendo que había errores en la salida de ese comando que conducían a la línea exacta en los archivos de configuración que estaban mal. ¡Eso fue mucho más útil!
mmmmmm
bmike