Perl cgi 脚本显示为纯文本而不是执行

Perl cgi 脚本显示为纯文本而不是执行

阅读并尝试以下建议后:这里这里,我仍然无法让 apache 执行 perl 脚本。我在 macOS High Sierra 上并运行 brew apache。

如果我使用 执行终端中的脚本perl myscript.cgi,该脚本可以正常工作。该脚本myscript.cgi是可执行文件,并且以该行开头#!/usr/bin/perl。我仔细检查了which perlperl 的位置。问题是从浏览器点击时它不会执行。结果是以纯文本显示的脚本。

我的httpd.conf文件:

Include /usr/local/etc/httpd/original/httpd.conf

Listen 80
Listen 443

User _www
Group _www

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule ssl_module lib/httpd/modules/mod_ssl.so

<FilesMatch "\.php$">
    SetHandler "proxy:unix:/tmp/php-fpm.sock|fcgi://localhost:9000/"
</FilesMatch>

Include /usr/local/etc/httpd/vhosts/*.conf

在 /original/httpd.conf 中,我取消了以下内容的注释:

<IfModule !mpm_prefork_module> 
    LoadModule cgid_module lib/httpd/modules/mod_cgid.so
</IfModule> 
<IfModule mpm_prefork_module>
    LoadModule cgi_module lib/httpd/modules/mod_cgi.so
</IfModule>

在 /usr/local/etc/httpd/vhosts/myhost.conf 中

<VirtualHost *:443>

ServerName myhost.com

DocumentRoot /Users/pathTo/webroot/
<Directory /Users/pathTo/webroot/>
Require all granted
AddHandler cgi-script .cgi .pl
Options +FollowSymLinks +ExecCGI
</Directory>

SSLEngine on
SSLCertificateFile /usr/local/etc/httpd/certs/wildcard.crt
SSLCertificateKeyFile /usr/local/etc/httpd/certs/wildcard.key
</VirtualHost>

有人知道为什么 apache 仍然无法执行 perl 脚本吗?

相关内容