web-dev-qa-db-fra.com

Apache ne fonctionne pas après la mise à jour de macOS Mojave

Ok, après la mise à jour de macOS de High Sierra vers Mojave, Apache avec PHP cesse de fonctionner correctement. J'ai donc tout fait comme indiqué dans ce guide - https://getgrav.org/blog/macos-mojave-Apache -multiple-php-versions

mais après cela, Apache ne fonctionne toujours pas correctement, parfois, parfois, et cela est dit dans les navigateurs ERR_CONNECTION_REFUSED ou d’autres erreurs comme 404 ou 500.

Dans Apache, le journal est:

[Tue Oct 02 15:02:23.209423 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received.  Attempting to restart
[Tue Oct 02 15:02:23.255957 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:02:23.256008 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
[Tue Oct 02 15:14:37.626645 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received.  Attempting to restart
[Tue Oct 02 15:14:37.674603 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:14:37.674672 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
[Tue Oct 02 15:28:40.715060 2018] [mpm_prefork:notice] [pid 14579] AH00173: SIGHUP received.  Attempting to restart
[Tue Oct 02 15:28:40.752117 2018] [ssl:warn] [pid 14579] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name
[Tue Oct 02 15:28:40.766009 2018] [mpm_prefork:notice] [pid 14579] AH00163: Apache/2.4.35 (Unix) OpenSSL/1.0.2p PHP/7.2.10 configured -- resuming normal operations
[Tue Oct 02 15:28:40.766052 2018] [core:notice] [pid 14579] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd'
5
Edoras

J'ai rencontré un problème similaire avec PHP 5.6, car il fonctionnait bien avant la mise à niveau de Mojave. J'ai procédé comme suit pour résoudre le problème avec succès:

  1. Exécutez la commande ci-dessous Sudo nano /etc/Apache2/httpd.conf

  2. assurez-vous que les modules ci-dessous ne sont pas commentés:

    LoadModule authz_core_module libexec/Apache2/mod_authz_core.so

    LoadModule authz_Host_module libexec/Apache2/mod_authz_Host.so

    LoadModule userdir_module libexec/Apache2/mod_userdir.so

    LoadModule include_module libexec/Apache2/mod_include.so

    LoadModule rewrite_module libexec/Apache2/mod_rewrite.so

J'ai ajouté le manquant dans httpd.conf

  1. Vérifiez le bon module php pour vous (PHP 5.6 ou 7.x) et chargez aussi le module requis en ajoutant la ligne ou en commentant/décommentant les lignes

    LoadModule php5_module libexec/Apache2/libphp5.so

OR

LoadModule php7_module libexec/Apache2/libphp7.so

Commentez celui dont vous n'avez pas besoin en ajoutant "#" au début de la ligne

  1. Exécutez les commandes ci-dessous pour redémarrer et tester Apapche A. Sudo apachectl restart B. apachectl configtest

Vérifier les erreurs là-bas

Pour PHP 5.6: Au cas où vous auriez le php 5 avec brew déjà dans le système avant upgarde et que les modifications ci-dessus donnent une erreur comme ci-dessous ". /Apache2/httpd.conf: impossible de charger libexec/Apache2/libphp5.so dans le serveur: dlopen (/usr/libexec/Apache2/libphp5.so, 10): image introuvable "

Recherchez ensuite libphp5.so dans le système et, si vous le trouvez, copiez-le dans "/ usr/libexec/Apache2 /"

Dans mon cas, la commande était

Sudo cp ./local/Cellar/[email protected]/5.6.25_1/libexec/Apache2/libphp5.so /usr/libexec/Apache2/

Tout cela a fonctionné dans mon système

9
adang

Suite à la réponse d’adang, j’ai également dû décommenter cette ligne:

Include /private/etc/Apache2/extra/httpd-userdir.conf

afin de savoir quels répertoires d'utilisateurs étaient disponibles.

Dans /private/etc/Apache2/extra/httpd-userdir.conf

Je devais décommenter cette ligne:

Include /private/etc/Apache2/users/*.conf

puis:

Sudo apachectl restart
5
Matthew

J'ai eu le même problème après l'installation de Mac OS Mojave . J'ai effectué les étapes suivantes et cela a fonctionné avec moi:

brew update 

puis:

brew upgrade

J'ai édité /etc/Apache2/httpd.conf en supprimant la mise en commentaire de la ligne suivante:

LoadModule php7_module libexec/Apache2/libphp7.so

Ouvrez le terminal et redémarrez le serveur Apache:

Sudo apachectl restart

le message sur ce lien pourrait vous être utile

1
Wael Almadhoun

parce que le sujet est le httpd.conf foiré après la mise à jour de Mojave, j'ai aussi cette erreur pendant Sudo apachectl configtest

Could not reliably determine the server's fully qualified domain name, using XXX. Set the 'ServerName' directive globally to suppress this message

J'ai découvert que le #ServerName localhost:80 dans le fichier httpd.conf avait été commenté, mon commentaire a été résolu.

0
Francesco Panella

J'ai suivi les instructions dans les réponses ci-dessus et j'ai quand même eu un 403 interdit en essayant d'accéder à mon dossier /Users/myuser/Sites/. Pour résoudre ce problème, j'ai dû remplacer l'utilisateur /etc/Apache2/httpd.conf de _www par mon propre utilisateur.

Pour ce faire, éditez votre fichier httpd.conf en utilisant votre éditeur favori /etc/Apache2/httpd.conf. Chercher:

User _www

remplacez par votre utilisateur:

User myuser

puis redémarrez Apache:

Sudo apachectl restart
0
bated