Apache2 не запускает мой веб-сервер

8

Итак, я запускаю эту команду:

/etc/init.d/apache2 start

И это говорит:

* Starting web server apache2 [ OK ]

Но! Мой сайт по-прежнему не работает. А также!

service --status-all
 [ - ]  apache2

Whaattt ....? Что происходит? ; (

[Sat May 01 14:45:18 2010] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat May 01 14:45:18 2010] [notice] Apache/2.2.11 (Ubuntu) PHP/5.3.2 configured -- resuming normal operations
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:20 2010] [alert] No active workers found... Apache is exiting!
Роберт Росс
источник
4
логи, пожалуйста! взгляните на '/var/logs/apache2/error.log' или другие файлы в том же каталоге.
Лаюетт
Ничего, журналы ничего не говорят об этом.
Роберт Росс
Просто чтобы убедиться, вы запускаете это как root или используете sudo? т.е. не обычный пользовательский аккаунт
Дэвид Рикман
Вы уверены, что ваша установка выполнена правильно? Введите, dpkg --configure -aчтобы убедиться, что все файлы были настроены правильно.
ℝaphink

Ответы:

3

В Linux это обычно происходит из-за высокого ThreadsPerChild + высокий или неограниченный ulimit -s.

В Linux размер стека по умолчанию для каждого потока равен значению ulimit -s или 8-10 мегабайт - для нормальной работы Apache требуется около 512 килобайт стекового пространства или меньше.

Это быстро превышает либо 32-битный размер адресного пространства с TPC около 200+, либо, если у вас есть ограничения системной памяти, вы также можете столкнуться с ними.

Установите ulimit -s 512 в вашем файле "envvars", поставляемом вместе с apachectl - обратите внимание, что ThreadStackSize здесь не помогает, потому что это устанавливает минимум.

covener
источник
2

Это новая установка или ранее она была стабильной и не запускалась?

Причиной может быть недостаток памяти, хотя в этом случае должно отображаться «(12) Невозможно выделить память: apr_thread_create: невозможно создать рабочий поток».

Скорее всего, вы превышаете настройку PTHREAD_THREADS_MAX в вашей ОС. Вы можете увеличить это или понизить ThreadsPerChild в Apache.

Скорее всего, вы используете дистрибутив «Worker» Apache, «prefork» может быть более подходящим, потому что он использует 1 поток на процесс, против «worker», который использует много потоков на процесс.

Источники:

iainlbc
источник
Спасибо! Переходя preforkрешил это для меня.
Феликс Фрэнк
1

Посмотрите логи, особенно error_log. Это должно помочь. Если это не поможет, попробуйте выполнить команду apache2:

strace -f -o output.txt /etc/init.d/apache2 start

strace будет отслеживать системные вызовы (флаг -f приказывает strace также следовать за дочерними процессами, а флаг -o записывает вывод в файл output.txt)

Марко Рамос
источник
[Sat May 01 14:45:18 2010] [warn] файл pid /var/run/apache2.pid перезаписан - нечистое завершение предыдущего запуска Apache? [Sat May 01 14:45:18 2010] [note] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 настроен - возобновление нормальной работы [Sat May 01 14:45:18 2010] [alert] (11) Ресурс временно недоступен: apr_thread_create: невозможно создать рабочий поток [Сб 01 мая 14:45:18 2010] [alert] (11) Ресурс временно недоступен: apr_thread_create: невозможно создать рабочий поток
Роберт Росс
что такое страйс выход? последние строки должны быть актуальны ...
Марко Рамос