LSDEEX

May 6, 2011

Подключение python 3.2 к Apache 2.2 как CGI

Filed under: python — admin @ 10:21 pm

В общем, вот рабочий пример запуска python3 как CGI в апач 2.2 с кириллицей в браузере:

#!/usr/local/bin/python3
import sys, os
os.dup2(1, 2) # copy stderr->stdout
sys.stdout.buffer.write(b'Content-type: text/html;charset=utf-8\n\n')

def out(msg):
sys.stdout.buffer.write(msg.encode('utf8'))
sys.stdout.flush()

# test
import time
for i in range(10):
out('кириллица
')
time.sleep(1)

файл сохраняем в utf-8
в браузере тоже должна быть выбрана эта кодировка
все ошибки копируются в stdout, т.е. в браузер

подключение в httpd.conf:
– создаем вирт. хост, добавляем хэндлер
– в директории со скриптами добавляем +ExecCGI
– ставим на скрипт права на выполнение: chmod +x script.py


ServerAdmin admin@localhost2
DocumentRoot /home/python3/www
ServerName pyweb
ErrorLog logs/pyweb_errors
CustomLog logs/pyweb_custom common

AddHandler cgi-script .cgi .py .pyw # важно


DirectoryIndex start.pyw
Options +ExecCGI # важно

вроде бы больше ничего не требуется

Powered by WordPress