Не знаю почему, но когда я пытаюсь запустить службу 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 был следующим:
Я собрал mod_fcgid из исходников, поместил его в каталог / etc / httpd / modules.
Я добавил LoadModule fcgid_module modules/mod_fcgid.so
к списку модулей
Я прокомментировал LoadModule cgi_module modules/mod_cgi.so
так как мне это не понадобится.
Я создал сценарий оболочки для php и поместил его в / var / www / cgi-bin:
Я создал обработчик PHP, указывающий на оболочку.
Затем я пытаюсь запустить службу 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
Я вижу, что там написано «File exits», но я повсюду искал лишние файлы с «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.
просто чтобы проверить SELinux
часть, попробуйте отключить ее и посмотрите, не в этом ли причина вашей проблемы:
[alexus@XXXXXXXXXX ~]$ getenforce
Enforcing
[alexus@XXXXXXXXXX ~]$ sudo setenforce 0
[alexus@XXXXXXXXXX ~]$ getenforce
Permissive
[alexus@XXXXXXXXXX ~]$
Кроме того, вы случайно не запускаете это как chroot? У меня была аналогичная проблема во времена FreeBSD, но она была связана с jail / chroot.