我试图设置FastCGI在Apache 2.4.6(CentOS)上使用PHP。
我正在按照docs逐字从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行, FcgidWrapper说权限被拒绝。
我在哪里可以指定应该允许Apache访问我的php-wrapper文件?
我有同样的问题,并HBruijn指出,Selinux是问题。
我跑了:
setenforce 0
然后我在/ etc / selinux / config中禁用它:
SELINUX=disabled