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

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

Подскажите хорошие ресурсы по данной теме. Новичок в линукс, да и вообще в настройке веб-серверов. Вообще, что требуется, так это разработать API на основе данной связки, так что желательно что-нибудь и по данной теме. Искал в инете, но много такого, что не ясно, правильно ли это или нет
  • Вопрос задан
  • 17166 просмотров
Решения вопроса 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

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

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽