Apache выдает ошибку 400 на FastCGI VirtualHost - PullRequest
0 голосов
/ 21 декабря 2008

Apache выдает HTTP-ответ с кодом: 400 «Плохой запрос» без подробностей, когда я получаю доступ к странице, управляемой сценарием FastCGI.

  • Я установил модуль mod_fcgid, и он загружен и настроен в файлах конфигурации Apache
  • Я протестировал несколько скриптов FastCGI, все они запускаются при непосредственном выполнении.
  • Статические ресурсы обслуживаются надлежащим образом.
  • Apache пытается запустить скрипт, потому что он жалуется, когда я переписываю URL для несуществующего скрипта

Кто-нибудь знает, что не так с моим Apache Config?

<VirtualHost ip.ad.re.ss:80>
  ServerName   demo.domain.com:80 

  DocumentRoot /var/www/vhosts/domain.com/subdomains/demo/rails/public
  CustomLog  /var/www/vhosts/domain.com/statistics/logs/demo_access_log combined
  ErrorLog  /var/www/vhosts/domain.com/statistics/logs/demo_error_log
  LogLevel info
  Options +FollowSymLinks +ExecCGI -SymLinksIfOwnerMatch
  AddHandler fcgid-script .fcgi

  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</VirtualHost>

РЕДАКТИРОВАТЬ - Я проверил журналы mod_rewrite и URI корректно переписываются

Ответы [ 2 ]

0 голосов
/ 22 декабря 2008

Хорошо, еще одна вещь, чтобы попробовать.
http://httpd.apache.org/docs/2.2/mod/core.html#loglevel.

Установите уровень ведения журнала для отладки и убедитесь, что это не на рабочей машине, потому что он производит много выходных данных для каждого отдельного события (получить / поставить).

Я думаю, что в приведенном выше примере с FastCGI чего-то не хватает, но я признаю, что это было давно, так как я делал что-то кроме php или python fastcgi. На каком языке работает dispatch.fcgi? Можете ли вы выполнить его из командной строки и имеет ли Apache разрешение на выполнение файла? (sudo su apacheaccount).

Обновление: Знал, что вы что-то упустили: проверить -> http://fastcgi.coremail.cn/configuration.htm FCGIWrapper необходим, чтобы сообщить fast cgi, что использовать для выполнения файла dispatch.fcgi.

0 голосов
/ 21 декабря 2008

Попробуйте удалить условие перезаписи DOCUMENT_ROOT. Во-вторых, ознакомьтесь с директивами журнала mod_rewrite, они чрезвычайно информативны в отношении таких странных вопросов, как эта.

...