1
我已經通過我自己配置我的Apache,並已在我的本地, 配置CGI,但我收到:錯誤消息「Forbidden您無權訪問此服務器上的/~[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'。 –
歡迎使用Stack Overflow和Perl標記。這是一個很好的第一個問題。 :)你的Perl代碼中有一個語法錯誤。 'str =「Hello World」'是錯誤的。變量需要一個'$'sigil,所以它需要是'$ str =「foo」'和'print $ str'。但這不是問題。 – simbabque