|
|
|
Паранормальные глюки с GCC
|
|||
|---|---|---|---|
|
#18+
Добрый день, У меня есть CGI программа, написанная на C++, не делающая операций файлового ввода вывода, код которой приведен ниже. Как видите, все заголовки передаются, и никаких проблем с правами доступа физически быть не может. К тому же для исполняемого файла все права установлены в 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2005, 14:57 |
|
||
|
Паранормальные глюки с GCC
|
|||
|---|---|---|---|
|
#18+
кажется проблема не в gcc. какая система у тебя? когда и как ты выставляешь 777 для скомпилированного файла? и самое главное, возьми проблемную ситуацию, когда апач ругается, и запусти программу из консоли. если она выдаст тебе строку, значит проблема точно не в gcc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2005, 08:14 |
|
||
|
Паранормальные глюки с GCC
|
|||
|---|---|---|---|
|
#18+
Я думаю, просто Apache не имеет прав на запуск этой программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2005, 12:23 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=420&tid=2033882]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 283ms |

| 0 / 0 |
