2016-07-26 20 views
1

私は自分で自分のApacheの設定していると私はlocalhost上でCGIを設定している、 私は受け取っ:禁断の"禁止されています"というエラーメッセージこのサーバーの/〜[uname] /***.cgiにアクセスする権限がありません。

をあなたがこのサーバー上/[username/**.cgiにアクセスする権限がありません。

マイのhttp.conf(/etc/apache2/httpd.conf)

Before: #LoadModule userdir_module libexec/apache2/mod_userdir.so 
After: LoadModule userdir_module libexec/apache2/mod_userdir.so 

Before: #Include /private/etc/apache2/extra/httpd-userdir.conf 
After: Include /private/etc/apache2/extra/httpd-userdir.conf 

Before: #AddHandler cgi-script .cgi 
After: AddHandler cgi-script .cgi .ru .pl 

マイ[ユーザ名]の.conf(の/ etc/apache2の/ユーザ/ [ユーザ名]の.conf)

<Directory "/Users/[username]/Sites/"> 
    AllowOverride All 
    Options Indexes FollowSymLinks MultiViews +ExecCGI 
    AddHandler cgi-script .cgi 
    Require all granted 
</Directory> 

マイCGIファイル(ユーザ/ [ユーザ名] /サイト/ ** CGI。)

#!/usr/bin/perl                      
print "Content-Type: text/html \n\n" 
str = "Hello World" 
print str 
print "\n" 

私のApacheのバージョン:

Server version: Apache/2.4.18 (Unix) 

そして、私は、このコマンドを試してみました:

$ sudo chmod 755 ~/Sites 
$ sudo chmod 755 ~/Sites/**.cgi 
+0

peとは'〜'の綱領?それはまた、apacheユーザによって読み込み可能かつ実行可能である必要があります。そうでなければ、 '〜/ Sites'に到達することはできません。 –

+0

ようこそスタックオーバーフローとPerlタグ。これは非常に良い最初の質問です。 :)あなたのPerlコードに構文エラーがあります。 'str =" Hello World "'が間違っています。変数は '$' sigilを持つ必要があるので、 '$ str =" foo "'と 'print $ str'が必要です。それはここでも問題ではありません。 – simbabque

答えて

0

最初の行はなければなりません:!

ます。#/ usr/bin/perlの-WT

追加この2つのフラグ(-wT)は最後に

関連する問題