11 votes

Conflit entre Apache interne et Apache installé via Homebrew

J'ai rencontré le problème suivant. Je voulais avoir plusieurs versions de PHP, j'ai donc utilisé este article pour y parvenir. Mais je n'ai pas pu arrêter Apache via sudo apachectl -k stop En exécutant cette commande, j'obtiens le résultat suivant : enter image description here

Il semble donc que j'aie maintenant deux chemins de configuration :

  • open -e /usr/local/etc/httpd/httpd.conf

  • open -e /etc/apache2/httpd.conf

Et actuellement, je suis frustré et je me pose les questions suivantes : - quel chemin est correct ? - pourquoi toutes les modifications dans les deux fichiers ne changent rien ? (après avoir chargé le module php7 au lieu de php5 n'a pas d'impact après avoir exécuté sudo apachectl restart ) - comment dois-je faire face à cette situation et résoudre le conflit des serveurs ?

Quelqu'un peut-il m'aider à résoudre ce problème ?

P.S. Si des détails supplémentaires sont nécessaires ou si j'ai manqué quelque chose, veuillez me le faire savoir dans les commentaires.

17voto

Nico Vink Points 141

J'ai eu le même problème sur un système Sierra. Je fonctionne :

which -a apachectl

sortie :

/usr/sbin/apachectl
/usr/local/bin/apachectl

pour arrêter l'apache par la version apple : sudo /usr/sbin/apachectl stop

Pour voir les processus en cours : ps aux | grep httpd Sortie :

ibook             1359   0,0  0,0  2432804    768 s000  S+    4:13pm   0:00.00 grep httpd
_www              1014   0,0  0,0  2479412    836   ??  S     3:57pm   0:00.00 

/usr/sbin/httpd -k restart
root              1013   0,0  0,1  2479668   7544   ??  Ss    3:57pm   0:00.12 /usr/sbin/httpd -k restart

Donc pour arrêter apache par apple : sudo /usr/sbin/httpd -k stop Et pour vérifier si cela s'est produit : ps aux | grep httpd Sortie :

ibok             1375   0,0  0,0  2432804    776 s000  S+    4:14pm   0:00.00 grep httpd

Pour démarrer le brew apache :

sudo /usr/local/bin/apachectl start

Et pour vérifier s'il est allumé : ps aux | grep httpd sortie :

 ibook             1390   0,0  0,0  2432804    768 s000  S+    4:14pm   0:00.00 grep httpd
    _www              1387   0,0  0,0  2652596    780   ??  S     4:14pm   0:00.00 /usr/local/opt/httpd/bin/httpd -k start
    _www              1386   0,0  0,0  2652596    752   ??  S     4:14pm   0:00.00 /usr/local/opt/httpd/bin/httpd -k start
    _www              1385   0,0  0,0  2652596    756   ??  S     4:14pm   0:00.00 /usr/local/opt/httpd/bin/httpd -k start
    _www              1384   0,0  0,0  2652596    756   ??  S     4:14pm   0:00.00 /usr/local/opt/httpd/bin/httpd -k start
    _www              1383   0,0  0,0  2652596    744   ??  S     4:14pm   0:00.00 /usr/local/opt/httpd/bin/httpd -k start
    root              1382   0,0  0,1  2652596  10976   ??  Ss    4:14pm   0:00.03 /usr/local/opt/httpd/bin/httpd -k start

Pour voir la version courante d'Apache : httpd -V qui est sorti :

Server version: Apache/2.4.28 (Unix)
Server built:   Oct 29 2017 19:28:54
Server's Module Magic Number: 20120211:68
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

Et c'était encore la version installée par APPLE (2.4.28) ! Au lieu de la version 2.4.38. Je reconnais la frustration.

Mais il s'avère que les pages de l'url localhost sont servies par le nouvel apache !

Pour afficher la version OSX d'apache :

Entrée du terminal : /usr/sbin/apachectl -v

Version du serveur : Apache/2.4.28 (Unix) Serveur construit : 29 octobre 2017 19:28:54

Et pour voir la version de brassage :

Entrée du terminal : /usr/local/bin/apachectl -v

Version du serveur : Apache/2.4.38 (Unix) Serveur construit : 10 février 2019 02:49:25

Et pour php : Il suffit de taper dans le terminal : which -a php Mon mac montre :

/usr/bin/php

/usr/local/bin/php

Et pour montrer les versions php, il suffit d'utiliser ceci :

Entrée du terminal : /usr/bin/php -v

indique la version de la construction OSX : PHP 5.6.30 (cli) (construit : 29 Oct 2017 20:30:32) Copyright © 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright © 1998-2016 Zend Technologies

Et entrée terminale : /usr/local/bin/php -v

Montrera la version de brassage : PHP 7.3.2 (cli) (construit : Feb 14 2019 10:09:47) ( NTS ) Copyright © 1997-2018 The PHP Group Zend Engine v3.3.2, Copyright © 1998-2018 Zend Technologies avec Zend OPcache v7.3.2, Copyright © 1999-2018, par Zend Technologies

8voto

Xuan Ham Nguyen Points 81

Je pense que le chemin par défaut d'apache

/etc/apache2/httpd.conf

et le chemin d'apache homebrew

/usr/local/etc/httpd/httpd.conf

Et vous pouvez avoir 2 apaches dans votre système, utilisez cette commande pour vérifier.

which -a apachectl

apache par défaut

/usr/sbin/apachectl 

apache pour homebrew. Je pense que oui.

/usr/local/bin/apachectl

La commande ci-dessous utilise l'apache par défaut. Je pense.

sudo apachectl restart

Vous pouvez utiliser ce

sudo /usr/local/bin/apachectl restart

0voto

Nico Vink Points 141

J'ai également trouvé cette information sur le web qui peut être utile lorsque l'on utilise OSXServer au lieu d'OSX : OS X Server 5 a introduit un certain nombre de changements.

Une fois que vous avez installé OS X Server 5 sur Yosemite ou El Capitan, la version "bureau" d'Apache est remplacée par une version "serveur" dans Server.app. Pour différencier les deux et prendre en compte les différentes méthodes d'arrêt et de démarrage d'Apache, une nouvelle commande a été introduite avec server-apachectl.

Vous pouvez toujours utiliser les mêmes paramètres. Par exemple :

sudo server-apachectl graceful

sudo server-apachectl restart

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