4 votes

Après l'installation de MacOS High Sierra, localhost échoue et apache a des erreurs de syntaxe

Après la mise à niveau vers MacOS High Sierra, je n'ai pas été en mesure d'accéder à mon serveur local. J'ai essayé de redémarrer Apache, mais cela ne fonctionnait toujours pas. J'ai donc fait apachectl configtest et j'ai obtenu ce message d'erreur :

httpd : Erreur de syntaxe sur la ligne 544 de /private/etc/apache2/httpd.conf : Erreur de syntaxe sur la ligne 8 de /private/etc/apache2/other/+php-osx.conf : Impossible de charger /usr/local/php5/libphp5.so dans le serveur : dlopen(/usr/local/php5/libphp5.so, 10) : Symbole non trouvé : _environ \n Référencé à partir de : /usr/local/php5/libphp5.so \n E /usr/sbin/httpd \n

La ligne 544 de mon fichier httpd.conf est la suivante
Include /private/etc/apache2/other/*.conf

Le fichier +php-osx.conf est un alias de entropy-php.conf, et la ligne 8 de ce fichier est la suivante
LoadModule php5_module /usr/local/php5/libphp5.so

Les lignes restantes de entropy-php.conf sont : 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>

J'utilise Apache/2.4.28 (Unix) et PHP 5.6.30.

Tout fonctionnait bien jusqu'à la mise à jour. J'ai cherché en ligne une solution à ce problème, mais en vain. Quelqu'un a posté une question similaire ici il y a quelques années concernant la même erreur de syntaxe, mais il n'a pas fourni suffisamment de détails ou de suivi concernant sa configuration, et aucune solution n'a pu être proposée : Mac apache ne fonctionne pas - erreurs apachectl configtest

4voto

klanomath Points 63400

Ici, un (vieux) PHP tiers provenant probablement de entropy.ch a été installé dans /local/usr/bin/. Le httpd.conf de Sierra a été modifié pour fonctionner avec les différents PHP (et hôtes virtuels).

Lors de la mise à jour de MacOS vers High Sierra, le httpd.conf Sierra a été sauvegardé dans httpd.conf.sierra, un nouveau httpd.conf High Sierra a été installé et a pris le contrôle, mais ne fonctionnera pas avec le PHP5 personnalisé.

Après avoir sauvegardé le httpd.conf de High Sierra dans httpd.conf.high_sierra :

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

en réactivant le httpd.conf.sierra :

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

en décommentant la ligne httpd.conf

#LoadModule php5_module libexec/apache2/libphp5.so

et en changeant le numéro de version de 5 à 7 pour qu'il se lise comme suit :

LoadModule php7_module libexec/apache2/libphp7.so

renommer le /local/usr/bin/php personnalisé en php5 :

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

remplacement du lien logiciel /private/etc/apache2/other/+php-osx.conf (lien vers /usr/local/php5/entropy-php.conf) par le lien par défaut High Sierra /private/etc/apache2/other/php7.conf

et en supprimant toute référence au PHP5 personnalisé, apachectl configtest était OK et Apache fonctionnait à nouveau - maintenant avec PHP7 d'Apple.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X