Dopo l'installazione di MacOS High Sierra, localhost fallisce e Apache ha errori di sintassi

3

Dopo l'aggiornamento a MacOS High Sierra, non sono stato in grado di accedere al mio localhost. Ho provato a riavviare Apache, ma ancora non ha funzionato. Così ho fatto apachectl configtest e ho ricevuto questo messaggio di errore:

httpd: Syntax error on line 544 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _environ\n Referenced from: /usr/local/php5/libphp5.so\n Expected in: /usr/sbin/httpd\n

La riga 544 del mio file httpd.conf è
Include /private/etc/apache2/other/*.conf

Il + php-osx.conf è un alias di entropy-php.conf e la riga 8 di quel file è
LoadModule php5_module /usr/local/php5/libphp5.so

Le restanti linee di entropy-php.conf sono: LoadModule php5_module /usr/local/php5/libphp5.so

<IfModule mod_php5.c>

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>

</IfModule>

Sto usando Apache / 2.4.28 (Unix) e PHP 5.6.30.

Tutto funzionava bene fino all'aggiornamento. Ho cercato online per qualsiasi soluzione questo problema, ma senza risultato. Qualcuno ha postato una domanda simile qui un paio di anni fa riguardo lo stesso errore di sintassi, tuttavia, non ha fornito dettagli sufficienti o alcun seguito per quanto riguarda la sua configurazione, e nessuna soluzione potrebbe essere offerta: Mac apache non funziona - errori di configurazione di apachectl

    
posta Paul Brady 22.11.2017 - 23:05
fonte

1 risposta

3

Qui è stato installato un (vecchio) PHP di terze parti probabilmente da entropy.ch in / local / usr / bin /. Il Sierra httpd.conf è stato modificato per funzionare con PHP diversi (e host virtuali).

Durante l'aggiornamento a macOS su High Sierra, è stato eseguito il backup di httpd.conf Sierra su httpd.conf.sierra, è stato installato un nuovo httpd.conf di High Sierra che ha ottenuto il controllo, ma non funzionerà con il PHP5 personalizzato.

Dopo il backup di High Sierra httpd.conf su httpd.conf.high_sierra:

sudo mv /private/etc/apache2/httpd.conf /private/etc/apache2/httpd.conf.high_sierra 

riattivazione di httpd.conf.sierra:

sudo cp /private/etc/apache2/httpd.conf.sierra /private/etc/apache2/httpd.conf

decommentare la linea httpd.conf

#LoadModule php5_module libexec/apache2/libphp5.so

e modifica del numero di versione da 5 a 7 in modo che legga:

LoadModule php7_module libexec/apache2/libphp7.so


rinominando il custom / local / usr / bin / php su php5:

sudo mv /local/usr/bin/php /local/usr/bin/php5

sostituendo il soft link /private/etc/apache2/other/+php-osx.conf (collegando a /usr/local/php5/entropy-php.conf) con il valore predefinito High Sierra / private / etc / apache2 / altri / php7.conf

e rimuovendo qualsiasi riferimento al PHP5 personalizzato, apachectl configtest era OK e Apache ha funzionato di nuovo, ora con PHP7 di Apple.

    
risposta data 23.11.2017 - 03:21
fonte

Leggi altre domande sui tag