Python — это один из наиболее популярных современных языков программирования. Он пригоден для решения разнообразных задач и предлагает те же возможности, что и другие языки программирования: динамичность, поддержку ООП и кросс-платформенность.
Версии Python на хостинге Spaceweb
На данный момент на наших серверах виртуального хостинга установлено 4 версии Python. Это Python 2.7, 3.3, 3.4, 3.8, 3.11 Точные версии можно узнать командами:
* Версия Python 3.8.5 работает на версии Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8, должна быть включена в настройках сайта.
Запуск скрипта python через CGI
CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешей программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитаю названия «скрипт»(сценарий) или «CGI-программа».
Для запуска скриптов python через CGI необходимо выполнить следующие действия:
- Добавить в файл .htaccess директиву:
- Указать первой строкой в скрипте путь к используемому интерпретатору, так называемый Shebang:
для использования Python 3.8, или другую версию.
-
Указать расширение для файла *.py и выставить на файл права доступа 755.
-
Если скрипт CGI разрабатывается с нуля, необходимо убедиться, что до вывода основного тела HTTP-ответа в скрипте указывается вывод служебного HTTP-заголовка Content-Type и перенос строки в формате LF:
print("Content-Type: text/html\n")
Запуск скрипта python через mod_wsgi
WSGI (англ. Web Server Gateway Interface) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например, Apache.
Стандарт интерфейса (на английском): http://www.python.org/dev/peps/pep-0333/
По стандарту, WSGI-приложение должно удовлетворять следующим требованиям:
- должно быть вызываемым (callable) объектом (обычно это функция или метод);
- принимать два параметра:
- словарь переменных окружения (environ);
- обработчик запроса (start_response);
- вызывать обработчик запроса с кодом HTTP-ответа и HTTP-заголовками;
- возвращать итерируемый объект с телом ответа;
Пример простого wsgi-приложения:
Если приложение будет использовать подключение к базе MySQL, то необходимо для неё сделать удаленный доступ для IP-адреса 127.0.0.1
Используемая версия python для mod_wsgi
На наших серверах mod_wsgi на Apache 2.2 + mod_passenger + mod_wsgi (Актуальная версия) использует версию python 2.7.5
На Apache 2.4 + PHP 8 opcache + mod_wsgi python3.8 использует версию python 3.8.5