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
peとは'〜'の綱領?それはまた、apacheユーザによって読み込み可能かつ実行可能である必要があります。そうでなければ、 '〜/ Sites'に到達することはできません。 –
ようこそスタックオーバーフローとPerlタグ。これは非常に良い最初の質問です。 :)あなたのPerlコードに構文エラーがあります。 'str =" Hello World "'が間違っています。変数は '$' sigilを持つ必要があるので、 '$ str =" foo "'と 'print $ str'が必要です。それはここでも問題ではありません。 – simbabque