Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с запуском CGI, Проблемы с запуском CGI 
:(
    Опции темы
lexluther
Дата 6.1.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 26.10.2004

Репутация: нет
Всего: нет



Добрый день!

У меня в папке cgi-bin (на моем сайте под Apache) вложена еще одна папка "cgi-bin/a/". Проблема в том, что двоичная cgi-программа, которая работала в папке cgi-bin не работает в папке "cgi-bin/a/" (выдается ошибка сервера 500). В чем может быть проблема? Причем я все права для папки "cgi-bin/a/" установил на 777.

С уважением!
PM MAIL   Вверх
Secandr
Дата 6.1.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 3
Всего: 39



права нужно ставить для файла!


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
lexluther
Дата 6.1.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 26.10.2004

Репутация: нет
Всего: нет



Содержимое error_log следующее (и так много раз):

[Thu Jan 06 16:32:22 2005] [error] [client 82.207.30.115] Premature end of script headers: TypePage.cgi

Если более точно, то данное CGI-приложение написано на C++ и интенсивно пишет и считывает файлы в папках вложенных в CGI-BIN. С правами проблем нет (и я просто чего-то не понимаю), поскольку они все установлены в 777. Операционная система - RadHat Enterprise 7.2. Тип хостинга – VPS (виртуальный сервер), разделение на основе технологии Virtuozzo.

Самое интересное это то, что в самой папке CGI-BIN программа выполняется вроде нормально, а во вложенных в CGI-BIN папках все вылетает с ошибкой 500. Я просто новичок в этих тонкостях с хостингом и может что-то элементарное не знаю, поскольку локально на моем компе и под FreeBSD и под Linux RadHat все работало просто идеально. Может там, что-то надо править в .htaccess? Если не секрет то подскажите, пожалуйста, что конкретно надо вписать или изменить, я с этим файлом в жизни никогда не работал. Или хотя бы, посоветуйте пожалуйста в чем искать данную ошибку.

С Уважением,
LeXLuTHeR

PM MAIL   Вверх
Secandr
Дата 7.1.2005, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 3
Всего: 39



значит у тебя проблема с заголовком скрипта!

Первой строкой долно идти:
Код

#!/usr/bin/perl

При этом если ты пишешь скрипт под виндой у тебя после слова perl появляется лишний символ \r (ASCII символ с кодом 10)
Его нужно убить, тогда заработает.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
lexluther
Дата 7.1.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 26.10.2004

Репутация: нет
Всего: нет



Добрый день,

Я проанализировал данную проблему на примере маленькой тестовой программы, не делающей операций ввода вывода, код которой приведен ниже. Как видите, все заголовки передаются, и никаких проблем с правами доступа физически быть не может. К тому же и для исполняемого файла все права установлены в 777. Может там есть еще какие-то права?

#include <stdio.h>
int main(int argc, char* argv[])
{
puts("Content-type:text/html;\n\n<br>START<br><br>");
return 0;
}

Сам механизм проблемы проявляется следующим образом:

1. Если я предварительно компилирую (g++ -o main.cgi main.cpp) данный код у себя на компьютере, то при последующем переносе данного (полностью скомпилированного) CGI-приложения на сервер программа исполняется идеально как из консоли (под SHH) так и из под Apache в виде CGI.

2. В случае же, если я компилирую аналогичный код на сервере (из исходника g++ -o main.cgi main.cpp, или же из предварительно скомпилированного локально на моем компьютере объектного файла), то при запуске данного приложения как CGI, Apache выдает вышеуказанную ошибку (500 и.т.д.). Если же я запускаю данное приложение в консоли (под SHH), то ошибки не происходит и приложение работает как ему и следует. Т.е. происходит что-то паранормальное. В консоли приложение выполняется, а в Apache нет.

ПО на сервере:
Apache/2.0.46 (Red Hat),
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24),
GNU ld version 2.14.90.0.4 20030523

Данный механизм я протестировал несколько десятков раз с разным исходным кодом (в том числе с объектными файлами) и поэтому могу дать 100% гарантию, что все именно так и происходит. Хотя объяснить логически суть подобной ошибки я не могу.

PS: Помнится что на заре моей работы с FreeBSD, я работал с версией данной системы 4.4 и у меня происходил следующий глюк: я компилировал тестовое простое (консольное на C++) приложение с помощью GCC и приложение работало, но только до следующей перезагрузки. После перезагрузки системы при попытке запустить данное консольное приложение мне выдавалась ошибка, связанная с какими то библиотеками. Я тогда плюнул и скачал компилятор под ADA95, поскольку одинаково хорошо программирую и на этом языке.

С уважением!
LeXLuTHeR
PM MAIL   Вверх
MuToGeN
Дата 11.1.2005, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 5
Всего: 32



Может, стоит усложнить логирование хода выполнения твоего CGI приложения? Твой апач случайно stderr в stdout не перенаправляет? Мысль, конечно, бредовая, но кто его знает...


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
lexluther
Дата 11.1.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 26.10.2004

Репутация: нет
Всего: нет



Всем спасибо проблему решил, оказывается там просто слишком обширные права стояли, а Аппач из-за этого мастдаил. С админом все решил.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0748 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.