Назад | Перейти на главную страницу

Сценарий Perl cgi отображается в виде обычного текста вместо выполнения

Прочитав и попробовав предложения от: Вот и Вот, Я все еще не могу заставить apache выполнить сценарий perl. Я использую macOS High Sierra и запускаю brew apache.

Скрипт отлично работает, если я выполняю с терминала, используя perl myscript.cgi. myscript.cgi является исполняемым и начинается с #!/usr/bin/perl линия. Я дважды проверил с which perl Что касается местоположения perl. Проблема в том, что он не выполняется при нажатии из браузера. В результате скрипт отображается в виде обычного текста.

Мой файл 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?