- CGI Apache настройка отдачи cgi скриптов
- Создание виртуальных хостов в apache под Linux на Python
- Apache python cgi linux
- How do I run python cgi script on apache2 server on Ubuntu 16.04?
- 3 Answers 3
- Run Python script as CGI program with Apache2 in Linux / Wamp in Windows
- Step 1 – Write a “Hello, World! ” script in Python
- Step 2 – Put the script in a suitable directory
- Step 3 – Configure Apache2
- Edit the configuration file:
CGI Apache настройка отдачи cgi скриптов
Потребуется написать простейший CGI скрипт — сделаем это на bash, также нужно активировать соответствующий модуль Apache.
Прежде всего приводим конфигурационный файл дефолтного виртуального хоста apache2 в соответствие приведенному ниже образцу
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog $
CustomLog $
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 под Linux на Python
Занимаюсь разработкой сайтов и всякие эксперименты и основную разработку делаю на локальном компьютере под Debian. В следствии того, что приходилось постоянно ручками создавать виртуальные хосты пришлось поставить себе цель автоматизировать процесс.
Первый делом двинулся я в просторы интернета в поисках необходимого решения, которое должно было обладать простотой и выполнять всего 2 задачи: добавлять виртуальный хост и удалять его. Мне удобно пользоваться консолью, поэтому и приложение должно было быть консольным. Но все варианты которые нашел имели большое количество ненужного функционала, кроме того почти все они предоставляли web интерфейс, которым я просто не хотел пользоваться.
В результате были поставлены цели:
— написать свой простенький скрипт, который создавал все то, что мне нужно;
— в качестве языка разработке я выбрал python, т.к. давно искал повод на нем учится писать.
Update (08.09.11 20:25): учитывая ошибки в комментариях немного исправил скрипт. Начал использовать optparse, сократил использование .write.
В результате я получил полностью удовлетворяющий меня скрипт под катом.
Примечания к скрипту
В связи с предназначением скрипта, он запускается под root`om или через sudo.
Мини инструкция, для тех кто не дойдет до -help:
Usage: script [options] [add|drop] domain
В опциях изменяются настройки для работы скрита.
Во время добавления либо удаления домена:
— вносится изменение в hosts файл, для внесении информации о домене;
— в директориях переданных через dir_site создаются необходимые файлы и папки для нашего домена;
— в директории указанной в apache_config_site создается файл с конфигурацией virtualhost для apache.
Источник
Apache python cgi linux
Depending on the Linux distro and even the version the name and path of the apache config file will be different. You did not specify which distro you were running on.
I can only say regarding ubuntu and LAMP as that is what i have created servers on numerous times. Since you did not specify which distro you were on. from this point on ill assume your on ubuntu. As it is the most used.
1) You have to install AND enable the cgi_mod
enable it
2) create and change your permissions for the cgi directory
(change path to where ever you want it, but you need to add a script alias if you change it from default /usr/lib/cgi-bin)
2) In your apache config file you have to add a directory to the planned CGI directory. The best way to explain that is to use an example.
This is my /etc/apache2/apache2.conf directory adding for my cgi directory
This is my directory listing for my cgi directory which is /var/www/html/cgi-bin. The scriptalias line enables this directory path. The main points are Options +ExecCGI and the addhandler for .py whihc enable you to run cgi scripts. Save this in your apache config file.
Restart apache.
Close the old browser and start anew after.
Then on your scripts.
make sure to add a shebang line
As well as cgitb to allow you to view tracebacks through the browser
If you do not do this you might get an internal server error because you typo’d something and now cannot see the traceback to point you to your python script error. If you do not do this you can still view the traceback through the error logs. Create a second terminal to the server (or just use tmux to split the terminal) and execute
before you execute your python script to view the traceback in the error logs
And the first line printed must be
and you might as well make it as organized as possible by using the format method to insert values into your html such as.
html = «»»Content-type: text/html\n Python Porting Guide