linux – 使用Apache / Httpd在CentOS 7上运行Perl CGI脚本
我的CGI Perl脚本CentOS 7运行不正常,它们显示为纯文本或我收到服务器错误.
我一直把我的脚本放到默认的/ var / www / cgi-bin目录中,没有运气. 我试图将CGI脚本放在/ var / www / html / another-dir中,但它们只是以纯文本形式出现. 解决方法
这是如何在CentOS 7上正确执行CGI Perl脚本.
我要离开这里,因为看起来互联网上的很多资源都没有结合这些步骤,让像我这样的人非常困惑. 总之,这是需要做的. >安装软件. 安装和配置软件 sudo yum update sudo yum install httpd sudo yum install perl perl-CGI sudo systemctl start httpd.service sudo systemctl enable httpd.service 创建测试CGI文件 即使完全遵循这些步骤,我也从来没有在/ var / www / cgi-bin中加载CGI脚本而无需修改httpd.conf中的Web根目录.相反,我决定只在另一个目录中激活CGI. 在我的服务器上,我希望web root html保存我的CGI文件.这是/var/www/html/hello.cgi #!/usr/bin/perl print "Content-type: text/htmlnn"; # This is mandatory. print "<h2>Hello world!</h2>"; 确保已加载CGI模块.在httpd.conf里面 您可以通过命令轻松检查. grep -n "LoadModule" /etc/httpd/conf/httpd.conf 我可以看到没有指定CGI模块,我通过以下方式确认它们存在于modules文件夹中: find /etc/httpd/modules/ -iname "*cgi*" 这是我追求的那个: /etc/httpd/modules/mod_cgi.so 让我们将它添加到/etc/httpd/conf/httpd.conf文件中: LoadModule cgi_module modules/mod_cgi.so 我相信你需要加载module in a different way in Ubuntu,记住这一点. 更改httpd.conf中的目录设置 在重新启动httpd之前,我们必须在/etc/httpd/conf/httpd.conf中更改一件事: <Directory "var/www/html"> Options +ExecCGI AddHandler cgi-script .cgi .pl </Directory> 根据许多Google搜索,您可能还必须修改httpd.conf文件的这一部分,使其指向上面“var / www / html”所在的目录: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 我没有修改我的,它似乎没有什么区别. 更改权限以允许CGI执行 这个让我陷入了困境!别忽略这个! 您需要告诉您的服务器允许这些CGI脚本作为程序执行. chmod 705 *.cgi 或者您可以定位单个CGI脚本. chmod 705 hello.cgi (有些人在internet上说chmod 755和777也可能有效.) 现在重启httpd如下: sudo systemctl restart httpd.service 此时,我的CGI脚本正确地呈现为HTML. 它们是从Web根目录提供的,如下所示:http://< IP> /hello.cgi 请随意添加可能有助于他人的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |