В этой статье мы покажем вам, как установить и настроить Mezzanine на вашем CentOS 7 VPS.
Mezzanine является системой управления контентом (также известный как CMS) свободной и с открытым исходным кодом, построенной с использованием платформы веб -приложений Django. Это набор полезных компонентов, которые помогают разработчикам легко и быстро создавать веб-сайты для самых разных целей. Он предоставляет интуитивно понятный интерфейс для управления и создания веб-страниц, сообщений в блогах, данных форм, хранения товаров, а также многих других типов контента.
В отличие от других популярных приложений CMS, все эти функции доступны “из коробки”, без необходимости использования каких-либо дополнительных модулей или дополнений. Установка Mezzanine CMS в CentOS 7 – это простая задача, если вы тщательно выполните следующие шаги.
Предпосылки
- Сервер, работающий CentOS 7
- Доступ по SSH с привилегиями root или доступ к пользователю root
Шаг 1: Войдите и обновите пакеты
Во-первых, нам нужно войти на наш сервер, используя SSH. Вы можете сделать это, введя эту команду:
ssh root@IP_Address -p Port_Number
Не забудьте заменить «root» своим именем пользователя, если вы не используете пользователя root. Измените «IP_Address» и «Port_Number» в соответствии с IP-адресом и портом вашего сервера.
После того, как вы вошли в систему, вы должны обновить все ваши пакеты до их последних доступных версий, чтобы мы могли максимально повысить совместимость и избежать возможных расхождений в версиях:
# yum update
Шаг 2. Установите средства разработки
Пакет «Development Tools» необходим для сборки модулей Python. мы можем установить его с помощью этой команды:
# yum groupinstall 'Development Tools'
Шаг 3: Установите Python 3.6
Для того , чтобы установить Python версии 3.6, нам нужны хранилища centos-release-scl и epel-release. Вы можете установить их с помощью этой команды:
# yum install centos-release-scl epel-release
После этого вы можете установить Python 3.6. Кроме того, мы установим универсальный текстовый редактор nano (необязательно) и настраиваемый веб-сервер Nginx:
# yum install rh-python36 nano nginx
Шаг 4: Установите сервер MariaDB
Установка сервера базы данных MariaDB проста и требует только одной команды:
# yum install mariadb-server
После завершения установки, давайте включим его при загрузке, а затем запустим службу.
# systemctl enable mariadb # systemctl start mariadb
На этом этапе MariaDB запущена, и теперь мы собираемся создать пароль для пользователя root. Выполните следующую команду, чтобы создать пароль root, удалить тестовую базу данных, удалить анонимного пользователя, прежде чем, наконец, перезагрузить права.
# mysql_secure_installation
Когда будет предложено, ответьте на вопросы ниже, следуя руководству.
Enter current password for root (enter for none): Just press the [Enter] key, since no password is currently set. Set root password? [Y/n]: Y New password: Enter a new password Re-enter new password: Repeat the new password Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Шаг 5: Создайте базу данных для Mezzanine
Давайте создадим один, используя следующие команды. Сначала нам нужно войти в интерфейс командной строки MariaDB:
# mysql -u root -p
Оттуда мы можем создать нашу базу данных:
mysql> create database mezzanine; Query OK, 1 row affected (0.00 sec)
После создания базы данных мы создадим пользователя и предоставим ему полный доступ к базе данных Mezzanine:
mysql> grant all on mezzanine.* to mezzanine@localhost identified by 'Password'; Query OK, 0 rows affected, 1 warning (0.00 sec)
Не забудьте сбросить все привилегии, чтобы изменения вступили в силу:
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
Затем выйдите из интерфейса командной строки.
mysql> quit
Шаг 6: Создайте пользователя системы Mezzanine
Прежде чем мы продолжим, давайте создадим нового пользователя для нашей установки Mezzanine:
# adduser mezzanine
Далее мы добавим этого нового пользователя в группу sudo:
# usermod -aG wheel mezzanine
Шаг 7: Создайте виртуальную среду
Мы создадим виртуальную среду под системным пользователем, которого мы создали ранее:
# su - mezzanine
Чтобы включить python3.6 в этом сеансе оболочки, нам нужно выполнить следующую команду:
$ scl enable rh-python36 bash
Вы можете проверить версию Python сейчас.
$ python -V
Теперь мы можем создать виртуальную среду. Следующая команда создаст виртуальную среду под названием «Mezzanine»:
$ python -m venv mezzanine
Чтобы использовать виртуальную среду, сначала нам нужно ее активировать, введя следующую команду:
$ source mezzanine/bin/activate
Шаг 8: Установите и создайте проект Mezzanine
Сначала мы установим пакет Python под названием «mezzanine». Это необходимо для правильной работы Mezzanine.
$ pip install mezzanine
После этого мы можем создать наш первый проект Mezzanine.
$ mezzanine-project first_project
Команда выше добавит новый каталог с именем «first_project». На вашем сервере вы можете выбрать любое название проекта. Пожалуйста, не забудьте следовать вместе с изменением имени в оставшейся части статьи.
Шаг 9: Настройте проект Mezzanine
На этом этапе нам нужно отредактировать файл settings.py в нашем первом каталоге проекта. Мы будем использовать MySQL для хранения нашей базы данных:
$ cd first_project
$ nano first_project/settings.py
Найдите блок DATABASES и добавьте следующую информацию о базе данных, которую мы создали ранее.
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "mezzanine", "USER": "mezzanine", "PASSWORD": "Password", "HOST": "", "PORT": "", } }
Сохраните изменения и выйдите.
В этом каталоге вы также найдете основной скрипт для управления проектами, который называется manage.py.
Мы будем использовать этот скрипт для переноса базы данных и создания новой учетной записи суперпользователя для нашего интерфейса администратора Mezzanine.
Давайте перенесем базу данных, выполнив следующие команды:
$ python manage.py makemigrations $ python manage.py migrate
После переноса базы данных мы можем создать нового пользователя с правами администратора:
$ python manage.py createsuperuser
Введите необходимую информацию для создания нового администратора:
Username (leave blank to use 'mezzanine'): Email address: me@mydomain.com Password: Password (again): Superuser created successfully.
Затем откройте следующий файл, чтобы отредактировать его:
$ nano first_project/local_settings.py
Найдите строку ALLOWED_HOSTS, а затем добавьте IP-адрес вашего сервера и/или имя вашего домена.
ALLOWED_HOSTS = ["localhost", "127.0.0.1", "::1", "your-server-IP", "your-domain-name"]
Сохраните файл и выйдите из текстового редактора nano.
Шаг 10: Запустите сервер Mezzanine
Чтобы запустить и запустить сервер Mezzanine, выполните следующую команду:
$ python manage.py runserver 0.0.0.0:8000
Теперь вы сможете получить доступ к приложению с помощью предпочитаемого вами браузера по адресу http://your_server_ip:8000/.
Затем вы можете получить доступ к странице администратора Mezzanine и войти в систему с вашим администратором по адресу http://your_server_ip:8000/admin
Чтобы остановить работу сервера, вы можете просто нажать Ctrl + C.
Шаг 11: Настройте обратный прокси
Чтобы лучше управлять приложением Mezzanine CMS, нам нужно установить Gunicorn. Gunicorn – это HTTP-сервер с интерфейсом шлюза Python. Это предварительная рабочая модель, портированная из проекта Unicorn Ruby’s. Сервер Gunicorn совместим с большим количеством веб-фреймворков, его реализация проста, не требует много ресурсов и довольно быстр. Чтобы установить его, просто запустите следующие несколько команд.
$ pip install gunicorn $ python manage.py collectstatic $ deactivate $ exit
После завершения установки используйте nano (или предпочитаемый вами текстовый редактор) для создания служебного файла.
# nano /etc/systemd/system/gunicorn.service
После открытия файла установите следующие значения, скопировав и вставив следующее:
[Unit] Description=gunicorn daemon After=network.target [Service] User=mezzanine Group=nginx WorkingDirectory=/home/mezzanine/first_project ExecStart=/home/mezzanine/mezzanine/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/mezzanine/first_project.sock first_project.wsgi:application [Install] WantedBy=multi-user.target
Не забудьте поменять «first_project» на название вашего проекта Mezzanine! Закройте файл и выполните следующую команду, чтобы перезагрузить список служб.
# systemctl daemon-reload
Теперь мы можем запустить-остановить-перезапустить приложение Mezzanine CMS с помощью команды systemctl:
# systemctl start gunicorn
Если вы хотите, чтобы он запускался при загрузке, нам нужно включить его.
systemctl enable gunicorn
Gunicorn был успешно настроен. Теперь, чтобы получить доступ к нему через ваше доменное имя в веб-браузере, мы установим и настроим Nginx для передачи прокси на Gunicorn.
Давайте создадим файл блока сервера Nginx. Убедитесь, что вы изменили your_domain.ru на свое фактическое доменное имя.
# nano /etc/nginx/conf.d/your_domain.ru.conf
Затем вставьте следующее в файл:
server { listen 80; server_name your_domain.ru; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/mezzanine/first_project; } location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://unix:/home/mezzanine/first_project.sock; } }
Сохраните и выйдите после завершения. Выполните следующие команды, чтобы загрузить изменения, запустить Nginx и включить его при загрузке.
# nginx -t # systemctl start nginx # systemctl enable nginx
Чтобы предоставить Nginx разрешения на доступ к вашему приложению Mezzanine CMS, мы должны добавить пользователя Nginx в группу пользователей, которые могут запускать Mezzanine CMS.
# usermod -aG mezzanine nginx
Затем нам также нужно изменить права доступа к каталогу в доме пользователя в Mezzanine.
# chmod 710 /home/mezzanine
Перезапустите Nginx, чтобы изменения вступили в силу.
# systemctl restart nginx
Вот и все, теперь вы сможете получить доступ к своему приложению Mezzanine CMS