- Configuring Apache2 to run Python Scripts
- Как запустить сценарий Python в веб-сервере Apache
- Как запустить скрипт Python на веб-сервере Apache
- 1. Установите Python
- 2. Редактирование конфигурации Apache
- 3. Перезапустите Apache
- 4. Запуск сценария Python на Apache
- Заключение
- Похожие записи:
- Как запускать скрипты Python с Apache и mod_wsgi в Ubuntu 22.04
- Предпосылки
- Начиная
- Установить язык программирования Python
- Установите веб-сервер Apache и модуль mod_wsgi.
- Конфигурация модуля WSGI в Apache
- Протестируйте скрипт Python 3 WSGI
- Скачать как виртуальную машину
- Подробности входа в виртуальную машину
Configuring Apache2 to run Python Scripts
This is meant as a simple writeup to fill a gap in various “HOWTO”‘s that I read when trying to setup my Apache2 server to process python scripts as CGI, though it would apply to any cgi scripts (perl scripts, compiled binaries…).
I’ve been developing for years (C, C++, PHP), but had never delved into python before, and I wanted to be able to have my scripts have a web interface.
The first step is getting Apache2 to recognize that my .py files were to be executed and not spit out as text files.
docs.python.org has some nice HOWTOs (http://docs.python.org/3.3/howto/webservers.html) on how to think about python and the web, and apache.org has mountains of documentation (http://httpd.apache.org/docs/2.2/howto/cgi.html) relating to running CGIs. What I didn’t find was a simple guide on how to set it up. I’m a developer, not a sys-admin, and while I like knowing how to configure Apache and tune my linux boxes, sometimes I just want to get my webserver up and running and start coding.
So, in case anyone was going through the same situation as me, here is my quick and dirty setup.
For reference, this setup was done on Ubuntu 13.10, using ubuntu’s default apache2 installation, and python3.
I’m also assuming you know how to configure apache for a basic html site. There are lots of HOWTO’s for that.
- apache install : sudo apt-get install apache2
- python install : sudo apt-get install python
The first step, which in my PHP experience I never had to do, is not mentionned in the guides above is to enable CGI processing in apache.
This will automatically enable mod_cgid if your server is configured with a multi-threaded MPM, which was the case for me.
Then you can either make a folder in your site’s path where your cgi files will live, or configure certain directories to handle certain file types as cgi scripts.
This is described well in the apache2 doc above, but essentially you to make all files in a cgi folder be executed, you would use this conf:
and to allow .py files to be executed as scripts in a particular folder you would use this conf:
Once you have that, if you’re running python 3, you can make a python script like this one, and stick it in whichever folder is configured for cgi:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-# enable debugging
import cgitb
cgitb.enable() print(“Content-Type: text/html;charset=utf-8”)
print() print(“Hello World!”)
You can change the first line from
in case the default is python and you want this script to be parsed by python3
Как запустить сценарий Python в веб-сервере Apache
Веб-сервер Apache широко используется многими веб-сайтами и организациями. Как правило, веб-сервер Apache используется для выполнения PHP-скриптов. Но иногда вам может понадобиться запустить скрипты python на веб-сервере Apache. В этой статье мы узнаем, как запустить скрипт python на веб-сервере Apache.
Как запустить скрипт Python на веб-сервере Apache
Ниже описаны шаги для запуска скрипта python на веб-сервере Apache.
1. Установите Python
Загрузите и установите python с веб-сайта, если вы используете Windows. После загрузки программы установки дважды щелкните по ней, чтобы запустить, и вы увидите мастер установки. Следуйте инструкциям, чтобы установить Python. Запомните место установки, так как оно понадобится вам позже. Если вы используете Linux, python уже установлен по умолчанию, и вам не нужно ничего делать.
В Linux выполните следующую команду, чтобы узнать место установки python
2. Редактирование конфигурации Apache
Откройте файл конфигурации Apache в текстовом редакторе. Ниже перечислены возможные расположения файла конфигурации в зависимости от вашей операционной системы.
- /etc/apache2/httpd.conf
- /etc/apache2/apache2.conf
- /etc/httpd/httpd.conf
- /etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks
Добавьте ExecCGI к этой строке.
Options Indexes FollowSymLinks ExecCGI
Далее найдите следующую строку.
Откомментируйте ее, удалив # в начале строки.
И добавьте .py в конце строки.
AddHandler cgi-script .cgi .py
Чтобы выполнять скрипты python в Apache, необходимо использовать модуль Apache, подобный модулю CGI. Поэтому назначьте модуль cgi-script в качестве обработчика для файлов .py (python-скриптов).
Сохраните и закройте файл.
3. Перезапустите Apache
Перезапустите сервер Apache, чтобы применить изменения.
Пуск -> Все программы -> Apache . -> пункт меню Управление сервером Apache
4. Запуск сценария Python на Apache
Создайте новый файл и добавьте в него следующий код python.
#!/usr/bin/python print "Content-type: text/html" print print "" print "" print "" print "Hello." print ""
Сохраните этот файл под именем test.py в папке htdocs в каталоге установки Apache. Откройте веб-браузер и зайдите на хост apache (и :port, если порт не 80), а затем на test.py. Например,
Вы должны увидеть сообщение ‘Hello.’.
Заключение
В этой статье мы узнали, как запускать скрипты python на сервере Apache. Вы можете использовать этот подход для запуска других скриптов, таких как Ruby, Perl в python. Хитрость заключается в установке и включении модуля Apache, отвечающего за выполнение этих скриптов.
Похожие записи:
Как запускать скрипты Python с Apache и mod_wsgi в Ubuntu 22.04
Модуль Apache mod_wsgi предоставляет интерфейс для размещения веб-приложений на основе Python. Это хороший выбор для профессиональных хостинговых систем, поскольку он обеспечивает высокую производительность, но одинаково хорошо работает и для небольших сайтов. Развертывание приложений, написанных с использованием фреймворков Python, таких как Django, Web.py, Werkzug, Chery.py, TurboGears и Flask, с mod_wsgi упрощается.
В этом руководстве я покажу вам, как установить и настроить mod_wsgi с помощью веб-сервера Apache в Ubuntu 22.04 LTS. Это руководство является обновленной версией руководства Apache WSGI для Ubuntu 20.04 от Hitesh Jethva.
Предпосылки
- Ubuntu 22.04 для сервера или рабочего стола
- Вы должны быть системным администратором и иметь права root или sudo для установки и настройки этого программного обеспечения.
Начиная
Перед запуском рекомендуется обновить систему до последней версии. Вы можете обновить свою систему с помощью следующей команды:
sudo apt update -y
sudo apt upgrade -y
После обновления системы перезапустите ее, чтобы изменения вступили в силу.
Установить язык программирования Python
По умолчанию Python предустановлен в Ubuntu 22.04. если Python еще не установлен, вы можете установить его с помощью этой команды:
sudo apt install python3 libexpat1 -y
На приведенном ниже снимке экрана показан вывод команды, когда python уже установлен.
Теперь перейдите к следующему шагу.
Установите веб-сервер Apache и модуль mod_wsgi.
На этом этапе мы установим веб-сервер Apache и модуль Python mod_wsgi. Выполните следующую команду, чтобы установить оба приложения. Зависимые пакеты программного обеспечения будут установлены автоматически.
sudo apt install apache2 apache2-utils ssl-cert libapache2-mod-wsgi-py3 -y
После установки всех пакетов можно переходить к следующему шагу.
Конфигурация модуля WSGI в Apache
Затем вам нужно создать новый скрипт Python в корневом веб-каталоге Apache по умолчанию, чтобы обслуживать его через модуль WSGI Apache. Здесь мы будем использовать небольшой скрипт Hello World для демонстрационных целей.
Вы можете создать скрипт Python с помощью следующей команды:
sudo nano /var/www/html/wsgitest.py
Добавьте следующие строки:
def application(environ, start_response):
status = '200 OK'
output = b'Hello Howtoforge!\n'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Сохраните и закройте файл. Затем измените владельца файла на www-data с помощью следующей команды:
sudo chown www-data:www-data /var/www/html/wsgitest.py
sudo chmod 775 /var/www/html/wsgitest.py
Затем отредактируйте файл конфигурации виртуального хоста Apache, чтобы этот файл обслуживался по протоколу HTTP.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Добавьте следующую строку:
WSGIScriptAlias /wsgi /var/www/html/wsgitest.py
Полный файл виртуального хоста выглядит так:
# The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin DocumentRoot /var/www/html # Available loglevels: trace8, . trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog $/error.log CustomLog $/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf WSGIScriptAlias /wsgi /var/www/html/wsgitest.py # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Сохраните изменения в текстовом редакторе и закройте редактор. Следующим шагом является перезапуск веб-сервера Apache, чтобы изменения вступили в силу.
systemctl restart apache2
Протестируйте скрипт Python 3 WSGI
Теперь HTTP-сервер Apache настроен для обслуживания нашего файла Python по протоколу HTTP.
Откройте веб-браузер и введите URL-адрес http://ваш-сервер-ip/wsgi. замените your-server-ip на IP-адрес сервера. Вы получите белую страницу со словами \Hello Howtoforge!\.
Вот и все, теперь у вас есть правильно настроенный веб-сервер Apache для запуска приложений Python с использованием mod_wsgi. Следующим шагом будет развертывание веб-приложения Python в каталоге /var/www/html/ и изменение строки WSGIScriptAlias в файле /etc/apache2/sites-enabled/000-default.conf, чтобы она соответствовала сценарию запуска вашего приложения. . Затем снова перезапустите Apache, чтобы применить изменения конфигурации.
Скачать как виртуальную машину
Эта установка доступна для загрузки виртуальной машины в формате ova/ovf (совместима с VMWare и Virtualbox) для подписчиков howtoforge.
Подробности входа в виртуальную машину
Пожалуйста, измените все пароли при первом входе в систему.