gpt4 book ai didi

linux - Apache2 运行 perl 脚本作为目录索引

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:59 26 4
gpt4 key购买 nike

当你访问https://device.my.server.com/reg时我想要它服务器运行/var/www/html/reg/registrar.cgi 这是一个 perl 脚本。现在它只是列出目录的内容。我知道该脚本有效并且为每个人设置了可执行位。服务器是 CentOS linux HTTPD 2.2.15。我不能使用 mod-redirect 或重写,我需要使用核心指令来执行此操作,就像我在下面尝试的那样。

<VirtualHost device.my.server.com:443>
DocumentRoot /var/www/html/reg
ServerName device.my.server.com
ErrorLog logs/device.my.server.com-error_log
CustomLog logs/device.my.server-access_log co
SSLEngine on
SSLCertificatekeyFile /etc/httpd/ssl/device.my.server.com.key
SSLCertificateFile /etc/httpd/ssl/device.my.server.com.crt
SSLCertificateChainFile /etc/httpd/ssl/chain.crt
<Directory /var/www/html/reg>
Options ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex registrar.cgi
Order allow,deny
Allow from all
#SetHandler cgi-script
</Directory>
</VirtualHost>

最佳答案

问题是您正在尝试访问 DocumentRoot你的VirtualHost像这样:

https://device.my.server.com/reg

当你应该像这样访问它时:

https://device.my.server.com/

如果您想使用以前的 URL,请更改您的 DocumentRoot/var/www/html .

还要确保在测试时使用了 VirtualHost 中指定的完整地址指令(即​​ https://device.my.server.com/ ,而不是 http://device.my.server.com/https://device/ )。

在我的测试中,以下配置执行 /var/www/html/test/foo.cgi当我访问 https://device.my.server.com/test (显然我已经编辑了主机名/域名):

<VirtualHost device.my.server.com:443>
DocumentRoot /var/www/html
ServerName device.my.server.com
SSLEngine on
SSLCertificateFile /path/to/cert
SSLCertificateKeyFile /path/to/key

<Directory /var/www/html/test>
Options ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex foo.cgi
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

您还可以考虑关闭索引作为额外的安全措施:

Options -Indexes

这将告诉 Apache 不要创建目录列表,即使 DirectoryIndex 指定的文件也是如此。丢失了。

关于linux - Apache2 运行 perl 脚本作为目录索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com