У меня есть эта странная проблема с apache:
$ apachectl configtest
Syntax OK
Конфигурации в порядке, и это действительно работало минуту назад, прежде чем я его закрыл.
$ sudo apachectl start
org.apache.httpd: Already loaded
Нет, нет:
$ ps ax | grep httpd
58204 s000 R+ 0:00.00 grep httpd
Попробуйте остановить его:
$ sudo apachectl stop
Похоже, он остановлен, верно? Попробуйте снова запустить его:
$ sudo apachectl start
$ sudo apachectl start
org.apache.httpd: Already loaded
Итак, он должен работать, но он не находится в ps ax
, и он просто не работает.
$ sudo apachectl stop
$ sudo apachectl stop
launchctl: Error unloading: org.apache.httpd
Попробовал удалить его из автозапуска:
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
launchctl: Error unloading: org.apache.httpd
Но то же самое, когда я пытаюсь запустить его, он притворяется, что он начинается, но это не так. Ничего в журнале ошибок. Помогите!
OS X 10.8.2 Горный лев
Update:
После перезагрузки:
$ sudo apachectl start
Password:
org.apache.httpd: Already loaded
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
org.apache.httpd: Already loaded
$ ps ax | grep httpd
7300 s000 R+ 0:00.00 grep httpd
Итак, я фактически оставлен без веб-сервера.
Решение:
После изучения org.apache.httpd.plist
я выяснил, что apache контролируется рубином script /usr/sbin/http-wrapper
, у которого были некоторые проблемы, потому что я заменил интерпретатор рубиновых систем. Это исправило это для меня:
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby