我对 xampp 还很陌生。我使用以下命令进行了全新 xampp 安装。
sudo su
cd /tmp
wget bit.ly/1cmyrUo -O xampp-32bit.run
chmod 777 ./xampp-32bit.run
sudo ./xampp-32bit.run
然后我制作了一个 perl 文件来检查我的 xampp 是否正常工作。以下是我的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
的帮助下在 localhost 中运行了我的http://localhost/cgi-bin/sample.pl
。我刚看到以下窗口。
我只找到与“新安全概念错误”和“访问虚拟主机问题”相关的答案。
我确实遇到了一个askubuntu 查询,与我的类似。它没有答案,但有一些评论。一条评论建议更改文件权限。它指示从这里。
它说要将目录权限更改为 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>
答案1
正如我在你的问题中看到的,你正在使用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>
允许和否定指令控制哪些主机可以或不能访问服务器的某个区域,要求测试经过身份验证的用户是否根据特定授权提供商和指定的限制获得授权。要求所有已授予表示无条件允许访问,让我们看看不仅仅是授权
更新读取配置文件后:
您的默认配置文件是正确的。问题在于 perl 脚本中的 shebang 错误。
尝试这个:
#!/usr/bin/perl
还:
chmod +x /opt/lampp/cgi-bin/yourScript.pl
这里是关于文件权限问题的有用链接
第二次更新
更改 http 内容标头:
print "Content-type:text/html\n";
这个头被 apache 读取。
您的 apache 以用户身份运行daemon
,请检查脚本路径中的每个目录是否可读。
答案2
尝试将文件的所有者和组更改为 apache,
在 ubuntu 中 apache 用户是 www-data,在终端中:
$ sudo chown -R www-data:www-data PUBLICFOLDER
并刷新浏览器。
答案3
答案4
$ cd /opt/lampp
$ sudo chmod 777 -R htdocs
然后编辑httpd.conf
(使用类似的方法sudoedit /opt/lampp/etc/httpd.conf
)并更改:
<Directory />
AllowOverride none
Require all denied
</Directory>
到:
<Directory "/opt/lampp/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>