Панель Django Apache Python3.5 Vesta

Я использую связку Ubuntu 16.04 + Apache 2.4 + Django 1.10 + Python3.5 + wsgi + virtualenv.

Конфигурация apache заказана следующим образом

WSGIDaemonProcess myproject python-path/home/admin/web/domen.com/private/myprojectenv:/home/admin/web/domen.com/private/myprojectenv/lib/python3.5/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/admin/web/domen.com/private/myproject/wsgi.py

стандарт wsgi.py

import os

from django.core.wsgi import get_wsgi_application



os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

application = get_wsgi_application()

Переустановите все. Толстяк, ты видишь ошибку 500. лог: from django.core.wsgi import get_wsgi_application ImportError: No module named 'django'


person Community    schedule 21.01.2017    source источник
comment
Вы используете виртуальную среду в своем приложении?   -  person Alexander Tyapkov    schedule 21.01.2017
comment
да, он находится по адресу /home/admin/web/domen.com/private/myprojectenv его имя myprojectenv   -  person    schedule 21.01.2017
comment
тогда вам нужно активировать внутри вашего wsgi.py   -  person Alexander Tyapkov    schedule 21.01.2017
comment
Посмотрите некоторые конфигурации здесь stackoverflow.com/questions/37250573/   -  person Alexander Tyapkov    schedule 21.01.2017
comment
Это не помогло. Еще 2.7.12   -  person    schedule 21.01.2017
comment
отредактируйте свой вопрос и опубликуйте, что вы сделали. Это поможет понять, что не так   -  person Alexander Tyapkov    schedule 21.01.2017
comment
Отредактировано. На картинках показано что нужно   -  person    schedule 21.01.2017
comment
Вы установили libapache2-mod-wsgi-py3 и загрузили его в apache?   -  person daragua    schedule 21.01.2017
comment
Да установлен libapache2-mod-wsgi-py3, но не окружен   -  person    schedule 21.01.2017
comment
Согласно разделу virtualenv попробуйте WSGIDaemonProcess myproject python-home=/home/admin/web/domen.com/private/myprojectenv/. Однако изображения, которые вы публикуете, указывают на то, что Apache по-прежнему использует неправильный mod-wsgi. Попробуйте удалить (с apt) mod-wsgi и переустановить его, а затем включить с помощью a2enmod?   -  person daragua    schedule 21.01.2017
comment
Переустановите все. Жирный, ты видишь ошибку 500.   -  person    schedule 21.01.2017
comment
Хорошо, вы обновили строку WSGIDaemonProcess ..., как в моем предыдущем комментарии? Аргумент python-home=... должен указывать на корневой каталог вашего virtualenv (с bin, lib)..   -  person daragua    schedule 21.01.2017


Ответы (3)


У меня была та же проблема, и я решил ее, установив правильную версию mod_wsgi для использования с определенной версией Python (у меня 3.4). Проверьте информацию здесь в modwsgi readthedocs

person paralosreg    schedule 21.01.2017
comment
Можете написать какую команду использовали? - person ; 21.01.2017

Если вы хотите использовать скомпилированную версию, вам нужно будет скомпилировать mod_wsgi с версией Python, на которой вы хотите работать. Укажите версию Python, которую вы хотите использовать, с параметром --with-python. Вот пример.

wget "https://github.com/GrahamDumpleton/mod_wsgi/archive/4.x.y.tar.gz"
tar -xzf '4.x.y.tar.gz'
cd ./mod_wsgi-4.x.y
./configure --with-python=/usr/local/bin/python3.5
make
make install

Удачи!

person FlipperPA    schedule 21.01.2017

У меня получилось разобратся с проблемой, ниже опишу ее решение.

У меня система Ununtu 16.04, панель Vesta 0.9.8-17 (в т.ч. все слетели nginx+apache).

Так как мне нужен был python3 для него, и я опишу, если у вас нет ничего для pothon2 всех кроме установленных пакетов Similar Containers.

Установить пакет, а саму среду Джанго взял отсюда https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04

Что изменилось: wsgi.py

import os, sys

sys.path.append ( '/ home / admin / web / domen.com / private') # The path to the folder with Django project
from django.core.wsgi import get_wsgi_application

os.environ.setdefault ( "DJANGO_SETTINGS_MODULE", "myproject.settings")

application = get_wsgi_application ()

Конфигурация Apache для западной стороны:

<VirtualHost 172.11.11.11:8080>

    ServerName domen.com
    ServerAlias ​​www.domen.com
    ServerAdmin [email protected]
    DocumentRoot /home/admin/web/domen.com/public_html
    ScriptAlias ​​/ cgi-bin / /home/admin/web/domen.com/cgi-bin/
    Alias ​​/ vstats / /home/admin/web/domen.com/stats/
    Alias ​​/ error / /home/admin/web/domen.com/document_errors/
    #SuexecUserGroup Admin admin
    CustomLog /var/log/apache2/domains/domen.com.bytes bytes
    CustomLog /var/log/apache2/domains/domen.com.log combined
    ErrorLog /var/log/apache2/domains/domen.com.error.log
    <Directory /home/admin/web/domen.com/public_html>
        AllowOverride All
        Options + Includes -Indexes + ExecCGI
        php_admin_value open_basedir /home/admin/web/domen.com/public_html:/home/admin/tmp
        php_admin_value upload_tmp_dir / home / admin / tmp
        php_admin_value session.save_path / home / admin / tmp
    </ Directory>
    <Directory /home/admin/web/domen.com/stats>
        AllowOverride All
    </ Directory>
  
<IfModule mod_ruid2.c>
        RMode config
        RGroups www-data
    </ IfModule>
    <IfModule itk.c>
        AssignUserID admin admin
    </ IfModule>

  Alias ​​/ static /home/admin/web/domen.com/private/static
<Directory /home/admin/web/domen.com/private/static>
        Require all granted
   </ Directory>


    <Directory /home/admin/web/domen.com/private/myproject>
        <Files wsgi.py>
           Require all granted
       </ Files>
      </ Directory>
     
    WSGIScriptAlias ​​/ /home/admin/web/domen.com/private/myproject/wsgi.py
    WSGIDaemonProcess myproject user = admin group = admin python-path = / home / admin / web / domen.com / private / env / lib / python3.5 / site-packages
    WSGIProcessGroup myproject
    
    IncludeOptional /home/admin/conf/web/apache2domen.com.conf*

</ VirtualHost>

Я доволен всем админом. В WSGIDaemonProcess обязательно нужно указать Ucero и Korhogo GROUP от всех обрабатываются иначе проблема с доступом к базе данных

Изначально блок <IfModule mod_ruid2.c> выглядит так:

 

<IfModule mod_ruid2.c>
        RMode config
        RUidGid admin admin
        RGroups www-data
    </ IfModule>

Но я удалил внем админ группы RUidGid, так как он блокировал запуск и выдавал ошибку 503 (если кто знает о такой фиче то пишите в комментарии)

Этот сервер готов к работе.

person Community    schedule 22.01.2017