Назад | Перейти на главную страницу

В разрешении FcgidWrapper отказано

Я пытаюсь настроить FastCGI для работы с PHP на Apache 2.4.6 (CentOS).

Я дословно следую инструкциям из документов: https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

/etc/httpd/conf/httpd.conf:

...
<Directory "/var/www/mybin">
    Options all
    Order allow,deny
    Allow from all
</Directory>
FcgidMaxRequestsPerProcess 10000
Alias /phpapp/ /var/www/myphpapp/
<Location "/phpapp/">
    Options +ExecCGI
    AddHandler fcgid-script .php
    FcgidWrapper /var/www/mybin/php-wrapper .php
    Order allow,deny
    Allow from all
</Location>
...

ls -al /var/www/{,mybin,myphpapp} (обратите внимание на завивку 0777 на все необходимое)

/var/www/:
total 4
drwxr-xr-x.  6 root root   68 Sep 18 20:51 .
drwxr-xr-x. 20 root root 4096 Sep 18 01:04 ..
drwxr-xr-x.  4 root root   32 Sep 18 15:02 html
drwxrwxrwx.  2 root root   24 Sep 18 20:35 mybin
drwxrwxrwx.  2 root root   18 Sep 18 20:20 myphpapp

/var/www/mybin:
total 4
drwxrwxrwx. 2 root root 24 Sep 18 20:35 .
drwxr-xr-x. 6 root root 68 Sep 18 20:51 ..
-rwxrwxrwx. 1 root root 23 Sep 18 20:01 php-wrapper

/var/www/myphpapp:
total 4
drwxrwxrwx. 2 root root 18 Sep 18 20:20 .
drwxr-xr-x. 6 root root 68 Sep 18 20:51 ..
-rwxrwxrwx. 1 root root 19 Sep 18 20:03 a.php

systemctl start httpd не удается, так что давайте посмотрим, что не так с systemctl -l status httpd:

● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Sun 2016-09-18 20:53:46 EDT; 58s ago
         Docs: man:httpd(8)
                     man:apachectl(8)
    Process: 6963 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 6961 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 6961 (code=exited, status=1/FAILURE)

Sep 18 20:53:46 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Sep 18 20:53:46 localhost.localdomain httpd[6961]: AH00526: Syntax error on line 264 of /etc/httpd/conf/httpd.conf:
Sep 18 20:53:46 localhost.localdomain httpd[6961]: Wrapper /var/www/mybin/php-wrapper cannot be accessed: (13)Permission denied
Sep 18 20:53:46 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Sep 18 20:53:46 localhost.localdomain kill[6963]: kill: cannot find process ""
Sep 18 20:53:46 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
Sep 18 20:53:46 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
Sep 18 20:53:46 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
Sep 18 20:53:46 localhost.localdomain systemd[1]: httpd.service failed.

Он жалуется на строку 264, которая является строкой с FcgidWrapper, мол, в разрешении отказано.

Где я могу указать, что Apache должен иметь доступ к моему php-wrapper файл?

У меня была такая же проблема, и, как указал HBruijn, проблема была в Selinux.

Я побежал:

setenforce 0

Затем я отключил его в / etc / selinux / config:

SELINUX=disabled