Задать вопрос
  • Как настроить связку ubuntu+apache2+python?

    Andrbez
    @Andrbez
    Procrastination
    На примере Ubuntu 14.04 LTS, Python 3.4.0, Django 1.7.1 для машины разработчика.

    Устанавливаем Apache 2
    $ sudo apt-get install -y apache2

    Устанавливаем mod_wsgi для Python 3 (связка Apache 2 - Python 3)
    $ sudo apt-get install -y libapache2-mod-wsgi-py3

    Устанавливаем PIP для Python 3 (менеджер пакетов)
    $ sudo apt-get install -y python3-pip

    Устанавливаем Django
    $ sudo pip3 install django

    Создаем проект Django
    Создаем проект
    $ mkdir -p /home/user/site.ru/
    $ mkdir -p /home/user/site.ru/static/
    $ mkdir -p /home/user/site.ru/media/
    $ mkdir -p /home/user/site.ru/logs/
    $ cd /home/user/site.ru/
    $ django-admin.py startproject project


    Настраиваем Apache
    $ sudo nano /etc/apache2/sites-available/000-default.conf


    В нем пишем
    <VirtualHost *:80>
         ServerAdmin admin@site.ru
         ServerName site.ru
         ServerAlias www.site.ru
         ErrorLog /home/user/site.ru/logs/error.log
         CustomLog /home/user/site.ru/logs/access.log combined
         Alias /robots.txt /home/user/site.ru/static/robots.txt
         Alias /favicon.ico /home/user/user.ru/static/favicon.ico
         AliasMatch ^/([^/]*\.css) /home/user/site.ru/static/styles/$1
         Alias /media/ /home/user/site.ru/media/
         Alias /static/ /home/user/site.ru/static/
         <Directory /home/user/site.ru/static>
              Require all granted
         </Directory>
         <Directory /home/user/site.ru/media>
              Require all granted
         </Directory>
         WSGIScriptAlias / /home/user/site.ru/project/project/wsgi.py
         <Directory /home/user/site.ru/project/project>
             <Files wsgi.py>
                 Require all granted
             </Files>
         </Directory>
    </VirtualHost>


    Редактируем wsgi-файл проекта
    import os
    import sys
    sys.path.append('/home/user/site.ru/project/')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()


    Перезагружаем Apache
    $ sudo service apache2 reload

    Соответственно site.ru и user меняете на свои.

    UPD: Сейчас не вспомню: скорее всего для первого запуска потребуется создать суперпользователя Django.

    $ cd /home/user/site.ru/project
    $ python3 manage.py createsuperuser
    $ python3 manage.py migrate
    Ответ написан
    Комментировать