Найти тему
Python Lounge

Пишем простой сайт на Python. Часть 4: Публикация в сети Интернет

В самом начале мы работали с локальным сервером.

Теперь узнаем, как его разместить в интернете.

Мы будем искать виртуальный сервер под наши нужды.

Пока что нам нужно использовать бесплатный тестовый период для нашего приложения, поэтому для тестового приложения я остановился на виртуальном сервере от IHC.

Регистрируемся и заказываем тестовый период.

Здесь нам необходимо создать виртуальный сервер.
Остановимся на
Ubuntu 14.10 (Utopic Unicorn) 64-bit.

Заходим на созданный виртуальный сервер по SSH (это можно сделать через консоль в linux, или через программу PUTTY для Windows) (логин - ubuntu, пароль - какой задали, сервер - ip сервера, который вы получили).

Сейчас установим программы, которые помогут установить cgi на виртуальном сервере.

sudo apt-get install nginx fcgiwrap
sudo apt-get install mc
sudo mcedit /etc/nginx/sites-enabled/default

Мы открыли на редактирование файл default с конфигурацией нашего сервера.

Вот что должно получиться:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
charset utf-8;
root /home/ubuntu/www;
index index.html index.htm;

server_name localhost;

location / {
try_files $uri $uri/ =404;
}

location /cgi-bin/ {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /home/ubuntu/www$fastcgi_script_name;
}
}

Создаём директорию, в которой будут распологаться файлы:

mkdir /home/ubuntu/www

Подключаемся по FTP.

Копируем в созданную папку файлы из примеров, ранее опубликованных в канале.

В form.py в начале файла (но после строчки #!/usr/bin/env python3) дописываем:

import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

Иначе кириллица не заработает.

Осталось только поменять права:

cd /home/ubuntu/www
chmod 644 index.html
chmod 755 cgi-bin/form.py
sudo service nginx restart
sudo service fcgiwrap restart

Наслаждаемся до конца тестового периода.