Все мои проблемы, остановленные от попытки получить mcrypt для установленного PHP. Вчера вечером я сдал и следовал учебному руководству того, как сделать полностью новый apache2 и установку php5.3.3. Я сделал это использование macports
К сожалению, это не включило mcrypt для меня вчера вечером, хотя я был довольно рад, что я получил 5.3.3 выполнения :)
Проблема состоит в том, что я проснулся этим утром, чтобы найти, что моя php версия вернулась до 5.3.1, которые могут только означать, что OS X вернулся к моему исходному Apache и PHP.
Как я говорю OS X использовать программное обеспечение, которое я установил через macports?
(И затем я задам новый вопрос того, как включить mcrypt),
n.b. Я могу заставить установку macports загружаться путем остановки текущего веб-совместного использования в системе prefs затем это в терминале
sudo /opt/local/apache2/bin/apachectl -k restart
Это не такая Ваша версия Apache/PHP, вернулись - это - просто неверная версия, загружается.
Если Вам включат сеть Mac OS X, Совместно использующую, то она будет автоматический включать версию Apache, и Apple PHP обеспечивает использование LaunchDaemon org.apache.httpd.plist
в /System/Library/LaunchDaemons
(это переопределит версию MacPorts). Вы захотите отключить это или выключением веб-Совместного использования в Совместном использовании Предпочтительной Области или путем выполнения sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
.
При установке Apache для MacPorts, он установил LaunchDaemon в /Library/LaunchDaemons
который, если включено запустит версию MacPorts Apache автоматически. Включить выполненный sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
и Вы прочь к гонкам.
Если Вы работаете apachectl
для перезапуска - удостоверяются, что Вы выбрали правильную версию. Вы, возможно, должны изменить свой $PATH, чтобы иметь /opt/local/apache2/bin
прежде /usr/sbin
Что касается того, какая версия PHP используется; на командной строке это будет зависеть от Вашего $PATH, в то время как для Apache это находится полностью в Вашей конфигурации того, где libphp5 модуль. (/etc/apache2/
для созданного в версии, /opt/local/apache2/conf
для версии MacPorts установил),
Как предложенный Ayaz, необходимо отредактировать plist. Надлежащий путь должен быть /System/Library/LaunchDaemons/org.apache.httpd.plist
.
Удостоверяться, что Вы выполняете надлежащее apachectl
, измените PATH
переменная среды в Вашей оболочке запускает сценарий (например. ~/.bash_profile
, ~/.zshrc
или безотносительно) так, чтобы /opt/local/apache2/bin
прибывает прежде /usr/sbin
. В ударе синтаксис для предварительного ожидания macports апачского dir:
export PATH=/usr/local/apache2/bin:$PATH
Хм... Вы знаете, что Персональная сеть Совместно использует Вас, может активироваться в Установках системы-> Совместное использование. Вы пытаетесь заставить тот флажок активировать Ваш сделанный на заказ из Apache вместо связанного?
Я не знаю, возможно ли это, но я не рекомендовал бы это. Это - лучшая идея просто деактивировать основную сборку и использовать Вашу пользовательскую отдельно.
Вы уже получили шаг 1, который должен выключить сервер по умолчанию в Установках системы. Чтобы заставить сделанное на заказ загружаться при начальной загрузке, исследуйте/Library/LaunchDaemons/org.apache.httpd.plist файл, который Вы упомянули. Посмотрите $man launchctl для большего количества информации о работе с этими файлами и также этой удобной части программного обеспечения под названием Lingon.
С теми инструментами (и возможно $ps-ax|grep httpd) необходимо смочь удостовериться, что рабочая сборка Apache является пользовательской установкой MacPorts.
Ох, это заставляет меня думать о чем-то еще: apachectl не является сервером, это - просто утилита, которую Вы используете для управления сервером, который является httpd. Возможно, MacPorts apachectl действительно ли запуск является связанным httpd? Или возможно MacPorts httpd использует связанный PHP...
Лично, мой подход к этому должен был бы просто изменить установленную апачскую сборку путем обновления PHP как требуется, но надо надеяться можно использовать часть этого, чтобы продолжить диагностировать.