Ответ 1
запустите сервер вручную и исправьте сообщение об ошибке:
root#> /usr/sbin/httpd -k start
У меня есть эта странная проблема с 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
запустите сервер вручную и исправьте сообщение об ошибке:
root#> /usr/sbin/httpd -k start
мое исправление заключалось в том, что "... apache_access_log объединен" в httpd.conf.
Я грубо столкнулся с такой же небольшой неудачей сегодня, хотя, как и glasnhos-, без рубиновой обертки. @glasnhost, ваш задумчивый опрокинул меня. В начале дня, когда я работал с apache httpd.conf, играл с журналом. я включил вторую из этих двух почти идентичных строк (w/quotes и w/out кавычки; заметьте, что у одного есть расширение .log
, в то время как другое - подчеркивание _log
).
# CustomLog "/Applications/MAMP/logs/apache_access.log" combined
CustomLog /Applications/MAMP/logs/apache_access_log combined
аналогично, и, как ни странно, проблема не пугала мою систему до нескольких часов. благодаря этой теме моя система вернулась и здоров! нет доверия к всплеску.
Прочитав эту статью и ответ Ник 5 ноября, я попытался запустить /usr/sbin/http -wrapper в Terminal как пользователь root. И я получил этот вывод
titanium:~ root# /usr/sbin/httpd-wrapper
(2)No such file or directory: httpd: could not open error log file /private/var/log/apache2/error_log.
Unable to open logs
titanium:~ root#
Затем я проверил, что папка /private/var/log/apache 2 не существует. Я создал его и установил права для всех.
titanium:log root# mkdir /private/var/log/apache2
titanium:log root# chmod 777 /private/var/log/apache2/
titanium:log root#
Это работает для меня!
Примечание. Если вы заботитесь о безопасности, дайте более ограниченное разрешение для /private/var/log/apache 2, а не 777.