Tous mes problèmes provenaient d'essayer d'installer mcrypt pour PHP. La nuit dernière, j’ai cédé et suivi un tutoriel sur la façon de procéder à une nouvelle installation d’apache2 et php5.3.3. Je l'ai fait en utilisant macports
Malheureusement, mcrypt n’a pas été activé pour moi la nuit dernière, même si j’ai été ravi d’avoir exécuté 5.3.3 :)
Le problème est que je me suis réveillé ce matin pour constater que ma version de PHP est revenu à la version 5.3.1, ce qui ne peut que signifier que OS X est revenu à Apache et PHP.
Comment dire à OS X d'utiliser le logiciel que j'ai installé via macports?
(Et ensuite, je poserai une nouvelle question sur la façon d'activer mcrypt)
nb je peux faire charger les macports installés en arrêtant le partage Web actuel dans les préférences système, puis dans le terminal
sudo /opt/local/apache2/bin/apachectl -k restart
/etc/init.d
po Quelque part, il y a probablement une ligne qui commence / appelle/usr/sbin/apachectl
. Commentez cela et remplacez-le par l'appel à apache2.Réponses:
Ce n'est pas tellement que votre version d'Apache / PHP a été annulée - c'est simplement la mauvaise version qui est chargée.
Si vous avez activé le partage Web de Mac OS X, il activera automatiquement la version d'Apache et PHP fournie par Apple à l'aide de LaunchDaemon
org.apache.httpd.plist
dans/System/Library/LaunchDaemons
(cette option remplacera la version de MacPorts). Vous voudrez désactiver ceci en désactivant le partage Web dans la sous-fenêtre des préférences de partage ou en le lançantsudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
.Lorsque vous avez installé Apache pour MacPorts, il a installé un LaunchDaemon dans
/Library/LaunchDaemons
lequel s’il est activé, la version MacPorts de Apache démarrera automatiquement. Pour l'activersudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
, vous voilà parti pour les courses.Si vous voulez
apachectl
redémarrer, assurez-vous d'avoir sélectionné la bonne version. Vous devrez peut-être modifier votre $ PATH pour avoir/opt/local/apache2/bin
avant/usr/sbin
Quant à quelle version de PHP est utilisée; sur la ligne de commande, cela dépendra de votre $ PATH, tandis que pour Apache, il est entièrement dans votre configuration de l'emplacement du module libphp5. (
/etc/apache2/
pour la version intégrée,/opt/local/apache2/conf
pour la version installée de MacPorts)Apple.SE
la source
Comme Ayaz l'a suggéré, vous devez éditer le plist. Le bon chemin devrait être
/System/Library/LaunchDaemons/org.apache.httpd.plist
.Pour vous assurer que vous exécutez correctement
apachectl
, modifiez laPATH
variable d'environnement dans votre script de démarrage du shell (par exemple~/.bash_profile
,~/.zshrc
ou autre) afin que cela/opt/local/apache2/bin
vienne avant/usr/sbin
. En bash, la syntaxe à utiliser pour ajouter le répertoire macports apache est la suivante:la source
Une autre solution consiste à faire un lien symbolique entre apachectl et / usr / sbin / apachectl
la source
Pour résoudre votre problème Apache, vous pouvez y jeter un coup d'œil
/Library/LaunchDaemons/org.apache.httpd.plist
et le modifier à votre guise.la source
/System/Library/LaunchDaemons
,/Library/LaunchDaemons
a la version de MacPorts.Hmm ... Vous connaissez le partage Web personnel que vous pouvez activer dans Préférences Système -> Partage. Essayez-vous de faire en sorte que cette case à cocher active votre version personnalisée d’Apache au lieu de celle fournie?
Je ne sais pas si c'est possible, mais je ne le recommanderais pas. C'est une meilleure idée de simplement désactiver la version de base et d'utiliser votre version personnalisée séparément.
Vous avez déjà eu l’étape 1, qui consiste à désactiver le serveur par défaut dans les Préférences Système. Pour que la génération personnalisée soit chargée au démarrage, étudiez le fichier /Library/LaunchDaemons/org.apache.httpd.plist que vous avez mentionné. Voir $ man launchctl pour plus d'informations sur l'utilisation de ces fichiers, ainsi que sur ce logiciel très utile appelé Lingon.
Avec ces outils (et peut-être $ ps -ax | grep httpd), vous devriez être en mesure de vous assurer que la version Apache en cours d'exécution correspond à l'installation personnalisée de MacPorts.
Ooh, cela me fait penser à autre chose: Apachectl n'est pas le serveur, c'est simplement un utilitaire que vous utilisez pour contrôler le serveur, httpd. Peut-être que le MacPorts apachectl démarre le httpd fourni? Ou peut-être que le httpd MacPorts utilise le PHP fourni ...
Personnellement, mon approche serait simplement de modifier la version installée d'Apache en mettant à niveau PHP si nécessaire, mais j'espère que vous pourrez en utiliser une partie pour continuer le dépannage.
la source