web-dev-qa-db-ja.com

xamppのアクセス禁止403エラー

私はxamppが初めてです。次のコマンドを使用して、新しいxamppインストールを作成しました。

Sudo su
cd /tmp
wget bit.ly/1cmyrUo -O xampp-32bit.run
chmod 777 ./xampp-32bit.run
Sudo ./xampp-32bit.run

次に、xamppが機能するかどうかを確認するPerlファイルを作成しました。以下は私のsample.plファイルの内容です。

#!usr/bin/Perl
print "content-type:text/html\n";
print(header());
use CGI qw(:standard);
print(start_html());
print "Hello. I am ram";
print(end_html());

Perlファイルを/home/vicky/desktopから/opt/lampp/cgi-binにコピーした後。

次のコマンドでxamppを開始しました。

/opt/lampp/lampp start

次に、Mozillaブラウザーのsample.plを使用して、ローカルホストでhttp://localhost/cgi-bin/sample.plを実行しました。次のウィンドウが表示されました。 Error 403 window

「新しいセキュリティコンセプトのエラー」と「仮想ホストへのアクセスの問題」に関する回答のみが見つかりました。

askubuntu query に遭遇しました。これは私の入札と似ています。回答はありませんでしたが、コメントがいくつかありました。 1つのコメントは、ファイルのアクセス許可を変更することを提案しました。 here からヘルプを取得するよう指示されました。

この種の問題を解決するために、ディレクトリパーミッションを755に、ファイルパーミッションを644に変更すると言われています。それをしようとすると、cgi-binディレクトリにはすでに755のアクセス許可があり、sample.plには644のアクセス許可があることがわかりました。現在、解決策はありません。


PostScript:/ opt/lampp/Apache2/conf/httpd.confファイルのコンテンツを添付しました。これが回答提供者が私の問題を完全に理解するのに役立つことを願っています。

Alias /bitnami/ "/opt/lampp/Apache2/htdocs/"
Alias /bitnami "/opt/lampp/Apache2/htdocs"

<Directory "/opt/lampp/Apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory> 
2
Ramvignesh

あなたの質問でわかるように、あなたはApache 2.4.7を使用していますが、httpd.confはApacheを使用しています2.2ディレクティブ。

Apache 2.4 マニュアルによると:

アクセス制御

2.2では、クライアントのホスト名、IPアドレス、およびクライアントリクエストの他の特性に基づいたアクセス制御は、指令Order、Allow、Deny、およびSatisfyを使用して行われました。

2.4では、このようなアクセス制御は、新しいモジュールmod_authz_Hostを使用して、他の承認チェックと同じ方法で行われます。古い構成との互換性のために、新しいモジュールmod_access_compatが提供されていますが、古いアクセス制御イディオムは新しい認証メカニズムに置き換える必要があります。

この変更を試してください:

<Directory "/opt/lampp/Apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory> 

Allowおよびdenyディレクティブは、アクセスできるホストまたはアクセスできないホストを制御しますサーバーの領域、Requireは、認証されたユーザーが特定の承認プロバイダーおよび指定された制限に従って承認されているかどうかをテストします。 すべての許可が必要は、アクセスが無条件に許可されることを意味します。 単なる許可を超えて

設定ファイルを読み込んだ後に更新

デフォルトの設定ファイルは正しいです。問題は、PerlスクリプトのShebangの誤りです。

これを試して:

  #!/usr/bin/Perl

また:

  chmod +x /opt/lampp/cgi-bin/yourScript.pl

ここ はファイル許可の問題に関する便利なリンクです

2回目の更新

HTTPコンテンツヘッダーの変更:

  print "Content-type:text/html\n";

このヘッダーはApacheによって読み取られます。

Apacheはdaemonユーザーとして実行されています。スクリプトパス内の各ディレクトリが読み取り可能かどうかを確認してください。

2
Lety

ファイルの所有者とグループをApacheに変更してみてください。

Ubuntuでは、Apacheユーザーは端末でwww-dataです。

$ Sudo chown -R www-data:www-data PUBLICFOLDER

そして、ブラウザを更新します。

0
elgastelum