Проблемой является оболочка. Apache 4.2's тестирует сценарии CGI, записаны для bash
, и FreeBSD идет с оболочкой по умолчанию csh
. Сценарии не совместимы с csh
, таким образом, это перестало работать, и Apache плюется ошибкой.
Зафиксировать это, (1) установка bash
, и (2) добавляют хижину для определения местоположения удара.
Поскольку пространство пользователя FreeBSD явно разделяется от основы, установленный удар будет помещен в /usr/local/bin
вместо /bin
. Поэтому добавьте хижину как это.
#!/usr/local/bin
И затем, сценарий будет работать хорошо.
Вам также потребуются разрешения "другие читают":
> ls -l test-cgi
-r-x-----x 1 root wheel 779 Dec 11 2004 test-cgi
> curl -s -w "%{http_code}\n" -o /dev/null http://localhost:8080/cgi-bin/test-cgi
500
> chmod o+r test-cgi ; ls -l test-cgi
-r-x---r-x 1 root wheel 779 Dec 11 2004 test-cgi
> curl -s -w "%{http_code}\n" -o /dev/null http://localhost:8080/cgi-bin/test-cgi
200