Прочитав и попробовав предложения от: Вот и Вот, Я все еще не могу заставить 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?