无法从别名运行Perl脚本

时间:2012-12-11 16:01:44

标签: perl alias apache

我在httpd.conf中创建了以下Alias:

alias /aliasedfolder /some/location/on/the/server/folder
<Location /aliasedfolder>
  AddHandler cgi-script .pl
  Options +FollowSymLinks +ExecCGI
  Order allow,deny
  Allow from all
  AllowOverride None
</Location>

问题是我可以在“别名文件夹”中查看图像,但是当我在那里运行perl脚本时,我得到一个“文件不存在”错误,例如/aliasedfolder/script.pl。 物理perl脚本存在于“/ some / location / on / the / server / folder”中。 我确保脚本有755的权限。

以下是perl脚本的内容:

#!/usr/bin/perl
use CGI qw/:standard/;
print "Content-type:text/html;\n\n";
print "Hello world";
1;

似乎有什么问题? 感谢

1 个答案:

答案 0 :(得分:0)

检查/ some / location / on / server /文件夹的所有权后,我发现所有者是“root”用户名,而我试图通过帐户(域名)访问该文件夹具有不同用户名的Apache,例如domain.com/aliasedfolder/script.pl

suexec机制正在阻止它作为安全功能。因此,我将/ some / location / on / / server /文件夹及其中的script.pl文件的所有权从“root”更改为我帐户的用户名和组,现在它正在运行。

这将阻止指向我的服务器的其他域访问此文件(script.pl),因为suexec阻止多个域(具有不同用户名)共享单个文件。

我可以完全禁用suexec机制,但出于安全考虑,我被建议不要这样做。

感谢所有试图提供帮助的人。