Задать вопрос
Priest512
@Priest512
Разработчик .NET, С++

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

Подскажите хорошие ресурсы по данной теме. Новичок в линукс, да и вообще в настройке веб-серверов. Вообще, что требуется, так это разработать API на основе данной связки, так что желательно что-нибудь и по данной теме. Искал в инете, но много такого, что не ясно, правильно ли это или нет
  • Вопрос задан
  • 17506 просмотров
Подписаться 7 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 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

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

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽