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 здесь не помогает, потому что это устанавливает минимум.


2

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

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

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

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

Источники:


Спасибо! Переходя 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: невозможно создать рабочий поток
— Роберт Росс

что такое страйс выход? последние строки должны быть актуальны ...
— Марко Рамос
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.