• { it статьи }

Базовая настройка web-сервера apache и virtualenv для django проектов

на всякий случай напомню про настройку сети в Centos 7

nmtui

и возвращение на свое место ifconfig

yum install net-tools

проверяем наличие репозитория epel:

yum repolist

добавляем, если отсутствует:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

обновляемся:

yum update

отключаем selinux:

vi /etc/sysconfig/selinux

SELINUX=disabled

перезагружаем систему:

reboot

устанавливаем pip (менеджер пакетов python):

yum install python-pip

устанавливаем virtualenv (виртуальная среда для работы сайта далее вс):

pip install virtualenv

создаем каталоги для сайта и вс:

mkdir /srv/mysite && sudo mkdir /srv/virtualenv

создаем вс:

virtualenv /srv/virtualenv/mysite

переходим в каталог нашего проекта:

cd /srv/virtualenv/mysite

активируем вс:

source bin/activate

устанавливаем необходимые пакеты в вс:

pip install django==1.7.7

переходим в каталог нашего проекта (если вдруг вышли из него):

cd /srv/mysite/

и создаем наш проект:

django-admin startproject mysite .

создадим правило (откроем порт):

firewall-cmd --permanent --zone=public --add-service=http && firewall-cmd --reload

Проверим его работоспособность:

python manage.py runserver 0.0.0.0:80

переходим на страничку нашего проекта (в моем случае это ip-адрес):

http://192.168.1.205

должны увидеть приветственную страничку django

(чтобы остановить сервер django ctrl+c)

теперь можем деактивировать нашу вс:

deactivate

устанавливаем apache и модуль mod_wsgi:

yum install httpd mod_wsgi

запустим наш сервер:

systemctl start httpd.service

и добавим в автозагрузку:

systemctl enable httpd.service

перейдем в каталог с конфигурационными файлами и уберем старые файлы:

cd /etc/httpd/conf.d/ && mkdir older && mv *.conf older/

создадим конфигурационный файл для нашего проекта:

vi /etc/httpd/conf.d/mysite.conf

<VirtualHost mysite.ru:80>
    ServerName mysite.ru
    ServerAlias www.mysite.ru
    DocumentRoot /srv/mysite
    ErrorLog logs/mysite-error_log
    CustomLog logs/mysite-access_log common

    WSGIScriptAlias / /srv/mysite/mysite/wsgi.py
    WSGIDaemonProcess mysite python-path=/srv/mysite:/srv/virtualenv/mysite/lib/python2.7/site-packages
    WSGIProcessGroup mysite
    
    Alias /media/ /srv/mysite/media/
    Alias /static/ /srv/mysite/static/
    Alias /robots.txt /srv/mysite/static/robots.txt

    <Directory /srv/mysite/static>
      Require all granted
    </Directory>
    <Directory /srv/mysite/media>
      Require all granted
    </Directory>
    <Directory /srv/mysite/mysite>
     <Files wsgi.py>
      Require all granted
     </Files>
    </Directory>
</VirtualHost>


установим владельца и права для нашего проекта:

chown apache:user -R /srv/mysite

где user — имя Вашей учетной записи *

chmod 570 -R /srv/mysite

Если Вы не настроили DNS-записи

чтобы открыть сайт по адресу mysite.ru на локальной машине добавим строки в файл hosts (C:\Windows\System32\drivers\etc\hosts): 192.168.1.205 mysite.ru

на сервере добавляем:

echo "192.168.1.205 mysite.ru" >> /etc/hosts

(где 192.168.1.205 - ip-адрес Вашего сервера)


перезагрузим наш web-сервер:

systemctl restart httpd.service

на данном этапе, базовая настройка web-сервера для django-проектов закончена

Проверим все написанное выше в режиме ctr+c ctr+v

Комментировать

Рубрики

Метки