0

次のように、リンクを構築するためにAjax(メソッドGET)でデータを送信しようとしています:/root/Site/test/index.php

/root/Site/test/index.php/section/option/value

しかし、サーバーから次のメッセージが表示されます。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /root/Site/test/index.php/section/option/value
on this server.</p>
</body></html>
Forbidden

私が読んだことに従って、testフォルダーとtoの後Siteの両方のアクセス許可を設定しましたsudo chmod -R g+rx(なしでも試しましたsudo)が、それでもエラーが発生します。どうして?!

4

4 に答える 4

1

以下を使用して:

sudo chmod -R g+rx

グループの読み取りおよび実行権限を付与するだけで、apache サービスはデーモンとして実行されます。apache を実行するユーザーはファイル所有者とは異なり、ファイルのグループに属していない可能性があります。

sudo chmod 755 filename

これを使用すると、誰でもファイルを読み取ることができ、所有者にのみ書き込み権限を与えることができます。

フォルダーについては、 -R を使用して同じことを行い、そのすべての内部ファイルに適用します。

sudo chmod -R 755 foldername

** アクセス許可 777 を割り当てないでください。ファイルが望ましくない変更に対して脆弱になるためです。あなたが 100% でな​​い限り、777 はセキュリティ上の問題です。

于 2012-10-25T19:44:11.740 に答える
1

また、httpd.conf ディレクトリ句に「Allow from all」があることを再確認してください。

<Directory "/home/domain/www">
        Options +Indexes FollowSymLinks +ExecCGI
        AllowOverride AuthConfig FileInfo
            Order allow,deny
        Allow from all
</Directory>
于 2012-10-25T19:59:17.963 に答える
0

サーバーが別のユーザーの下でファイルにアクセスしている可能性があります。Debian Linux インストールでは www-data:www-data です。代わりに chmod -R 777 または chmod -R a+rwx を指定してみてください。

もう 1 つのオプションは、httpd.conf を適切に構成していないことです。それも確認してください。

于 2012-10-25T19:45:15.030 に答える
0

あなたのパスは

 /root/Site/test/index.php/section/option/value
                 ^^^^^^^^^--- actual php script
                          ^^^^^^^^^^^^^^^^^^^^^-- extra stuff

Apache のAcceptPathInfo( docs ) オプションが有効になっていることを確認してください。これがないと、余分なビットは、PHP スクリプトの path_info のパラメーターとしてではなく、URL パスの一部として認識されます。

于 2012-10-25T21:18:15.313 に答える