Гид по технологиям

Установка и настройка Neos CMS на CentOS 7

• 6 min read • DevOps • Обновлено 18 Nov 2025
Установка Neos CMS на CentOS 7
Установка Neos CMS на CentOS 7

Neos — гибкая CMS на PHP для создания и редактирования сайтов. В этой инструкции пошагово показано, как подготовить сервер CentOS 7, установить LAMP (Apache, MariaDB, PHP), настроить базу данных, запустить установщик Neos через веб-интерфейс и выполнить базовую послесборку и меры безопасности. Включены советы по правам, SELinux, отладке и альтернативные подходы.

Кому полезна эта инструкция

Коротко: системным администраторам и разработчикам, которые хотят развернуть Neos на чистом сервере CentOS 7. Опыт работы в командной строке и права sudo требуются.

Основные преимущества Neos

  • Поддержка нескольких сайтов в одной установке.
  • Человеко-читаемые URL «из коробки».
  • Роли и управление доступом для авторов и админов.
  • Интеграция с системами контроля версий и удобное деплой-окружение.

Содержание

  1. Требования
  2. Подготовка системы
  3. Установка LAMP (Apache + MariaDB + PHP)
  4. Настройка базы данных
  5. Установка Neos через Composer
  6. Веб-установщик и финальная настройка
  7. Безопасность, права, SELinux и бекап
  8. Отладка и типичные ошибки
  9. Альтернативы и миграция
  10. Критерии приёмки
  11. Итог

Требования

  • Сервер с CentOS 7 (физический или виртуальный).
  • Пользователь не-root с правами sudo.
  • Доступ к интернету для загрузки пакетов и Composer.

Подготовка системы

Обновите систему перед началом:

sudo yum update -y
sudo reboot

Важно: перезагрузка применит обновления ядра и сервисов.

Установка LAMP сервера

Neos работает поверх веб-сервера, использует PHP и хранит данные в MariaDB. Установим Apache, MariaDB и PHP 7.x.

  1. Установите Apache:
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
  1. Добавьте репозиторий MariaDB и установите сервер:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
  1. Установите EPEL и Webtatic (источник для современных версий PHP на CentOS 7):
sudo yum install epel-release -y
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  1. Установите PHP 7.* и часто требуемые расширения. Пример для PHP 7.1 (подберите актуальную ветку для вашего проекта):
sudo yum install php71w php71w-mbstring php71w-pdo_mysql php71w-cli php71w-tokenizer php71w-pecl-imagick php71w-xml php71w-mcrypt php71w-opcache php71w-imap php71w-process php71w-intl -y

Проверьте версию PHP:

php -v

Пример вывода (примерно):

PHP 7.1.5 (cli) (built: May 12 2017 21:54:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
  1. Отредактируйте /etc/php.ini: настройте таймзону, память и стек вложенности xdebug (если установлен):
sudo nano /etc/php.ini

Измените или добавьте значения:

date.timezone = Europe/Moscow
memory_limit = 250M
xdebug.max_nesting_level = 500

Сохраните файл.

Important: если вы на удалённом сервере с другим часовым поясом, подставьте свою зону (например Europe/Moscow).

Настройка базы данных (MariaDB)

Запустите скрипт безопасности и ответьте на вопросы для базовой защиты MariaDB:

sudo mysql_secure_installation

Рекомендуемые ответы:

  • Enter current password for root (enter for none): нажать Enter
  • Set root password? [Y/n]: Y
  • New password: <ваш-сильный-пароль>
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y (если не нужен удалённый root)
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

После защиты войдите в консоль и создайте базу и пользователя Neos:

mysql -u root -p

Внутри MariaDB выполните:

CREATE DATABASE neosdb CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'neosuser'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON neosdb.* TO 'neosuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Note: используйте надёжный пароль и сохраняйте его в менеджере секретов.

Установка Neos CMS

  1. Установите Composer (менеджер зависимостей PHP):
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer
  1. Перейдите в корень веб-документов и создайте проект Neos:
cd /var/www/html
sudo composer create-project --no-dev neos/neos-base-distribution neos
  1. Настройте владельца и права на каталог Neos. Исправляем распространённую опечатку и даём корректные права:
sudo chown -R apache:apache /var/www/html/neos
sudo find /var/www/html/neos -type d -exec chmod 2755 {} \;
sudo find /var/www/html/neos -type f -exec chmod 0644 {} \;

Объяснение: не давайте 777 в продакшене. Временные решения 777 облегчают установку, но создают риски безопасности. Используйте нужные права и владельца веб-сервера.

  1. Создайте виртуальный хост Apache для Neos:
sudo nano /etc/httpd/conf.d/neos.conf

Вставьте конфигурацию (замените example.com на ваш домен):


    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/neos/Web"
    ServerName example.com
    ServerAlias www.example.com
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    
    ErrorLog "/var/log/httpd/neos-error_log"
    CustomLog "/var/log/httpd/neos-access_log" combined

Затем перезапустите Apache:

sudo systemctl restart httpd

Если используется SELinux, см. раздел ниже.

Доступ к веб-установщику Neos

Откройте порт HTTP/HTTPS в firewalld:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

Перейдите в браузере на http://example.com — откроется страница установки.

Страница входа Neos

Подсказка: пароли установки берутся из файла SetupPassword.txt. Получите его так:

cat /var/www/html/neos/Data/SetupPassword.txt

Пример строки в файле (информативно):

The setup password is: MLGJHlj6apttd you successfully logged in, this file is automatically deleted for security reasons.

Введите ключ на странице установки и продолжайте шаги: проверка требований, ввод данных БД, создание администратора, создание сайта.

Проверка требований Neos

Убедитесь, что PHP-расширение imagick или gmagick установлено и выбрано.

Настройка базы данных

Вставьте имя пользователя и пароль БД, драйвер — MySQL/MariaDB.

Добавление администратора

Создайте учётную запись администратора.

Создание сайта

После завершения установки нажмите Go to backend и войдите в бэкенд.

Экран входа Neos после установки

Панель Neos CMS

Безопасность, права и SELinux

Important: после установки выполните обязательные шаги безопасности.

  • Удалите или защитите файл Data/SetupPassword.txt — Neos обычно удаляет его автоматически.
  • Убедитесь, что каталоги логов и Data доступны веб-серверу, но не открыты для записи всем пользователям.
  • Не используйте chmod 777 в продакшене.

Если включён SELinux, нужно выставить контекст для директорий:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/neos(/.*)?"
sudo restorecon -Rv /var/www/html/neos

Если semanage отсутствует, установите policycoreutils-python:

sudo yum install policycoreutils-python -y

Бэкап и восстановление

  • Регулярно дампьте базу данных:
mysqldump -u root -p neosdb > neosdb-backup-$(date +%F).sql
  • Бекап файлов сайта (особенно /var/www/html/neos/Data): используйте rsync или tar.

Отладка и типичные ошибки

  1. Ошибка прав доступа при загрузке медиа-файлов — проверьте владельца и контекст SELinux.
  2. Ошибки расширений PHP (imagick, gd) — установите соответствующие пакеты и перезапустите php-fpm/Apache.
  3. Не удаётся подключиться к БД — проверьте user@host и GRANT, а также разделение socket vs порт.
  4. 500 Internal Server Error — смотрите /var/log/httpd/neos-error_log и логи Neos в Data/Logs.

Полезные команды:

sudo tail -n 200 /var/log/httpd/neos-error_log
sudo tail -n 200 /var/www/html/neos/Data/Logs/*
sudo systemctl status httpd mariadb

Альтернативные подходы

  • Docker: быстрое развёртывание Neos в контейнерах (образ Apache/PHP + MariaDB). Удобно для тестовых сред.
  • Использование готового образа VM или Vagrant для локальной разработки.
  • Установка на Nginx + php-fpm вместо Apache — потребует отличной конфигурации root и rewrite.

Краткая инструкция Docker (примерная):

  • Создать docker-compose.yml с сервисами: web (PHP/Apache), db (mariadb), phpmyadmin (по желанию).
  • Mонтировать /var/www/html/neos как volume.

Совместимость и рекомендации по версиям

  • Neos требует PHP >= 7.0, но рекомендуется использовать поддерживаемую ветку PHP 7.4 или 8.x, если Neos-версия совместима.
  • MariaDB 10.x и MySQL 5.7+ обычно поддерживаются.
  • Всегда проверяйте системные требования конкретной версии Neos в официальной документации.

Мини-методология деплоя (шаги)

  1. Подготовка ОС и бэкапов.
  2. Установка требуемого стекa (Apache/MariaDB/PHP).
  3. Создание БД и пользователя.
  4. Установка Neos через Composer в staging окружении.
  5. Тестирование (функциональные проверки).
  6. Переключение DNS и включение HTTPS с certbot / Let’s Encrypt.
  7. Мониторинг логов и плановые бэкапы.

Проверки и критерии приёмки

  • Сайт открывается по домену и возвращает 200 OK.
  • Веб-установщик Neos завершает процесс без ошибок.
  • Администратор может зайти в бэкенд и создать страницу.
  • Загрузка медиа и рендер страниц работают корректно.
  • База данных принимает и сохраняет записи.

Тестовые сценарии (примеры)

  • Создать страницу в бэкенде, опубликовать её, проверить URL в браузере.
  • Загрузить изображение > 2 МБ, убедиться, что imagick корректно ресайзит изображение.
  • Выполнить дамп и восстановление базы, проверить целостность данных.

Когда этот подход не подходит (контрпримеры)

  • Нужна очень лёгкая «статическая» CMS — возможно, проще использовать статический генератор.
  • Требуется строгое управление пакетами PHP через SCL или модульную систему, где Webtatic/EPEL неприемлемы.
  • Ограничения хостинга, где нет прав на установку Composer или расширений.

Миграция и обновление

  • Перед обновлением Neos или PHP сделайте полный бэкап БД и файлов.
  • Тестируйте обновления на staging сервере.
  • При переходе с CentOS 7 на CentOS 8/Stream учтите изменения в поставщиках PHP и systemd unit-файлах.

Краткая памятка по безопасности

  • Не храните пароли в открытых файлах и репозиториях.
  • Используйте HTTPS (Let’s Encrypt) для публичных сайтов.
  • Регулярно обновляйте систему и PHP-расширения.

1‑строчный глоссарий

  • Composer — менеджер зависимостей для PHP.
  • Neos — CMS на PHP с собственным фреймворком Flow.
  • SELinux — механизм мандатной безопасности в ядре Linux.

Итог

Поздравляю — Neos установлен и готов к использованию. После базовой настройки уделите время правам доступа, SELinux и настройке резервного копирования. Для продакшена рекомендую перевести сайт на HTTPS и следить за обновлениями PHP и Neos.

Если хотите, могу подготовить:

  • docker-compose файл для быстрого развёртывания Neos;
  • Nginx-конфигурацию вместо Apache;
  • чеклист перед выводом в продакшн.

Summary

  • Neos устанавливается через Composer в /var/www/html/neos.
  • MariaDB требует создания базы и пользователя.
  • Важны корректные права, SELinux и безопасность.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро