Я получаю сообщение об ошибке 403 Access Denied от Apache каждый раз, когда пытаюсь получить доступ к файлу PHP. Файлы HTML и текстовые файлы работают нормально. Я играл со всеми возможными комбинациями разрешений для файлов PHP, которые я мог придумать, от 644 до 777. Ничего не меняет.
Я также играл с разрешениями на оболочку FCGI и родительскую папку. С помощью o + x (777, 775, 773, 771) я получаю это в браузере:
Доступ запрещен!
У вас нет разрешения на доступ к запрошенному объекту. Он либо защищен от чтения, либо не читается сервером.
… И это в журнале ошибок vhost:
клиент отклонен конфигурацией сервера: / srv / www / hostname / fcgid-bin / php-fcgid-wrapper
С o-x (776, 774, 772, 770 или ниже) я получаю это в браузере:
Запрещено
У вас нет разрешения на доступ к /fcgid-bin/php-fcgid-wrapper/index.php на этом сервере.
Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 403 Forbidden.
… И это в журнале:
(13) В доступе отказано: доступ к /fcgid-bin/php-fcgid-wrapper/index.php запрещен
Это действительно ошеломляет меня, видя, как моя установка работала нормально, пока я не начал получать это, и я не знаю, что я мог бы сделать, чтобы это изменить. /usr/bin/php-cgi
и оболочка нормально работают с одними и теми же входными файлами при прямом вызове.
Вот мой конфиг vhost:
<VirtualHost *:80>
ServerAdmin admin@hostname.com
DocumentRoot "/srv/www/hostname/public/"
ServerName hostname.com
ServerAlias www.hostname.com
SuexecUserGroup hostname hostname
ErrorLog "/srv/www/hostname/logs/error.log"
LogLevel debug
CustomLog "/srv/www/hostname/logs/access.log" combined
<Directory /srv/www/hostname/public>
Order allow,deny
Allow from all
</Directory>
# http://www.linode.com/forums/viewtopic.php?t=2982
<IfModule !mod_php5.c>
<IfModule !mod_php5_filter.c>
<IfModule !mod_php5_hooks.c>
<IfModule mod_actions.c>
<IfModule mod_alias.c>
<IfModule mod_mime.c>
<IfModule mod_fcgid.c>
AddHandler php-fcgi .php
Action php-fcgi /fcgid-bin/php-fcgid-wrapper
Alias /fcgid-bin/ /srv/www/hostname/fcgid-bin/
<Location /fcgid-bin/>
SetHandler fcgid-script
Options +ExecCGI
</Location>
ReWriteEngine On
ReWriteRule ^/fcgid-bin/[^/]*$ / [PT]
</IfModule>
</IfModule>
</IfModule>
</IfModule>
</IfModule>
</IfModule>
</IfModule>
</VirtualHost>
<Directory /srv/www/hostname/public>
Order allow,deny
Allow from all
</Directory>
Это не включает /srv/www/hostname/fcgid-bin/
; при условии, что нет Allow
применительно к нему в другом месте вашей конфигурации, это проблема. Вам нужно будет Allow
доступ к этому месту.
У меня была аналогичная ошибка, за исключением того, что моя была связана с отсутствием
Options ExecCGI
строка из каталога, в котором были мои скрипты (в подпапке виртуального сервера), поэтому файлы html загружались нормально, но файлы php выдавали 403 с.