Apache и CGI скрипты

CGI Apache — способ обработки скриптов самым популярным веб-сервером. В режиме CGI можно обрабатывать и выводить результат в браузер скрипты, написанные на bash, perl и python. Это может быть очень удобно особенно при создании инструментов мониторинга.

 

 

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

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

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

 

mcedit /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
ServerName www.example.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory «/var/www/cgi-bin/»>
Options +Indexes
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

</VirtualHost>

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

 

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

 

mcedit /etc/hosts

127.0.01    www.example.com

 

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

a2enmod cgi

service apache2 restart

 

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

mkdir /var/www/cgi-bin/ && /var/www/cgi-bin/

 

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

 

mcedit script.cgi

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

echo «hello»

date

 

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

chmod +x script.cgi

 

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

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

 

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