J'essaie d'installer le serveur zend sur mac et j'ai besoin de désinstaller le serveur Apache inclus automatiquement avec Mavericks pour que le serveur Apache fourni avec Zend soit utilisé à la place. Peut-il être empêché de s'exécuter au démarrage ou définitivement supprimé?
Essaye ça:
Sudo launchctl unload -w /System/Library/LaunchDaemons/org.Apache.httpd.plist
Cela arrêtera une instance en cours d'exécution d'Apache et enregistrera qu'elle ne devrait pas être redémarrée. Il enregistre votre préférence dans /private/var/db/launchd.db/com.Apple.launchd/overrides.plist
.
essaye ça
Sudo killall httpd
ça va tout arrêter
Si vous avez accédé à cette page comme je l'ai fait et que vous obtenez quelque chose comme /System/Library/LaunchDaemons/org.Apache.httpd.plist: Could not find specified service.
, essayez de ne PAS utiliser la commande Sudo, ce qui m'a fait obtenir l'erreur ci-dessus.
J'ai rencontré le même problème et le coupable était plutôt obtus. OSX essayait d'inclure une version php inexistante, mais le httpd OSX n'était pas non plus directement accessible en raison de la priorité donnée à l'homebrew httpd. Voici ce que j'ai fait qui a résolu le problème:
D'abord: brew unlink httpd
Puis which httpd
a révélé ce qui suit: /usr/sbin/httpd
À ce stade, j'ai exécuté Sudo /usr/sbin/httpd -k stop
, et le véritable coupable s'est révélé:
httpd: Syntax error on line 527 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 in /usr/local/php5/libphp5.so
J'ai ensuite corrigé ce problème avec Sudo vi /private/etc/Apache2/httpd.conf
, commenté toutes les lignes de ce fichier et exécuté ce qui suit pour faire bonne mesure:
Sudo launchctl unload -w /System/Library/LaunchDaemons/org.Apache.httpd.plist
Cela a déclaré:
/System/Library/LaunchDaemons/org.Apache.httpd.plist: Could not find specified service
Le problème sous-jacent était que l'instance OSX native était toujours en cours d'exécution, mais avait été séparée de launchctl
en raison du problème PHP introuvable. Donc, fondamentalement, launchctl
pensait qu'il avait correctement fermé le processus, mais l'agent apachectl
a refusé de s'arrêter en raison de l'erreur PHP, ce qui a abouti à un processus découplé, qui n'était accessible pour le contrôle direct que lorsque la version homebrew était également non liée.
Commenter le PHP natif include m'a permis d'exécuter Sudo apachectl -k stop
sans problème.
Après avoir réglé ce problème, j'ai ensuite couru
brew link httpd
suivi par
brew services restart httpd
Profit.