Не удается запустить службу httpd — fcgid не может создать разделяемую память

Не удается запустить службу httpd — fcgid не может создать разделяемую память

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

Конфигурация сервера:

OS: CentOS 5.10
PHP: 5.5.7
Apache: 2.2.3

Вот как я узнал, что происходит:

$ sudo service httpd start
Starting httpd:                                            [  OK  ]
$ sudo service httpd status
httpd dead but subsys locked

Поэтому я удалил файл subsys для httpd и попробовал снова, но снова ничего не вышло.

Мой процесс добавления fcgid был следующим:

  1. Я собрал mod_fcgid из исходного кода, поместил его в каталог /etc/httpd/modules.

  2. Я добавил LoadModule fcgid_module modules/mod_fcgid.soк списку модулей

  3. Я закомментировал, LoadModule cgi_module modules/mod_cgi.soтак как он мне не понадобится.

  4. Я создал скрипт-обертку для php и поместил его в /var/www/cgi-bin:

  5. Я создал обработчик для PHP, который указывает на обертку.

  6. Затем я пытаюсь запустить службу httpd

Ниже приведена ошибка, которую я получаю в /var/log/httpd/error_log:

[Mon Dec 16 12:18:26 2013] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Mon Dec 16 12:18:26 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Dec 16 12:18:26 2013] [notice] SSL FIPS mode disabled
[Mon Dec 16 12:18:26 2013] [notice] Digest: generating secret for digest authentication ...
[Mon Dec 16 12:18:26 2013] [notice] Digest: done
[Mon Dec 16 12:18:26 2013] [emerg] (17)File exists: mod_fcgid: Can't create shared memory for size 1200712 bytes

Я вижу, что там написано «Файл завершается», но я везде искал дополнительные файлы с «fcgi» в имени, и ничего не нашел.

Я не уверен, проблема ли это в правах доступа или что-то с SELinux, или, может быть, с suEXEC?

Буду признателен за любые указания, так как даже не знаю, с чего начать поиск.


Я попробовал еще раз, и на этот раз ошибка была немного иной:

[Mon Dec 16 12:50:23 2013] [emerg] (13)Permission denied: mod_fcgid: Can't create shared memory for size 1200712 bytes

Я не уверен, для какой папки или файла мне нужно изменить владельца.


Я установил SELinux на permissiveи это позволило процессу запуститься без проблем - но я не хочу оставлять SELinux как таковой. Я задам еще один вопрос о том, как разрешить Apache, fcgid и PHP работать вместе под SELinux.

решение1

Чтобы просто проверить SELinuxчасть, попробуйте отключить ее и посмотреть, является ли это причиной вашей проблемы:

[alexus@XXXXXXXXXX ~]$ getenforce 
Enforcing
[alexus@XXXXXXXXXX ~]$ sudo setenforce 0
[alexus@XXXXXXXXXX ~]$ getenforce 
Permissive
[alexus@XXXXXXXXXX ~]$ 

также, вы случайно не запускаете его как chroot? У меня была похожая проблема еще во времена FreeBSD, но это было связано с jail/chroot.

Связанный контент