Как настроить cgi bin

Настройка, установка CGI скрипта

Чтобы настроить скрипт для работы на Вашем сайте, нужно прежде всего иметь некоторые основные данные.

Редактирование скриптa

Чтобы настроить скрипт для работы на Вашем сайте, нужно прежде всего иметь некоторые основные данные. Вы можете узнать их у Вашего провайдера, либо если Вы используете публичный сервер — в технической информации этого сервера:

Полный путь к программе Perl на сервере. Этот параметр вставляется в первую строку каждого скрипта. Обычно используются следующие:

Полный путь к файлам Ваших страниц на сервере. Вы можете также увидеть этот путь в строке «Location» Вашего FTP клиента. Пример для страницы которую Вы читаете:

Полный путь к почтовой программе сервера. Этот параметр хотя и не основной, но без него скрипт не сможет отправлять E-Mail. Пример для этого сервера:

Имея эти данные можно приступать к редактированию скриптов.

Сначала откройте все файлы скрипта в редакторе (любой текстовый редактор, например в «блокноте»). Затем найдите файл с инструкцией по настройке. Это может быть файл Readme или Setup, либо инструкция находится непосредственно в одном из .pl .cgi файлов. В инструкции указано какие файлы требуют редактирования и какие параметры нужно изменить. Даже если в инструкции не указана необходимость редактирования каких-либо файлов, все равно откройте и проверьте их по крайней мере на наличие или отсутствие первой строки с указанием пути к Perl. Все таки предлагаемые скрипты БЕСПЛАТНЫ, и в начале каждого скрипта автор предупреждает, что не несет ответственности за его работоспособность, поэтому бывают случаи когда автор забывает указать необходимость редактирования какого-либо файла.

Затем установите правильные значения указанных в инструкции параметров: полный путь к указанным файлам, URL указанных файлов, путь к почтовой программе и т.д. Если Вы указываете путь к каталогу, то обращайте внимание на наличие или отсутствие знака «/» в конце пути — ориентируйтесь по приведенному примеру автора программы. Обязательно проверьте внимательно все файлы на необходимость изменения параметров. В HTML файлах обычно необходимо исправить только URL скрипта.

Кроме установки основных параметров, Вам скорей всего необходимо будет изменить другие параметры, относящиеся к конфигурации скрипта, например Ваш E-Mail, адрес основной страницы сайта, количество записей в базе данных, и т.п.

Установка скриптa на сервере

С помощью FTP клиента перекачайте файлы скрипта на сервер. При этом создайте необходимые директории. Какие необходимо создать, и какие файлы в какой директории должны находиться можно прочитать в инструкции. Kогда Вы распаковываете только что скачанный архив со скриптом, расположение файлов имеет скорей всего ту же структуру, которая должна быть и на сервере.

Обычно скрипты со всеми директориями закачиваются в папку под названием CGI-BIN. Если в Вашем корневом каталоге нет такой папки, то обязательно создайте ее, и установите параметр CHMOD=755. Установка параметра CHMOD должна быть предусмотрена Вашим FTP-клиентом.

Теперь необходимо установить необходимый CHMOD для каждого файла скрипта на сервере. Параметры CHMOD для файлов указаны в инструкции. При этом следует обратить внимание, что правильный CHMOD необходимо установить и для созданных Вами директорий. Если в инструкции их параметр не указан, то скорей всего предполагается CHMOD=755. Такой же параметр обычно имеют .pl и .cgi файлы. По установке CHMOD остальных файлов строго следуйте инструкции.

Неправильный параметр CHMOD для файла приведет к неработоспособности скрипта.

Отладка скрипта

Когда все параметры установлены и скрипт установлен на сервере, необходимо проверить его работоспособность. Как запускать работу скрипта Вы найдете в инструкции, если это непонятно. Если все параметры установлены правильно, скрипт работает сразу. При этом проверьте все функции работы скрипта какие только возможны.

Если сервер показывает ошибку при выполнении скрипта, то проверьте еще все установленные параметры. Проверьте правильность всех адресов, возможно скрипт не может обнаружить какой-то файл, проверьте грамматику установленных параметров (сравнив с авторской), установку CHMOD. Если Вы изменяли конфигурацию скрипта и вводили какой либо текст, то обратите внимание на то, что например перед знаками @ и » необходимо ставить (если об обратном не указал автор).

Читайте также:  Куда не устраиваться работать

Источник

Установка и настройка Apache сервера

В этой статье расказано как установить и настроить Apache-сервер на стандартный домашний компьютер, работающий под управлением Windows, чтобы на нём можно было заняться разработкой и написанием CGI-программ. Выполнив все приведённые здесь этапы, вы сможете запускать и проверять на своем компьютере все программы, представленные на этом сайте в качестве примеров.

1. Скачайте Web-сервер Apache

Сервер Apache вы можете загрузить с узла компании по адресу http://www.apache.org. Щелкните на ссылке с именем download и выберите самую повую версия сервера для платформы Win32. Имя файла будет скорее всего вроде apache_1_3_9_win32.exe.

2. Установите Web-сервер Apache

После того как пакет установки загружен, вам следует установить программу. Сервер Apache использует стандартную процедуру установки, поэтому вам нужно лишь дважды щелкнуть на файле пакета установки, принять условия лицензии, указать папку для программы и выбрать тип установки.

Рекомендуем установить сервер так (шесть шагов):

  1. Определитесь с директорией, в которую Вы будете устанавливать Apache. Все дальнейшие рассуждения основаны на том, что Вы выбрали для этой цели такой каталог: f:usrlocalapache Если диска F: у Вас нет, или если Вы не хотите его захламлять, советуем сделать одно из трех:
    1. Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например, с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с такими файлами.
    2. Сделайте виртуальный диск F:. Для этого создайте где-нибудь на любом диске директорию, которая в будущем будет являться корневой для диска F:. Предположим, Вы выбрали C:INTERNET. Далее, в начале файла c:autoexec.bat пропишите такую строку:

    и перезагрузите компьютер. У вас должен появиться виртуальный пустой диск F:.

    ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в результате которой иногда subst-пути «сами по себе» преобразуются в абсолютные. То есть, например, иногда в рассмотренном выше примере команды

    (а точнее, команда dir в своем заголовке) ошибочно выведут, что текущая директория C: (а не F:, как это должно быть). Указанная ошибка чаще всего проявляется в неработоспособности Perl-транслятора. Так что лично мы не рекомендуем Вам использовать subst. Вместо этого воспользуйтесь пунктом 1.

  2. Наконец, Вы можете всего этого не делать и поставить Apache на любой другой диск, только тогда Вам придется немного тяжелее при выполнении всех остальных действий. Нужно будет все указываемые пути заменять на Ваши собственные, а это крайне неприятно. Еще раз настоятельно рекомендуем воспользоваться диском F:.

Рекомендуем все же разместить Apache в указанном в начале каталоге, так как он максимально соответствует каталогу для реального Web-сервера Интернета. Ведь чем ближе в плане конфигурации мы будем к такому серверу, тем лучше и эффективнее сможем работать.

  • Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes, а затем — кнопку Next.
  • Теперь нажмите Browse. Вручную задайте директорию для установки: f:usrlocalapache и нажмите кнопку OK.
  • Выберите тип установки — Сustom и уберите флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта.
  • Нажмите Next и подождите, пока будут копироваться файлы Apache.
  • На запрос о перезагрузке компьютера ответьте «Перезагрузить».
  • Поздравляем — Apache установлен! Теперь самое неприятное — его настройка.

    Источник

    CGI Apache настройка отдачи cgi скриптов

    Потребуется написать простейший CGI скрипт — сделаем это на bash, также нужно активировать соответствующий модуль Apache.

    Прежде всего приводим конфигурационный файл дефолтного виртуального хоста apache2 в соответствие приведенному ниже образцу

    ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog $/error.log
    CustomLog $/access.log combined

    ScriptAlias /cgi-bin/ /var/www/cgi-bin/

    Options +Indexes
    Options +ExecCGI
    AddHandler cgi-script .cgi

    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

    Опционально — в /etc/hosts добавляем строку, согласно которой при обращении к www.example.com будет задействоваться вирт. хост на локальной машине

    127.0.01 www.example.com

    Включаем модуль веб-сервера и перезапускаем сервер

    Создаем каталог, в котором будут размещаться скрипты и переходим в него

    Далее нужно написать какой-то скрипт. Пусть он выводит слово hello и актуальное время обращения к скрипту

    #!/bin/bash
    echo Content-type: text/plain
    echo «»

    echo «hello»

    Как любой bash скрипт он должен быть исполняемым

    Настройка CGI Apache на этом завершена — теперь в браузере достаточно обратиться по адресу localhost/cgi-bin/script.cgi чтобы увидеть результат.

    Поскольку ранее в /etc/hosts добавили нужное правило тот же вывод можно получить обратившись к www.example.com/cgi-bin/script.cgi

    CGI скрипты требуют прав на исполнение и небезопасны, если скрипт написан плохо ему можно передать любые параметры и получить доступ к хост системе сервера. CGI в настоящее время используется ограниченно, в основном для административных скриптов, для сайтов применяется более безопасный способ исполнения — fastcgi

    Источник

    Как настроить Apache 2 для запуска сценариев Perl CGI?

    Я хотел бы настроить Apache 2 на Kubuntu выполнять сценарии Perl CGI. Я попробовал несколько шагов, которые я наткнулся на Google, но ничего не получается.

    Как правильно достичь этого?

    Решение

    Этот пост предназначен для спасения людей, которые страдают от * неспособности правильно настроить Apache2 для Perl в Ubuntu. (Конфигурации системы, специфичные для вашего компьютера с Linux, будут указаны в квадратных скобках, например [this]).

    Возможный результат неправильной настройки Apache 2:

    1. Браузер пытается загрузить файл .pl вместо выполнения и выдачи результата.
    2. Запрещено.
    3. Внутренняя ошибка сервера.

    Если кто-либо выполняет действия, описанные ниже, с разумным интеллектом, он / она может пройти через ошибки, упомянутые выше.

    Перед началом шагов. Идти к /etc/hosts файл и добавьте IP-адрес / имя-домена`, например:

    Шаг 1: Установите apache2
    Шаг 2: Установите mod_perl
    Шаг 3: настроить apache2

    открыть sites-available/default и добавьте следующее,

    Шаг 4:

    Добавьте следующие строки в ваш /etc/apache2/apache2.conf файл.

    Шаг 5:

    Очень важно, или, по крайней мере, я так думаю, только после выполнения этого шага я получил его на работу.

    AddHandler cgi-script .cgi .pl

    Шаг 6

    Очень важно, или, по крайней мере, я так думаю, только после выполнения этого шага я получил его на работу.

    Добавьте следующее к вам /etc/apache2/sites-enabled/000-default файл

    Шаг 7:

    Теперь добавьте ваш Perl-скрипт как test.pl в то место, где вы упоминали ранее на шаге 3 как [Путь-где-вы-хотите-ваш-.pl-и-.cgi-файлы].

    Дайте разрешения .pl использование файла chmod а затем введите webaddress/cgi-bin/test.pl в адресной строке браузера, вы идете, вы получили это.

    (Теперь, многие вещи были бы излишними в этом посте. Пожалуйста, игнорируйте это.)

    Другие решения

    Вам нужно взглянуть на ваш журнал ошибок Apache, чтобы увидеть, что такое «внутренняя ошибка сервера». По моему опыту, четыре наиболее вероятных случая:

    Программа CGI находится в каталоге, в котором не разрешено выполнение CGI. Решение: Добавьте ExecCGI опцию к этому каталогу через httpd.conf или файл .htaccess.

    Apache настроен только для запуска CGI из выделенного cgi-bin каталог. Решение: переместите туда программу CGI или добавьте AddHandler cgi-script .cgi заявление в httpd.conf.

    Программа CGI не установлена ​​как исполняемая. Решение (при условии операционной системы типа * nix): chmod +x my_prog.cgi

    Программа CGI выходит без отправки заголовков. Решение: Запустите программу из командной строки и убедитесь, что: а) она действительно запускается, а не умирает с ошибкой во время компиляции, и б) генерирует правильный вывод, который должен включать, как минимум, Content-Type заголовок и пустая строка после последнего заголовка.

    (Поиск в Google привел меня к этому вопросу, хотя я не просил Perl)

    У меня была проблема с запуском скриптов (хотя bash не perl). Apache имел конфиг ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ однако журнал ошибок Apache показал File does not exist: /var/www/cgi-bin/test.html ,

    Пробовал ставить скрипт в оба /usr/lib/cgi-bin/ а также /var/www/cgi-bin/ но ни один не работал.

    После длительного сеанса поиска в Google мне это удалось
    sudo a2enmod cgi и все стало на свои места с помощью /usr/lib/cgi-bin/ ,

    По состоянию на Ubuntu 12.04 (Точный Pangolin) (и, возможно, релиз или два раньше) просто установка apache2 а также mod-perl через Synaptic и размещение ваших CGI-скриптов в / usr / lib / cgi-bin — это действительно все, что вам нужно сделать.

    Если вы успешно установили веб-сервер Apache и Perl, пожалуйста, выполните следующие шаги для запуска сценария cgi с использованием perl в системах Ubuntu.

    Перед началом работы со сценариями CGI необходимо настроить сервер apache таким образом, чтобы он распознавал каталог CGI (в котором сохранены программы cgi) и разрешал выполнение программ в этом каталоге.

    В Ubuntu каталог cgi-bin обычно находится в пути / usr / lib, если его нет, создайте каталог cgi-bin с помощью следующей команды.CGI-BIN должен быть на этом пути сам.

    Выполните следующую команду, чтобы проверить состояние разрешений каталога.

    Проверьте, выглядит ли разрешение как «drwxr-xr-x 2 root root 4096 2011-11-23 09:08 cgi- bin», если да, перейдите к шагу 3.

    Если нет, введите следующую команду, чтобы обеспечить соответствующее разрешение для нашего каталога cgi-bin.

    Дайте разрешение на выполнение директории cgi-bin

    Таким образом, ваш каталог cgi-bin готов к работе. Здесь вы помещаете все свои сценарии cgi для выполнения. Нашим следующим шагом будет настройка apache для распознавания каталога cgi-bin и разрешения выполнения всех программ в нем как сценариев cgi.

    Настройка Apache для запуска CGI-скрипта с использованием perl

    Директива должна быть добавлена ​​в файл конфигурации сервера Apache, чтобы он знал наличие CGI и расположение его каталогов. Сначала перейдите в папку с конфигурационным файлом apache и откройте его в вашем любимом текстовом редакторе.

    Скопируйте приведенный ниже контент в файл 000-default.conf между строкой кодов «DocumentRoot / var / www / html /» и «ErrorLog $ /error.log»

    Перезапустите сервер Apache с помощью следующего кода

    Теперь нам нужно включить модуль cgi, который по умолчанию присутствует в более новых версиях ubuntu.

    На этом этапе мы можем перезагрузить веб-сервер apache, чтобы он снова считывал файлы конфигурации.

    Конфигурационная часть apache завершена, теперь давайте проверим ее с помощью примера программы cgi perl.

    Тестирование это

    Перейдите в каталог cgi-bin и создайте файл cgi с расширением .pl

    Скопируйте следующий код в test.pl и сохраните его.

    Теперь дайте разрешение на выполнение test.pl.

    Теперь откройте этот файл в вашем веб-браузере. Http: //Localhost/cgi-bin/test.pl

    Если вы видите вывод «CGI работает отлично», вы готовы к работе. Теперь выгрузите все свои программы в каталог cgi-bin и начните их использовать.

    NB. Не забудьте дать вашим новым программам разрешения cgi-bin, chmod 755, чтобы они могли успешно запускаться без каких-либо внутренних ошибок сервера.

    Есть два способа обработки CGI-скриптов: SetHandler а также AddHandler .

    применяется ко всем файлам в данном контекст , независимо от того, как они названы, даже index.html или же style.css ,

    аналогично, но применяется к файлам, оканчивающимся на .pl в данном контексте. Вы можете выбрать другое расширение или несколько, если хотите.

    Кроме того, модуль CGI должен быть загружен и Options +ExecCGI сконфигурировано. Чтобы активировать модуль, выдайте

    и перезапустите или перезагрузите Apache. Наконец, сценарий Perl CGI должен быть исполняемым. Таким образом, биты выполнения должны быть установлены

    и должно начинаться с

    как его первая строка.

    Когда вы используете SetHandler или же AddHandler (а также Options +ExecCGI ) вне какой-либо директивы, он применяется глобально ко всем файлам. Но вы можете ограничить контекст подмножеством, заключив эти директивы внутрь, например, Directory

    Сейчас SetHandler применяется только к файлам внутри / path / to / some / cgi-dir, а не ко всем файлам веб-сайта. То же самое с AddHandler внутри Directory или же Location директива, конечно. Затем он применяется к файлам внутри / path / to / some / cgi-dir, оканчивающимся на .pl ,

    Я предполагаю, что вы взглянули на mod_perl ?

    Вы пробовали следующее руководство ?

    РЕДАКТИРОВАТЬ: Относительно вашей публикации — возможно, вы могли бы включить образец кода в свой .cgi файл. Возможно, даже первые несколько строк?

    Для таких, как я, которые пробирались по учебникам и документам «гораздо больше, чем вам нужно знать сейчас», и просто хотели увидеть, как это работает для начинающих, я нашел единственное, что у меня было сделать было добавить:

    AddHandler cgi-скрипт .pl .cgi

    К моему файлу конфигурации.

    В моей ситуации это работает лучше всего, так как я могу поместить свой Perl-скрипт куда угодно и просто добавить расширение .pl или .cgi.

    В ответе Дейва Шерохмана также упоминается решение AddHandler.

    Конечно, вы все равно должны убедиться, что права доступа / владельца вашего скрипта установлены правильно, особенно для того, чтобы скрипт был исполняемым. Обратите внимание на то, кто является «пользователем» при запуске из запроса http — например, www или www-data.

    Источник

    Оцените статью