1

Все мои проблемы возникли из-за попытки установить mcrypt для PHP. Прошлой ночью я сдался и последовал учебному пособию о том, как сделать совершенно новую установку apache2 и php5.3.3. Я сделал это с помощью Macports

К сожалению, это не включило mcrypt для меня прошлой ночью, хотя я был очень рад, что у меня работает 5.3.3 :)

Проблема в том, что я проснулся этим утром и обнаружил, что моя версия php вернулась к 5.3.1, что может означать только то, что OS X вернулась к моим оригинальным Apache и PHP.

Как сказать OS X использовать программное обеспечение, которое я установил через macports?

(А потом я задам новый вопрос о том, как включить mcrypt)

Н.Б. Я могу получить установку macports для загрузки, остановив текущий общий доступ к сети в системных настройках, а затем в терминале

 sudo /opt/local/apache2/bin/apachectl -k restart

5 ответов5

5

Это не так сильно, что ваша версия Apache/PHP была отменена - просто загружена неправильная версия.

Если у вас есть Mac OS X с веб-общим доступом, он автоматически включит версию Apache и PHP, которые Apple предоставляет с помощью 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 который, если он будет включен, автоматически запустит версию Apache для MacPorts. Чтобы включить его, запустите 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)

Яблоко.SE

2

Как подсказал Аяз, вам нужно отредактировать список. Правильный путь должен быть /System/Library/LaunchDaemons/org.apache.httpd.plist .

Чтобы убедиться, что вы правильно запускаете apachectl , измените переменную среды PATH в вашем скрипте запуска оболочки (например, ~/.bash_profile , ~/.zshrc или любой другой) так, чтобы /opt/local/apache2/bin предшествовал /usr/sbin , В bash синтаксис для добавления к macports apache dir:

export PATH=/usr/local/apache2/bin:$PATH
1

Еще одно исправление заключается в добавлении символической ссылки apachectl в /usr /sbin /apachectl

$ su -
# mv /usr/sbin/apachectl /usr/sbin/apachectl.mac_version
# ln -s /opt/local/apache2/bin/apachectl /usr/sbin/apachectl
0

Хм ... Вам известно о Личном веб-обмене, который вы можете активировать в Системных настройках -> Общий доступ. Вы пытаетесь заставить этот флажок активировать свою пользовательскую сборку Apache вместо связанной?

Я не знаю, возможно ли это, но я бы не рекомендовал это. Лучше всего просто отключить базовую сборку и использовать собственную отдельно.

У вас уже есть шаг 1, который должен отключить сервер по умолчанию в Системных настройках. Чтобы пользовательская сборка загружалась при загрузке, изучите файл /Library/LaunchDaemons/org.apache.httpd.plist, который вы упомянули. Смотрите $ man launchctl для получения дополнительной информации о работе с этими файлами, а также с этим удобным программным обеспечением под названием Lingon.

С помощью этих инструментов (и, возможно, $ ps -ax | grep httpd) вы сможете убедиться, что работающая сборка Apache - это пользовательская установка MacPorts.

О, это заставляет меня думать о другом: apachectl - это не сервер, а просто утилита, которую вы используете для управления сервером, а именно httpd. Может быть, apachectl MacPorts запускает в комплекте httpd? Или, возможно, httpd MacPorts использует PHP в комплекте ...

Лично мой подход к этому будет состоять в том, чтобы просто изменить установленную сборку Apache, обновив PHP по мере необходимости, но, надеюсь, вы сможете использовать это для продолжения устранения неполадок.

0

Чтобы исправить проблему с Apache, вы можете взглянуть на /Library/LaunchDaemons/org.apache.httpd.plist и отредактировать его по вкусу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .