Server-side include su un iMac

3

Non riesco da un anno a trovare un modo per eseguire SSI (lato server incluso) sul mio iMac usando il server web Apache incluso con server.app.

Mi chiedo se l'app server consentirà le inclusioni lato server in un sito Web ospitato da Apache su High Sierra?

    
posta Ferren 30.08.2018 - 13:39
fonte

2 risposte

1

No. Infatti, Apple rimuoverà completamente la funzionalità del server Web dall'app server in un futuro molto prossimo e documenterà come migrare i dati in Apache per servire le pagine Web.

Il PDF qui sopra contiene pagine da 22 a 32 dedicate a come migrare qualsiasi dato su un server web open-source. Se ti piace l'apache, lo strumento homebrew potrebbe essere utile per gestire l'installazione, l'applicazione delle patch e lo stato del servizio (arresto / avvio / riavvio del web server su comando o avvio).

Da lì, sarai da solo (o dovrai fare una domanda con il volo - possibilmente su un altro sito su come abilitare l'SSI che vuoi sulla versione del server web che hai scelto).

    
risposta data 31.08.2018 - 21:22
fonte
0

L'ho appena fatto funzionare oggi. Non stavo usando l'app macOS Server. Tuttavia, il mio sistema aveva già apache 2.4 su di esso. Sono in esecuzione macOS 10.13.5 (17G65) aka High Sierra.

Per prima cosa ho dovuto seguire le istruzioni qui per far funzionare il server. Nota che non mi sono preoccupato della sezione PHP perché non ho bisogno di quella funzionalità e non mi sono preoccupato di configurare più siti. Quindi, fondamentalmente, comportava l'inserimento di un file index.html nella mia directory ~ / Sites, che esisteva già.

Successivamente ho configurato Apache come descritto nella sezione 3 del documento sopra. Ho creato /etc/apache2/users/myusername.conf e ho aggiunto quanto segue:

<Directory "/Users/username/Sites/">
  AllowOverride All
  Options Includes Indexes MultiViews FollowSymLinks
  Require all granted
</Directory>

Nota l'extra Includes nella sezione Options . Questo è il primo requisito per ottenere il funzionamento del lato server incluso. Nota anche che se scrivi +Includes come suggerito nei documenti di apache, fallirà silenziosamente. Questo è quello che mi è successo. O tutte le opzioni devono avere il simbolo + o nessuna di esse può averla.

Successivamente ho modificato /etc/apache2/httpd.conf nei seguenti modi:

  1. Non ha eseguito il commento della riga per module_include :

    LoadModule include_module libexec/apache2/mod_include.so

  2. Non ha eseguito il paragone degli altri moduli suggeriti nei documenti precedenti:

    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. Trovate e decommentate queste righe:

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml

Questo significa che i file .shtml verranno elaborati per include lato server

Credo che sia tutto ciò che ho fatto. Nota che puoi guardare in Console.app sotto la sezione /var/log . Se fai girare quello aperto, c'è un'altra cartella all'interno di nome apache2 . Se fai clic su questo, ci sono diversi log di apache. Come accennato in precedenza, sono sparse e non ti dicono ogni errore che si è verificato, ma te ne parlo. Alla fine ho scoperto il problema facendo:

apachectl -M

e vedendo che c'erano degli errori sull'output di quel comando che portavano alla riga esatta dei file di configurazione che erano cattivi. È stato molto più utile!

    
risposta data 16.09.2018 - 02:00
fonte

Leggi altre domande sui tag