PHPファイルにアクセスしようとすると、Apacheから403 AccessDeniedエラーが発生します。 HTMLファイルとテキストファイルは正常に機能します。 644から777まで、考えられるPHPファイルで考えられるすべてのアクセス許可の組み合わせで遊んだことがあります。何も変更されません。
また、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を使用してリクエストを処理しようとしたときに、403Forbiddenエラーが発生しました。
…そしてこれはログにあります:
(13)許可が拒否されました:/fcgid-bin/php-fcgid-wrapper/index.phpへのアクセスが拒否されました
これを取得し始めるまでセットアップが正常に機能していて、それを変更するために何ができたのかわからないので、これは本当に頭がおかしくなります。 /usr/bin/php-cgi
とラッパーはどちらも、直接呼び出された場合、まったく同じ入力ファイルで正常に機能します。
これが私の仮想ホスト設定です:
<VirtualHost *:80>
ServerAdmin [email protected]
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を提供しました。