Это очень старая проблема FastCGI, но я так и не нашел удовлетворительного ответа.
Поиск фразы "(13) отказано в разрешении fastcgi не может создать сервер" в Google покажет, что многие люди сталкиваются с этой проблемой в течение длительного времени.
Некоторые винят в этом selinux и предлагают выключить его (неприемлемое решение).
Другие люди думают, что это странная проблема с разрешениями на символические ссылки, и предлагают превратить каталог журналов Apache с символической ссылки в простой каталог. (неприемлемо, так как это связано с перемещением файлов журналов) См. Установка FastCGI.
Ниже приведена ужасная ошибка, обычно регистрируемая Apache.
[Wed Jun 14 22:09:34 2009] [notice] Apache/2.0.40> (Red Hat Linux) configured
-- resuming normal operations
[Wed Jun 14 22:09:35 2009] [crit] (13)Permission
denied: FastCGI: can't create server "/var/rt3/bin/mason_handler.fcgi": bind()
failed [/etc/httpd/logs/fastcgi/70d9a528c5892f2bf0c25e5a334bed81]
Надеясь serverfault может, наконец, дать окончательный ответ на эту озадачивающую и раздражающую проблему, которая годами мучила пользователей FastCGI.
Я чувствую себя неловко, применяя предлагаемые «лекарства», когда никто действительно не знает первопричину этой болезни. Надеюсь разобраться в этой тайне.
Я исправил эту проблему
chown apache:apache /etc/httpd/logs/
Из /usr/lib/errno.h
#define EACCES 13 /* Permission denied */
mod_fcgi
общается с потомками fastCGI через именованный канал. Apache создает канал перед порождением детей. Я бы предположил, что у apache нет разрешения на создание
/var/rt3/bin/mason_handler.fcgi
Чтобы проверить это, попробуйте
su - apache "touch /var/rt3/bin/mason_handler.fcgi"
Если это не удается, настройте разрешения файловой системы соответствующим образом, чтобы предоставить apache разрешение на создание файла в этом каталоге.
Для работы под SELinux попробуйте использовать mod_fcgid вместо mod_fastcgi. Я пробовал mod_fastcgi с SELinux на CentOS 5.6 в течение трех часов, поискал в гугле и ничего не добился. Это проблема, когда mod_fastcgi пытается создать канал / сокет для связи с приложениями fastcgi. Я пробовал каждый контекст разрешений / SELinux, который мог придумать, в папке / var / log / httpd / fastcgi (где mod_fastcgi создает именованный канал), но ничего не работало. Затем я переключился на mod_fcgid (скачал EL5 rpm с rpm.pbone.net), который, по-видимому, не использует тот же метод связи для общения с приложениями fastcgi, и все работало отлично, как если бы приложение fastcgi было обычным приложением cgi. ! Вам все равно необходимо установить правильные контексты SELinux для ваших файлов (см. Страницу руководства для httpd_selinux). Например. вы хотите выполнить chcon -t httpd_sys_script_exec_t fcgiapp, а также chcon -t httpd_sys_script_r [w | o | a] _t для любого файла, к которому ваш скрипт обращается / изменяет, и вам, возможно, придется установить некоторые из логических значений allow_httpd ... с помощью команды setsebool . И, конечно же, вы должны правильно установить обычные права доступа к файлам. Существуют веб-руководства, в которых описывается типичная конфигурация mod_fcgi.
Пользователь, от имени которого запущен процесс fastcgi, не имеет разрешений на привязку к любому сокету, к которому вы его просите. Для этого может быть любое количество причин, недостаточно информации для постановки полезного диагноза.