(13) Разрешение отклонено: доступ к /cgi -bin/test.cgi запрещен
Я впервые использую CGI-скрипты, но безуспешно. Я прочитал много учебных пособий и следил за потоками на разных форумах, но я не могу заставить их работать.
Я использую веб-сервер appache на машине Fedora 10.
У меня всегда проблема с
[Wed Oct 21 20:47:36 2009] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Wed Oct 21 20:47:36 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Oct 21 20:47:36 2009] [notice] Digest: generating secret for digest authentication ...
[Wed Oct 21 20:47:36 2009] [notice] Digest: done
[Wed Oct 21 20:47:36 2009] [notice] Apache/2.2.11 (Unix) DAV/2 PHP/5.2.9 mod_ssl/2.2.11 OpenSSL/0.9.8g configured -- resuming normal operations
Мне нужна помощь.
Вот как выглядит моя среда.
uname -a
Linux localhost.localdomain 2.6.27.5-117.fc10.i686 #1 SMP Tue Nov 18 12:19:59 EST 2008 i686 i686 i386 GNU/Linux
ls -l /var/www/cgi-bin/
total 36
-rwxrwxrwx 1 root root 106 2009-10-21 18:29 index.html
-rwxr-xr-x 1 root root 11089 2009-02-24 20:11 squidGuard.cgi
-rwxr-xr-x 1 root root 5720 2009-02-24 20:11 squidGuard-simple.cgi
-rwxr-xr-x 1 root root 5945 2009-02-24 20:11 squidGuard-simple-de.cgi
-rwxrwxrwx 1 root root 110 2009-10-21 17:38 test.cgi
apachectl -v
Server version: Apache/2.2.11 (Unix)
Server built: Mar 6 2009 09:12:25
perl -version
This is perl, v5.10.0 built for i386-linux-thread-multi
Copyright 1987-2007, Larry Wall
Мой script
cat test.cgi
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "Hello, world!\n";
Сообщение об ошибке я gen при попытке доступа к серверу веб-страниц " http://192.168.50.29/cgi-bin/test.cgi" выглядит следующим образом:
[Wed Oct 21 21:00:27 2009] [error] [client 192.168.50.69] (13)Permission denied: access to /cgi-bin/test.cgi denied
Я добавил строку:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
в/etc/httpd/conf/httpd.conf
Я просто не могу заставить его работать.
Кто-нибудь может мне помочь?
Ответы
Ответ 1
Проверьте свои разрешения os для test.cgi и убедитесь, что пользователь или группа, которую вы используете для запуска вашего apache, имеет доступ к чтению.
EDIT. Проблема связана с разрешениями, но не с разрешениями на чтение, поскольку вы используете SELinux, вам нужно беспокоиться о контексте вашего файла. Проверьте thread на форумах fedora, это объясняет немало вариантов решения вашей проблемы.
Ответ 2
1. ПЕРВАЯ ПРОВЕРЬТЕ HTTPD.CONF. FILE.Настройте каталог script следующим образом в httpd.conf.
Здесь вам нужно убедиться, что вы найдете правильный файл httpd.conf. Например, в моем Debian по умолчанию httpd.conf является /etc/apache 2/sites-avaialbe/default.
<Directory "dir_name">
Options All
AllowOverride All
Order allow,deny
Allow from all
<Directory>
ИЛИ вы можете просто использовать папку по умолчанию /cgi -bin.
2.Уставьте разрешение на выполнение для теста script.
chmod +x script_name
Ответ 3
проверьте свой fstab, если установленная файловая система имеет разрешение на выполнение
UUID=xxx-xxx-xxx-xx-xx /mnt/mountpoint ext4 rw,user,exec 0 0
важна часть exec
Ответ 4
SELinux предотвратил доступ Apache к cgi script в моем случае.
Быстрое n-грязное исправление, которое сработало для меня, это отключить SELinux:
vim /etc/sysconfig/selinux
set "SELINUX=disabled"
reboot