Привет! Вопрос: установлен Apache на FreeBSD. Perl скрипты запускаются токо из сgi-bin, пытался добавить AddHandler cgi-script .cgi .pl в httpd.conf - ни @#$а не работает, пишет "forbidden" при вызове скрипта из броузера, хотя файл c permissions 755. В чем дело и как это исправить? Заранее спасибо.
поставить на него пермишны 755 и попробовать запустить его из консоли (должен быть в системе перл - хотя если у тебя фрюха то там он точно есть)
дальше если все в порядке пробуй вызвать его из браузера - при возникновении ошибок - посмотри какая ошибка в error.log
Спасибо, все, вопрос снимается.
Дело в том, что у них стоит suexec, а скрипт в директории htdocs я создал как root, поэтому он и не давал ему выполнятся - каталог принадлежит useru а файл - root. Все теперь работает. Во, блин, 2 дня убил на эту @#$ню!!! :-)
Привет еще раз и спасибо за ответ, но что-то у меня не выходит. Вот кусок httpd.conf:
<Directory /vhosts/*>
Options +ExecCGI <------------- Добавил это
Options +Includes
</Directory>
AddHandler cgi-script .cgi .pl <------------ Добавил это тоже
NameVirtualHost 111.222.333.444
<VirtualHost 111.222.333.444>
ServerName abc.com
ServerAlias www.abc.com
ServerAdmin webmaster@abc.com
DocumentRoot /vhosts/abc.com/htdocs
User someuser
Group site1
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
CustomLog /vhosts/abc.com/logs/access.log combined
Errorlog /vhosts/abc.com/logs/error.log
DirectoryIndex index.html index.htm index.php index.php3 index.phtml ind
ex.shtml index.cgi index.wml
Include /etc/httpd/conf/vhosts/abc.com/access.conf
ScriptAlias /cgi-bin/ /vhosts/abc.com/cgi-bin/ <--------------- Вот это надо?
ScriptAlias /php-bin/ /etc/httpd/conf/vhosts/abc.com/php-bin/
Action php-script /php-bin/php
AddHandler php-script .php .php3 .phtml
Alias /webstat/ /vhosts/abc.com/webstat/
</VirtualHost>
После этого перезапустил apache.
Дальше, вот лог:
root@abc:/vhosts/abc.com# ls
.cshrc .mail_aliases .rhosts etc users
.login .mailrc .shrc htdocs webstat
.login_conf .profile cgi-bin logs
root@abc:/vhosts/abc.com# cd cgi-bin
root@abc:/vhosts/abc.com/cgi-bin# ls
test.cgi
root@abc:/vhosts/abc.com/cgi-bin# test.cgi
Content-type: text/html
Hello!
root@abc:/vhosts/abc.com/cgi-bin# cd ../htdocs
root@abc:/vhosts/abc.com/htdocs# ls
index.html test.cgi
root@abc:/vhosts/abc.com/htdocs# test.cgi
Content-type: text/html
Hello!
После этого запустил скрипты из cgi-bin и htdocs по очереди из броузера. Тот, который в cgi-bin - работает нормально. Тот, который в htdocs - выдает ошибку "Internal Server Error". Вот лог дальше, после запуска скриптов из броузера:
root@abc:/vhosts/abc.com/htdocs# cd ../logs
root@abc:/vhosts/abc.com/logs# tail -1 error.log
[Wed Jun 19 11:36:39 2002] [error] [client 111.111.222.222] Premature end of script headers: /vhosts/abc.com/htdocs/test.cgi
root@abc:/vhosts/abc.com/logs# exit
logout
Может-ли быть проблема связана с тем, что ето так называемый Virtual Dedicated Server, а не мой личный? То есть я, типа, root, но не совсем? Не должно быть, правильно, ведь я сам могу менять настройки apache, останавливать его и запускать снова? А в чем тогда дело?