Priest512
@Priest512
Разработчик .NET, С++

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

Подскажите хорошие ресурсы по данной теме. Новичок в линукс, да и вообще в настройке веб-серверов. Вообще, что требуется, так это разработать API на основе данной связки, так что желательно что-нибудь и по данной теме. Искал в инете, но много такого, что не ясно, правильно ли это или нет
  • Вопрос задан
  • 17134 просмотра
Решения вопроса 1
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
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@FireGM
А может быть вам лучше nginx+uwsgi использовать?
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
Лучше сразу ориентируйтесь на Nginx + gunicorn/uwsgi/etc. Это более современное и гибкое решение.
Ответ написан
@serrrgggeee
Здравствуйте не могу разобраться уже второй день в чем причина делаю все по инструкции и несколько раз но постоянно получаю вот такое сообщение
Forbidden
You don't have permission to access / on this server.
Apache/2.4.7 (Ubuntu) Server at site.ru Port 80

возможно что то сам напортачил, но уже не помню.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы