#apache #fastcgi #mod-fcgid
#apache #fastcgi #мод-fcgid
Вопрос:
Я создал программу hello FastCGI на C
#include <fcgi_stdio.h>
#include <stdlib.h>
int count;
void initialize(void)
{
count=0;
}
int main(void)
{
initialize();
while (FCGI_Accept() >= 0)
{
printf("Content-type: text/htmlrn"
"rn"
"<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
"<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
"Request number %d running on host <i>%s</i>n",
count, getenv("REMOTE_HOST"));
}
return 1;
}
Затем я скомпилировал программу, используя «gcc -o hello1 hello1.c -lfcgi»
Это создало исполняемый файл «hello1» в моем домашнем каталоге (в Ubuntu) Когда я запустил этот файл, я получил вывод в виде:
Content-type: text/html
<title>FastCGI Hello! (C, fcgi_stdio library)</title><h1>FastCGI Hello! (C, fcgi_stdio library)</h1>Request number 1 running on host <i>(null)</i>
Я хочу запустить этот файл из Firefox. Поскольку я новичок в этом, я не имею ни малейшего представления об этом. Может ли кто-нибудь предоставить мне подробную информацию о том, какие шаги мне нужно выполнить, чтобы запустить ее через веб-браузер.
Я попытался ввести URL как «http://localhost/fcgi-bin/hello1 «после копирования файла ‘hello1» в /etc/ apache / fcgi-bin/hello1.fcgi, но он выдал ошибку 404
Ответ №1:
Вам все равно нужно будет включить .fcgi
расширение в URL:
http://localhost/fcgi-bin/hello1.fcgi
Комментарии:
1. Я также пробовал этот вариант, но получил ‘Запрошенный URL /fcgi-bin/hello1.fcgi не был найден на этом сервере. Я думаю, нам нужно выполнить некоторую настройку, но dnt не знает, что
2. Проверьте журнал ошибок Apache, там будет точно указано, какой путь сервер проверял для вашего файла. Является ли /fcgi-bin реальным каталогом на вашем сервере или конструкцией типа ScriptAlias / Alias? Возможно, вам потребуется настроить это в Apache, чтобы он знал, где искать.
3. да, это сработало. Спасибо. Но теперь вместо запуска fcgi-файла он просит меня сохранить его, поскольку это двоичный файл.
4. Тогда, скорее всего, Apache не сказали, что файлы .fcgi должны обрабатываться как двоичные файлы fcgi.
SetHandler fcgid-script
должно быть где-то в вашем разделе httpd.conf для каталога fcgi.5. Спасибо за помощь, проблема решена, я не производил ввод файлов fcgi в sites-enabled / 000-default. Нам нужно добавить следующие строки: <Каталог «/usr/lib/fcgi-bin»> Параметры AllowOverride None Нет порядка разрешить,запретить разрешить из всех </Directory>