Incluye del lado del servidor en un iMac

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.

Respuestas (2)

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).

¿Es homebrew el mejor aquí, ya que apache sería mejor ejecutándose como su propio usuario, no como el instalador?
Ese es un muy buen punto @Mark I calificó podría ser bueno para instalar, parchear y controlar el servicio. ¿Debería haber dicho uso para principiantes? No conozco a nadie que sea súper técnico que haya usado una aplicación de servidor, así que me preparé para las primeras veces que alguien configura esto.

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 Includesen la Optionssección. Ese es el primer requisito para que el lado del servidor funcione. Tenga en cuenta también que si escribe +Includescomo 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:

  1. Descomentó la línea para module_include:

    LoadModule include_module libexec/apache2/mod_include.so

  2. 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

  3. Encontré y descomenté estas líneas:

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml

Eso dice que .shtmllos 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!