Перейти к содержанию

Поднимаем сайт на Python + Apache


Kubix!

Рекомендуемые сообщения

Гайд по установке сайта на 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/ но я ленивый и не добавил таблицы в базу, поэтому сайт не работает,  пока что :)

 

Изменено пользователем Gendalf
  • Upvote 2
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика