我在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;
似乎有什么问题? 感谢
答案 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机制,但出于安全考虑,我被建议不要这样做。
感谢所有试图提供帮助的人。