Установка и настройка Neos CMS на CentOS 7
Neos — гибкая CMS на PHP для создания и редактирования сайтов. В этой инструкции пошагово показано, как подготовить сервер CentOS 7, установить LAMP (Apache, MariaDB, PHP), настроить базу данных, запустить установщик Neos через веб-интерфейс и выполнить базовую послесборку и меры безопасности. Включены советы по правам, SELinux, отладке и альтернативные подходы.
Кому полезна эта инструкция
Коротко: системным администраторам и разработчикам, которые хотят развернуть Neos на чистом сервере CentOS 7. Опыт работы в командной строке и права sudo требуются.
Основные преимущества Neos
- Поддержка нескольких сайтов в одной установке.
- Человеко-читаемые URL «из коробки».
- Роли и управление доступом для авторов и админов.
- Интеграция с системами контроля версий и удобное деплой-окружение.
Содержание
- Требования
- Подготовка системы
- Установка LAMP (Apache + MariaDB + PHP)
- Настройка базы данных
- Установка Neos через Composer
- Веб-установщик и финальная настройка
- Безопасность, права, SELinux и бекап
- Отладка и типичные ошибки
- Альтернативы и миграция
- Критерии приёмки
- Итог
Требования
- Сервер с CentOS 7 (физический или виртуальный).
- Пользователь не-root с правами sudo.
- Доступ к интернету для загрузки пакетов и Composer.
Подготовка системы
Обновите систему перед началом:
sudo yum update -y
sudo rebootВажно: перезагрузка применит обновления ядра и сервисов.
Установка LAMP сервера
Neos работает поверх веб-сервера, использует PHP и хранит данные в MariaDB. Установим Apache, MariaDB и PHP 7.x.
- Установите Apache:
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd- Добавьте репозиторий 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- Установите EPEL и Webtatic (источник для современных версий PHP на CentOS 7):
sudo yum install epel-release -y
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm- Установите 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- Отредактируйте /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
- Установите Composer (менеджер зависимостей PHP):
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer- Перейдите в корень веб-документов и создайте проект Neos:
cd /var/www/html
sudo composer create-project --no-dev neos/neos-base-distribution neos- Настройте владельца и права на каталог 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 облегчают установку, но создают риски безопасности. Используйте нужные права и владельца веб-сервера.
- Создайте виртуальный хост 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 — откроется страница установки.

Подсказка: пароли установки берутся из файла 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.Введите ключ на странице установки и продолжайте шаги: проверка требований, ввод данных БД, создание администратора, создание сайта.

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

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

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

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


Безопасность, права и 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.
Отладка и типичные ошибки
- Ошибка прав доступа при загрузке медиа-файлов — проверьте владельца и контекст SELinux.
- Ошибки расширений PHP (imagick, gd) — установите соответствующие пакеты и перезапустите php-fpm/Apache.
- Не удаётся подключиться к БД — проверьте user@host и GRANT, а также разделение socket vs порт.
- 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 в официальной документации.
Мини-методология деплоя (шаги)
- Подготовка ОС и бэкапов.
- Установка требуемого стекa (Apache/MariaDB/PHP).
- Создание БД и пользователя.
- Установка Neos через Composer в staging окружении.
- Тестирование (функциональные проверки).
- Переключение DNS и включение HTTPS с certbot / Let’s Encrypt.
- Мониторинг логов и плановые бэкапы.
Проверки и критерии приёмки
- Сайт открывается по домену и возвращает 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 и безопасность.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента