В этой статье мы расскажем вам, как установить Wagtail на Centos VPS с Nginx и uWSGI. Wagtail это гибкая система управления контентом Django с открытым исходным кодом сосредоточено на гибкости и пользовательском опыте. Это руководство должно работать на других системах Linux VPS, так же хорошо, но была испытана и написана для Centos 7 VPS.
ssh root@vps
Чтобы установить хранилище Epel на вашем CentOS VPS, просто запустите:
[root]$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
[root]$ yum -y update [root]$ yum -y install python-pip python-virtualenv pcre-devel python-imaging python-devel libjpeg-turbo-devel make gcc
Создание нового пользователя для Wagtail:
[root]$ adduser --comment 'Wagtail User' --home-dir /home/wagtail wagtail
[root]$ chmod 755 /home/wagtail
Установите Wagtail
[root]$ pip install wagtail
Следующие команды выполняются пользователем Wagtail. Для того, чтобы переключиться на пользователя wagtail:
[root]$ su - wagtail
Создайте новый проект Wagtail
[wagtail]$ wagtail start mysite
Создайте новый virtualenv с помощью следующей команды
[wagtail]$ virtualenv wagtail-env
Переход к новому virtualenv
[wagtail]$ source ~/wagtail-env/bin/activate
Установите все зависимости с pip:
(wagtail-env)[wagtail]$ cd mysite (wagtail-env)[wagtail]$ pip install -r requirements.txt
Создайте новую базу данных SQLite
(wagtail-env)[wagtail]$ python manage.py migrate
Создайте пользователя с правами администратора
(wagtail-env)[wagtail]$ python manage.py createsuperuser
Nginx не доступен по умолчанию в CentOS 7 поэтому мы будем использовать официальный репозиторий Nginx:
[root]$ rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
Чтобы установить Nginx запустите:
[root]$ yum -y install nginx
Затем создайте новый блок сервера Nginx:
[root]$ nano /etc/nginx/conf.d/YOUR_WAGTAIL_DOMAIN.conf
server { server_name YOUR_WAGTAIL_DOMAIN; client_body_in_file_only clean; client_body_buffer_size 64K; client_max_body_size 40M; sendfile on; send_timeout 300s; error_log /var/log/nginx/mywagtailsite_error.log; access_log /var/log/nginx/mywagtailsite_access.log; location / { uwsgi_pass unix:/home/wagtail/mysite/mysite/wagtail.socket; include /etc/nginx/uwsgi_params; uwsgi_param UWSGI_SCHEME $scheme; uwsgi_param SERVER_SOFTWARE nginx/$nginx_version; } }
Установить uWSGI используя pip
pip install --upgrade uwsgi
Создание конфигурационного файла uwsgi для Wagtail:
[root]$ mkdir /etc/uwsgi.d/
[root]$ nano /etc/uwsgi.d/wagtail.ini
[uwsgi] chmod-socket = 666 virtualenv = /home/wagtail/wagtail-env mount = /=wsgi:application chdir = /home/wagtail/mysite/ wsgi-file = mysite/wsgi.py socket = /home/wagtail/mysite/mysite/%n.socket stats = /home/wagtail/mysite/mysite/%n.stats.socket logto = /home/wagtail/mysite/mysite/%n.log workers = 4 uid = wagtail gid = wagtail limit-as = 512
Откройте редактор по вашему выбору и создайте новый Systemd сервис для Wagtail:
[root]$ nano /etc/systemd/system/uwsgi.service
и добавьте следующие строки кода:
[Unit] Description=uWSGI Emperor Service After=syslog.target [Service] ExecStart=/usr/bin/uwsgi --master --die-on-term --emperor /etc/uwsgi.d ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT Restart=always Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target
Запустите и включите uWSGI при загрузке:
[root]$ systemctl enable uwsgi [root]$ systemctl start uwsgi
Запустите и включите Nginx при загрузке:
[root]$ systemctl enable nginx [root]$ systemctl start nginx
Вот и все. Вы успешно установили Wagtail. Для того, чтобы получить доступ к нему, откройте http://YOUR_WAGTAIL_DOMAIN/ в вашем браузере. Для получения дополнительной информации о Wagtail, пожалуйста, обратитесь к официальному сайту Wagtail.