Маленькая заметка по настройке выполнения 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 и будет тебе счастье =)
Самый верный и оптимальный
Самый верный и оптимальный вариант из всех предложенных
Источник
Не работают cgi скрипты
как видите он не ставит бэкслеш после cgi и сразу пишет файл скрипта. что я неправильно настроил??
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Peterer, поищи в конфиге апача ScriptAlias. Эта строка должна выглядеть примерно так: ScriptAlias /cgi-bin/ «e:/home/localhost/cgi-bin/» Видимо где то здесь ты слэш и не поставил.
———- я не люблю людей
Всего записей: 7038 | Зарегистр. 24-02-2001 | Отправлено:16:38 26-04-2002
Добавлено проблема даже в большем (а может и в меньшем))) апач не воспринимает ни одного слеша после того, как вводится ссылка на директорию cgi, но не воспринимает только слеши, если поставитсть, к примеру, точку, то он ее видит, но точка это не слеш.
Всего записей: 11 | Зарегистр. 24-04-2002 | Отправлено:17:03 26-04-2002
script not found or unable to stat: F:/home/localhost/cgiadmincenter.cgi
как видите он не ставит бэкслеш после cgi и сразу пишет файл скрипта.
Я правильно поняла, скрипты у тебя лежат в папке /cgi-bin/ ?
Тогда это ошибка в путях.
Покажи мне строчку ScriptAlias
в твоем Апаче.
Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено:19:34 26-04-2002
Peterer
Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору с этим cgi у меня как-то удалось разобраться, но вот всплыла новая ошибка (эх, как трудно быть бестолковым))) скрипт не может запуститься. в браузере пишется вот такая ошибка:Error message:
скажите пожалуйста, что я на этот раз делаю не так??
(22503)The system cannot find the path specified. : couldn’t create child process: 22503: F:/home/localhost/cgi-bin/ikonboard/admincenter.cgi [Fri Apr 26 21:51:06 2002] [error] [client 127.0.0.1] (22503)The system cannot find the path specified. : couldn’t spawn child process: F:/home/localhost/cgi-bin/ikonboard/admincenter.cgi
Всего записей: 11 | Зарегистр. 24-04-2002 | Отправлено:21:51 26-04-2002
Great
Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Короче ошибка в самом файле admincenter.cgi. Насколько я понял, енто файл Админ-центра Форума? Ему для работы куча разных наворотов нужна — модули и т.д. Вообще child process — так называется дочерний процесс в Perl. Эта функция, насколько я знаю, плохо работает в Виндах или вообще не работает. А вот couldn.t spawn child process — так обычно пишется, когда Perl не может интерпретировать данный сценарий. Попробуй ка ты для начала проверить все адреса. Открываешь admincenter.cgi простым блокнотом и смотришь первую строчку — твой адрес в Интерпретатору. Обычно это или #!/usr/local/bun/perl или #!/usr/bin/perl А вообще, если в Перле и работе Апача не разбираешься — будет сложно. Лучше возьми все это, свали на сервак — и там в онлайне настраивай!
Всего записей: 36 | Зарегистр. 20-03-2002 | Отправлено:22:21 26-04-2002
Peterer
Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору в том-то и дело, что я настраиваю с сервера. могу конечно настраивать и с клиентской машины. установлен активный перл (последняя версия вчера взял с сайта)
Ставь перл в c:/usr/ (полный путь к перлу c:/usr/bin/perl)
в скриптах #!/usr/bin/perl потом идешь в папку с перлом и копируешь perl.exe в эту же папку с именем perl
———- Мы Баним с улыбкой 🙂 ™
Всего записей: 7528 | Зарегистр. 19-04-2001 | Отправлено:02:26 27-04-2002
Peterer
Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору прописал полный путь к перлу, скрипты начали запускаться.
но вот проблема. сделал все така, как сказано в инструкции нв Вашем форуме. а оно не пускает меня дальше админцентра. ввожу логин-пароль запускается перл и снова я но той же страничке и так логин с паролем можно вводить до бесконечности. в логах ни чего не пишется.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вариантов тут два: Не удалил исходный инсталляционный файл (install.cgi чтоли). Неправильно вводишь свои данные (пароль/логин).
Скорее всего наверное второе. Проверь там все. Не знабывай, что в паролях и логинах регистр очень важен.
Всего записей: 36 | Зарегистр. 20-03-2002 | Отправлено:19:49 27-04-2002
Peterer
Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору я еще раз проделал установку. то же самое. оно не принимает логин-пароль, а в логах ни чего не пишет.
Всего записей: 11 | Зарегистр. 24-04-2002 | Отправлено:23:45 28-04-2002