Сценарий делает запрос GET на мой URL-адрес следующим образом:
http://mydomain.com/cgi-bin/uu_ini_status_audios.pl?tmp_sid=b742be1d131c4d32237a9f1fcdca659e&rnd_id=0.2363453360320319
Однако я сразу же получаю 404:
The requested URL /cgi-bin/uu_ini_status_audios.pl was not found on this server.
Но этот сценарий существует на моем сервере, я вижу файл! У него есть правильные разрешения (я дал ему 777, чтобы быть уверенным). Он также принадлежит моему пользователю apache и находится в группе apache.
Что мне не хватает ??
Спасибо за любую помощь!
Я думал, что это будет htaccess (переписать), но больше не думаю. Я попытался поместить туда файл index.php и попытаться получить к нему доступ через свой URL-адрес, но я даже не могу этого сделать! Я пробовал это:
http://mydoamin.com/cgi-bin/index.php
- та же ошибка 404! Я получаю это в моем журнале ошибок:
[Tue Sep 14 14:42:49 2010] [error] [client xx.xxx.xx.xxx] script not found or unable to stat: /var/www/vhosts/mydomain.com/cgi-bin
Файл Access_log:
xx.xxx.xx.xxx - - [14 / сен / 2010: 14: 48: 25 +0200] "GET /cgi-bin/index.php HTTP / 1.1" 404 475 "-" "Mozilla / 5.0 (Windows; U; Windows NT 6.0; en-US; rv: 1.9.2.9) Gecko / 20100824 Firefox / 3.6.9 (.NET CLR 3.5.30729) "
Мой файл htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^blog/ - [L]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]
RewriteRule ^search/(.*)/(.*)/(.*)/(.*) /search.php?searchfor=$1&sortby=$2&page=$3&searchterm=$4
RewriteRule ^confirmemail/(.*) /confirmemail.php?code=$1
RewriteRule ^resetpassword/(.*) /resetpassword.php?code=$1
RewriteRule ^resendconfirmation/(.*) /resendconfirmation.php?userid=$1
RewriteRule ^categories/ /categories.php
RewriteRule ^([-_~*a-zA-Z0-9]+)(\/)?$ /memberprofile.php?username=$1
RewriteRule ^browse/audios/(.*)/(.*)/(.*)/(.*) /audios.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^browse/categories/audios/(.*)/(.*)/(.*)/(.*) /categoryaudios.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^audios/(.*)/(.*) /playaudio.php?audioid=$1&title=$2
RewriteRule ^download/audio/(.*)/(.*) /downloadaudio.php?AUDIOID=$1&title=$2
RewriteRule ^members/audios/(.*)/(.*) /memberaudios.php?pid=$1&username=$2
RewriteRule ^syndicate/audios/(.*)/(.*) /syndicateaudios.php?filter=$1&title=$2
</IfModule>
[root@smydomain ~]# ls -la /var/www/vhosts/mydoamin.com/httpdocs/cgi-bin/
total 60
drwxr-xr-x 3 apache root 4096 Sep 14 14:37 .
drwxr-x--- 20 som psaserv 4096 Sep 14 14:40 ..
drwxr-xr-x 2 apache root 4096 Sep 7 03:01 configs
-rwxrwxrwx 1 apache root 4 Sep 14 14:37 index.php
-rwxrwxrwx 1 apache apache 6520 Sep 7 03:01 uu_ini_status_audios.pl
-rwxr-xr-x 1 apache root 3215 Sep 7 03:01 uu_lib_audios.pl
-rwxr-xr-x 1 apache root 30249 Sep 7 03:01 uu_upload_audios.pl
SuExec был для меня проблемой.
Отключение означает, что мои скрипты в cgi-bin могут работать. Но вы должны убедиться, что каталог и сценарии имеют одинаковые разрешения, т.е. 0755. Кроме того, каталог и сценарии должны принадлежать одному и тому же человеку.
Это были требования, чтобы мои скрипты работали! Я надеюсь, что это поможет кому-то.
В своем посте вы сказали, что не смогли найти /var/www/vhosts/mydomain.com/cgi-bin
; что происходит, когда ты бежишь ls -la /var/www/vhosts/mydomain.com/cgi-bin
?
Кроме того, я заметил, что он сказал, что не может cgi-bin
папка; ваше правило mod_rewrite перенаправляет все запросы от /var/www/vhosts/mydomain.com/cgi-bin/index.php
к /var/www/vhosts/mydomain.com/cgi-bin
ошибочно?
Обновите свой вопрос, если узнаете больше.
РЕДАКТИРОВАТЬ: Включите журнал mod_write установив следующее:
RewriteLog /path/to/where/logs/live
RewriteLogLevel 5
Это должно дать вам достаточно данных, чтобы увидеть, mod_rewrite
влияет на ваш запрос.
Я также видел ошибки, когда URL-адрес передавался в Firefox как 404. Передача того же URL-адреса wget
вернул 500 Internal Server Error и показал ошибки в файле журнала. Возможно, стоит попробовать wget
для всех, у кого есть эта проблема.
В моем случае это было результатом попытки включить файл в сценарий PHP из несуществующего каталога.