- Apache2 CGI-файл не запускается
- Как включить или отключить скрипты CGI в Apache
- 1. Включить модули CGI в Apache
- CentOS, RHEL & Fedora
- Ubuntu, Debian & LinuxMint
- 2. Отключить модули CGI в Apache
- CentOS, RHEL & Fedora
- Ubuntu, Debian & LinuxMint
- Apache CGI — ошибка 500
- ЛОР — последее, куда обращаюсь за советом.
- Так что, копайте, что там у вас в этом CGI.
- Выделенный сервер своими руками
- Навигация
- Облако тегов
- Мои контакты
- Партнеры
- Друзья
- Счетчики
- Настройка выполнения CGI скриптов в apache 2.0
- Добрый день. Подскажите, как
- Подскажите, в каком файле
- Никак не могу понять, как
- Размести в корне сервера файл
- делай так: 240-ая строка
- Самый верный и оптимальный
- «); printf( «TEST»); printf («
Apache2 CGI-файл не запускается
Браузер предлагает загрузить файл при переходе на http://cgi/cgi-bin/index.cgi.
Конфигурация из /etc/apache2/sites-available:
Буду благодарен за помощь.
Options ExecCGI разве не нужно в ?
А зачем у тебя CGI прямо в DocumentRoot? Если так хочется мешать CGI и HTML, то лучше сделай AddHandler cgi-script .cgi , а ExecCGI убери. Тогда файлы с суффиксом .cgi будут исполняться. Наверное.
Модуль mod_cgi загружен?
Создал отдельный каталог для CGI-скриптов — /var/www/cgi/cgi-bin, оставил для него ExecCGI.
Не нашел каталог modules в /etc/apache2/, зато там есть каталог mods-available, в котором есть cgi.load. Также я встретил такие строчки в apache2.conf:
Меня навело на одну мысль. В этих строках на конце «enabled*», вместо «available*», т.е. возможно как-то нужно включать модуль на подобии a2ensite для виртуальных хостов.
Действительно, оказалась такая программа и модуль включился. Сейчас поэкспериментирую с ScriptAlias директивой.
Выводится ошибка HTTP 500, буду разбирать логи Apache2.
Логи сообщили о том, что CGI-файл выводил неправильный HTTP-header. После редактирования программы все заработало.
Источник
Как включить или отключить скрипты CGI в Apache
Модули Apache mod_cgi / mod_cgid отвечают за обработку сценариев CGI. для рабочего и многопоточного MPM использует модуль cgi daemon «mod_cgid».
Этот учебник поможет вам включить или отключить скрипт CGI на сервере Apache в операционных системах Linux.
1. Включить модули CGI в Apache
Чтобы включить CGI на сервере Apache. вам необходимо загрузить файл модуля mod_cgi.so или mod_cgid.so в файл конфигурации Apache.
CentOS, RHEL & Fedora
В CentOS, Red Hat, Fedora и других дистрибутивах на основе rpm отредактируйте /etc/httpd/conf.modules.d/XX-cgi.conf.
Ubuntu, Debian & LinuxMint
В эти дистрибутивах используйте следующую команду для включения модуля CGI.
Эта команда создает мягкую ссылку на файл конфигурации модуля в каталог / etc / apache2 / mod-enabled /.
После включения модулей CGI в конфигурации Apache вам необходимо перезапустить.
2. Отключить модули CGI в Apache
Мы рекомендуем сохранять CGI отключенными на вашем сервере, пока они не будут нужны для вашего сервера.
Используйте приведенные ниже параметры, чтобы отключить скрипт cgi на сервере Apache.
CentOS, RHEL & Fedora
CentOS, Red Hat, Fedora и другие дистрибутивы на основе rpm – админы переименовывают файл конфигурации /etc/httpd/conf.modules.d/XX-cgi.conf, как показано ниже.
Ubuntu, Debian & LinuxMint
Ubuntu, Debian, LinuxMint – необходимо отключить модули CGI с помощью команды, аналогичной при включении.
После отключения модулей CGI вам необходимо перезапустить веб-сервер.
Источник
Apache CGI — ошибка 500
ЛОР — последее, куда обращаюсь за советом. Только если уже другие ресурсы бессильны. Виртуальный хост сервера Apache на Ubuntu выдает ошибку 500 при исполнении CGI скриптов. На localhost все скрипты работают.Вот лог ошибки:
ЛОР — последее, куда обращаюсь за советом.
Права на все файлы и папки стоят 777
Кто владелец /media/data/HTML/www/cgi/? Выложи конфиг куда-нибудь.
Premature end of script headers
Означает, что скрипт запустился, но либо упал с сегфолтом, либо вернул какую-то фигню.
Так что, копайте, что там у вас в этом CGI.
ЛОР — последее, куда обращаюсь за советом.
Это чтобы не задавать тут «хэлловорлдные» вопросы, которые, как правило, возникают у всех, кто только начинает что-то осваивать.
Так что, копайте, что там у вас в этом CGI.
скрипт рабочий 100%. Он работает в localhost, ели вы об этом
О, там же у тебя логи пишутся, посмотри в них 😉
А кто будет разрешать запуск CGI, Пушкин?
что посмотреть в логах то. вы меня запутали ps да, кстати владелец — рут
это я тоже пробовал — не помогает. может я куда то не туда пихаю этот код?
tail -f /var/log/httpd/*
Запускаем CGI и смотрим, что пишут логи.
это я тоже пробовал — не помогает. может я куда то не туда пихаю этот код?
Запросто. Кстати, доступ 777 с владельцем-рутом — нехорошо.
На каком ЯП CGI-то?
логи я приводил ведь.
Почему 777 под рутом не хорошо? на локальной машине вроде не страшно
Короче, пишите правильный конфиг. Перезапускайте апач. Приводите выхлоп.
куда надо прописать?
в логах пишет одно и тоже, нет смысла приводить
Ну, например, у меня так работает (/etc/httpd/conf/httpd.conf):
Кстати, а html-ки то виртуальный хост отдает?
эти же директивы будут аналогично работать в sites-available? хтмлки хост отдает и даже пхпшки, а вот cgi не хочет
755 на каталог и cgi-скрипты
FUUUUUUCK. что то с самими файлами на диске или с диском, потому что с переносом виртуального хоста на /home все заработало! изза чего это может быть.
Значит все-таки права криво раздал в апаче
Или /media/data подмонтирован с noexec =)
// в общем, телепаты вовсю работают!
ТС! Ну объясни же ты: зачем пихать корень веб-сервера в /media ?
Ты не в курсе, для чего эта директория?
Да нет, дело не в апаче совсем, как выяснилось. На диске запрещается исполнение файлов всем не только через апач или ещё что-то не так , я пока не разобрался. наверно что-то с монтированием
🙂 Опять мой libastral.so не подвел
/media/data монтируется через файл fstab вот так
Для сменных накопителей: флешек, USB-HDD и т.п.
Оно еще и на ntfs! Вот это жесть.
А что, есть принципиальная разница , куда кидать корень локального сервера для тестирования страничек? На нтфс он только, чтобы к файлам был доступ и через винду тоже. А куда тогда правильно монтировать жесткие диски? Где же тогда параметры прав при монтировании? rw? Буковка x к ним ничего не дает
Это ntfs! Так что можно забыть о нормальных правах доступа.
Как вариант, если уж так хочется «черезжопия», можно создать образ ext2-раздела на этом ntfs-разделе и держать файлы там (монтировать его через loop-device).
да нет, не хочется черезжопия. на корень сервака в нтфс я забил уже.
Источник
Выделенный сервер своими руками
Навигация
Облако тегов
Мои контакты
mail:
admin@dedicatesupport.com
Партнеры
Друзья
Счетчики
Настройка выполнения CGI скриптов в apache 2.0
Маленькая заметка по настройке выполнения CGI скриптов в apache.
Свободный перевод подробнейшего мануала.
Итак приступим.
CGI — (Common Gateway Interface) это механизм который дает возможность взаимодействия любой программы и веб сервера apache. То есть, грубо говоря, веб сервер может выполнить любую внешнюю программу и результаты ее работы выдать веб браузеру. Неважно на чем написана программа. Механизм универсален. Но для этого необходимо указать веб серверу, что эту программу нужно выполнить. Вот для этого и необходима настройка веб сервера.
Для настройки есть два механизма. Первый и наиболее часто используемый — с помощью директивы ScriptAlias. Синтаксис такой:
ScriptAlias /cgi-bin «/home/home_dir/cgi-bin»
то есть при наборе в брaузере адреса http://www.ваш_домен.com/cgi-bin/ будут выполняться с крипты из каталога /home/home_dir/cgi-bin.
Обычно одной этой директивы достаточно, для того чтобы скрипты начали исполняться.
Одной из часто появляющихся ошибок является ошибка номер 500. Внутренняя ошибка сервера. Частенько она возникает из-за недостаточных прав для исполнения внешней программы. chmod 755 Вам поможет 🙂
Вторым вариантом настройки выполнения скриптов является использование директив AddHandler и SetHandler.
Пример:
Все файлы из папки /var/www/mydir при обращении в браузере http://www.ваш_домен.com/mydir/ будут исполняться как cgi скрипты.
Еще один вариант. В каталоге много html файлов. И там же нужно разрешить выполнение cgi скриптов. Тут нам поможет директива AddHandler. Пример:
Вот и все. Помещаем файл в соотвествующую директорию веб сервера и вызываем его браузером. При успешной настройке в окне браузера выведется строка Hello, World.На этом закончу маленькую заметку по настройке выполнения cgi скриптов для веб сервера apache.
Добрый день. Подскажите, как
Подскажите, как запустить JavaScript с помощью CGI-скрипта?
Т.е. имеем http://www.ваш_домен.com/XXXX.js , но необходимо запустить XXXX.js через CGI-скрипт.
Требуется чистый запуск, без выдергивания значений или обработки данных.
Буду безмерно благодарен.
Подскажите, в каком файле
Подскажите, в каком файле нужно прописать эти директивы? Я поставил апач 2.2 и у меня файл httpd.conf пустой, пытался просто записать в него, но сервер не захотел запускаться Потом попытался записать в apache2.conf не могу найти подходящую строчку, и собственно после дополнения его сервер опять же не стартует.
Никак не могу понять, как
Никак не могу понять, как заставить Apache при обращении на, скажем, http://localhost выполнять http://localhost/cgi-bin/index.cgi?
Размести в корне сервера файл
Размести в корне сервера файл index.html следующего содержания:
Тупой редирект
делай так: 240-ая строка
делай так:
240-ая строка httpd.conf (в если там ничего не менял):
DirectoryIndex \cgi-bin\script.cgi
и будет тебе счастье =)
Самый верный и оптимальный
Самый верный и оптимальный вариант из всех предложенных
Источник
«);
printf( «TEST»);
printf («
\n»);
return 0;
>
|
| ||||||
|
|
|
|