Гайд по установке сайта на Python + Mod_Wsgi + Apache
На чем делал я:
100рублевый хост у Lepus.su, Debian 8.5
Пропустим установку апача / мускуля, все у кого есть ро сервер он итак стоит, если нет, то гайдов полно, например: https://www.digitalocean.com/community/tutorials/linux-apache-mysql-php-lamp-ubuntu-14-04-ru
Какой сайт будем ставить: https://github.com/kubixservice/kubixcp
Чтобы не утомлять разговорами, сразу к делу, подключаемся по SSH через какой-то Putty.
Если нет питона, устанавливаем:
sudo apt-get install python3
Устанавливаем pip, он нужен чтоб установить библиотеки питона.
sudo apt-get install python-pip
Устанавливаем нужные библиотеки:
pip3 install Flask
pip3 install Flask_Login
pip3 install Flask_Triangle
pip3 install Flask_Babel
pip3 install PyMySql
pip install html
обратите внимание что html библиотека устанавливается командой pip а не pip3 (не вникал в подробности, но чет питону3 не нравится html, но нам и так сойдет)
Устанавливаем Mod_Wsgi (через него апач будет подключаться к сайту)
apt-get install libapache2-mod-wsgi
Заливаем файлы сайта через git (у кого не установлен git - sudo apt-get install git)
Переходим в директорию, в которой хотите чтобы стоял сайт, в моем случае (/var/www/html/kpanel)
cd /var/www/html/kpanel
Клонируем сайт:
git clone https://github.com/kubixservice/kubixcp.git
подключаемся к впс через WinSCP / Filezilla или кому что удобно, заходим в /var/www/html/kpanel
создаем там файл kpanel.wsgi со следующим содержимым:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, sys
path = '/var/www/html/kpanel' #измените на свою директорию
if path not in sys.path:
sys.path.append(path)
from kpanel import app as application
if __name__ == '__main__':
application.run(host='0.0.0.0', port=80, debug=True)
со стороны сайта все готово, движемся в /etc/apache2/sites-available/
создаем там файл kpanel.conf со следующим содержимым:
#Listen 80
ServerName kubix-service.info
WSGIPythonHome /usr/local/lib/python3.4
<VirtualHost *:80>
# 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 webmaster@localhost
#ServerName example.com
WSGIDaemonProcess kpanel user=${APACHE_RUN_USER} group=${APACHE_RUN_GROUP} threads=5
WSGIScriptAlias / /var/www/html/kpanel/kpanel.wsgi
<Directory /var/www/html/kpanel>
WSGIProcessGroup kpanel
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
# 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 ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/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
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Разбор полётов:
ServerName - грубо говоря, по какой ссылке юзеры будут подключаться к вашему сайту (в моем случае подключен домен kubix-service.info
WSGIPythonHome /usr/local/lib/python3.4 - путь к питону 3+ (поскольку сайт требует 3+ питон, а Mod_Wsgi по стандарту юзает 2.7)
ServerAdmin webmaster@localhost - Ваш емейл (будет высвечиваться если на сайте будет ошибка 500 или еще какая)
WSGIDaemonProcess kpanel user=${APACHE_RUN_USER} group=${APACHE_RUN_GROUP} threads=5 - запуск Wsgi процесса, где user - юзер под которым хотите запускать все это, group - группа юзера (можно глянуть в /etc/groups (файл такой) в моем случае я юзаю юзера под которым запущен сам апач
WSGIScriptAlias / /var/www/html/kpanel/kpanel.wsgi - путь к .wsgi файлу
<Directory /var/www/html/kpanel> - путь к папке с сайтом
Где будут хранится ваши логи: (по стандарту это /var/logs/apache2/)
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Даем апачу команду добавить нашу конфигурацию:
sudo a2ensite kpanel
перезапускаем апач:
sudo service apache2 restart
Если не залили таблицы и не создали базу, делаем это.
Заходим в настройки нашей панели /var/www/html/kpanel/config.py и редактируем под Ваш вкус:)
Переходим по ссылке указанyой в ServerName. Радуемся.
В моем случае это http://kubix-service.info/ но я ленивый и не добавил таблицы в базу, поэтому сайт не работает, пока что