База знаний: Linux-хостинг
Установка веб-фреймворка flask на виртуальном хостинге
Автор: Sergey Kondratenko

На виртуальном хостинге ограниченно изменение глобальной системной директории /usr/lib/python2.6/site-packages, поэтому ключевым моментом станет использование virtualenv. Virtualenv как раз позволит создать изолированную среду разработки  приложений на Python в вашем домашнем каталоге. Для установки virtualenv  качаем архив:

    curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.9.tar.gz
    tar xvfz virtualenv-1.9.tar.gz
    cd virtualenv-1.9

 Теперь, имея в распоряжении virtualenv, можно создать  изолированную среду разработки:

    python virtualenv.py ~/myenv

Результатом исполнения данной команды станет появление в домашней директории папки myenv, содержащей папки bin,  include,  lib, lib64.

Итак, изолированная среда разработки у нас есть. Осталось сообщить об этом системной оболочке. В домашнем каталоге создаём файл .bashrc:

    cd ~/
    touch .bashrc

И добавляем в него следующие строки:

    source ~/myenv/bin/activate


Теперь выполним:

    source ~/myenv/bin/activate


В следствие данных манипуляций, набирая в коммандной строке, например, python, запускается не общесистемный интерпретатор python'а , а тот, что лежит в вашей
директории ~/myenv/bin. В качестве проверки того, всё ли было сделано правильно, наберите:

    which python

Если в ответ вы увидите ~/myenv/bin/python , то всё прошло удачно. Если /usr/bin/python , то следует проверить корректность .bashrc и выполнить  source .bashrc

Итак, платформа подготовлена. Пришло время установить фреймворк для разработки веб-приложений. Нам понадобится модуль flup и django/flask.

    pip install flup
    pip install flask

Проверим прошла ли установка успешно. Вызываем интерпретатор python:

    python

В интерпретаторе введём:

    import flask

Если Вы не увидели сообщения "ImportError: No module named flask", то всё хорошо и flask установлен. Кстати, посмотреть установелнную версию flask Вы можете введя в интерпретаторе:

    import flask
    flask.__version__


Готовимся к запуску первого приложения.

переходим в папку вашего сайта:

    cd flasktest.atservers.net

Назовём наше приложение yourapplication.py

    touch yourapplication.py

Содержание будет примерно следующим:

from flask import Flask
app = Flask(__name__)
app.debug = False

@app.route("/")
def hello():
    return "Hello Active!"

if __name__ == "__main__":
    app.run()


Cоздаём здесь файл .htaccess и вносим в него следующие
строчки:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /cgi-bin/yourapplication.fcgi/$1 [QSA,L]

Теперь перейдём в папку cgi-bin:

cd cgi-bin/ создадим здесь файл yourapplication.fcgi:


#(ниже нужно заменить путь к Вашему интерпретатору python)

#!/home/flasktest/myenv/bin/python
# -*- coding: utf-8 -*-
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/flasktest/www/flasktest.atservers.net")

# Switch to the directory of your project. (Optional.)
os.chdir("/home/flasktest/www/flasktest.atservers.net")

from flup.server.fcgi import WSGIServer
from yourapplication import app

if __name__ == '__main__':
    WSGIServer(app).run()

* Здесь вместо "/home/flasktest/www/flasktest.atservers.net" нужно будет указать путь к Вашему сайту.

Изменим права доступа для  yourapplication.fcgi:

chmod 755 yourapplication.fcgi


В адресной строке своего браузера введите название своего проекта. Например,
для данного мануала это flasktest.atservers.net
Если вы увидели Hello Active! , значит Ваше приложение работает.

 

OK

Detect language » Russian
Detect language » Russian
Detect language » Russian
Detect language » Russian
 


Если решение вопроса найти не удалось, Вы можете отправить нам заявку:



(24 голос(а))
Эта статья помогла
Эта статья не помогла

Комментарии (0)