Установка Neos CMS с Apache на Ubuntu 20.04
Важно: команды выполняйте под root или через sudo. Поменяйте примеры паролей и имён хостов на реальные значения перед применением.
Основная цель
Установить рабочую инстанцию Neos CMS на Ubuntu 20.04 с веб-сервером Apache и базой данных MariaDB, чтобы получить готовую панель администрирования и сайт.
Кому полезно
- Сисадминам, которые разворачивают сайт на LAMP-стеке
- Разработчикам, внедряющим Neos на проектах
- Владельцам бизнеса, желающим локально протестировать Neos
Краткая структура статьи
- Требования и подготовка сервера
- Установка LAMP-компонентов (Apache, MariaDB, PHP)
- Создание базы данных для Neos
- Установка Composer и Neos
- Конфигурация Apache (виртуальный хост)
- Доступ и финальная настройка через веб-инсталлятор
- Чек-листы, безопасность и отладка
Предварительные требования
- Сервер с Ubuntu 20.04 LTS
- Домен, указывающий на IP сервера (например, neos.example.com)
- Доступ root или пользователь с sudo
- Открытые порты 80 (HTTP) и опционально 443 (HTTPS)
1. Подготовка системы
Всегда обновляйте кэш пакетов перед установкой:
apt-get update -y
apt-get upgrade -yСовет: установите базовый набор утилит (если ещё нет):
apt-get install -y curl unzip git nano2. Установка LAMP-компонентов
Установите Apache, MariaDB, PHP и расширения, необходимые для Neos:
apt-get install -y apache2 mariadb-server php libapache2-mod-php php-common php-mysql php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-bcmath php-xml php-cli php-zip curl unzip gitПосле установки откройте файл конфигурации PHP для Apache и внесите рекомендуемые изменения:
nano /etc/php/7.4/apache2/php.iniПример изменяемых строк (подберите вашу таймзону, например Europe/Moscow для России):
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 150M
max_execution_time = 360
date.timezone = Europe/MoscowСохраните файл и перезапустите Apache:
systemctl restart apache2Замечание: если у вас другая версия PHP, отрегулируйте путь к php.ini.
3. Создание базы данных MariaDB для Neos
Запустите скрипт безопасной настройки MariaDB:
mysql_secure_installationОтвечайте на вопросы по безопасности (рекомендуется включать удаление анонимных пользователей, запрет удалённого входа для root, удаление тестовой БД).
Войдите в MariaDB и создайте базу и пользователя (замените mypassword и neosname на свои значения):
mysql -u root -p
CREATE DATABASE neosdb;
CREATE USER 'neos'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON neosdb.* TO 'neos'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
ALTER DATABASE neosdb charset=utf8mb4;
FLUSH PRIVILEGES;
EXIT;Измените конфигурацию MariaDB для оптимальной работы InnoDB (откройте файл):
nano /etc/mysql/mariadb.conf.d/50-server.cnfДобавьте или отредактируйте блок, включив следующие строки:
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_file_per_table = 1
innodb_default_row_format = dynamicПерезапустите MariaDB:
systemctl restart mariadbВажно: используйте utf8mb4 для корректной поддержки эмодзи и всех символов Unicode.
4. Установка Composer и Neos CMS
Установите Composer (менеджер зависимостей PHP):
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composerПерейдите в веб-корень Apache и создайте проект Neos:
cd /var/www/html/
composer create-project --no-dev neos/neos-base-distribution neoscmsУстановите права и владельца для каталога Neos:
chown -R www-data:www-data /var/www/html/neoscms/
chmod -R 755 /var/www/html/neoscms/Примечание: при работе в продакшне используйте более строгие права и разграничение пользователей.
5. Настройка Apache: виртуальный хост для Neos
Создайте файл конфигурации виртуального хоста:
nano /etc/apache2/sites-available/neoscms.confВставьте конфигурацию (замените ServerName и ServerAdmin):
ServerAdmin admin@example.com
DocumentRoot /var/www/html/neoscms/Web
ServerName neos.example.com
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/neos_error.log
CustomLog ${APACHE_LOG_DIR}/neos_access.log combined
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
Активируйте сайт и модуль перезаписи URL:
a2ensite neoscms.conf
a2enmod rewrite
systemctl restart apache2
systemctl status apache2Если планируете HTTPS, настройте Certbot и включите редирект с 80 на 443.
6. Доступ к веб-инсталлятору Neos
Откройте в браузере http://neos.example.com и следуйте веб-мастеру установки:

- Нажмите «Go to setup». Используйте пароль из файла SetupPassword.txt.

- Проверьте требования (PHP-расширения и права файлов).

- Укажите параметры базы данных (имя, пользователь, пароль, хост).

- Создайте административный аккаунт.

- Создайте сайт (название, домен и т.д.) и завершите установку.

После успешной установки нажмите «Go to the backend» и войдите в админ-панель.

7. Критерии приёмки
- Веб-страница по ServerName открывается и показывает инсталлятор Neos
- Инсталлятор принимает данные БД и успешно записывает конфигурацию
- Админ-панель доступна, создан администратор и первая страница сайта доступна
- Права на файлы и директории установлены корректно (www-data владелец)
Чек-лист для продакшна (минимум)
- Заменить тестовые пароли на сильные
- Настроить HTTPS (Let’s Encrypt/Certbot)
- Настроить регулярные бэкапы базы данных и файлов
- Включить firewall (ufw) и закрыть ненужные порты
- Настроить мониторы и логирование (logrotate)
Ролевые задачи (кто что делает)
- Системный администратор: установка LAMP, безопасность системы, бэкапы, SSL
- Разработчик: Composer, кастомные пакеты, миграции, деплой
- Контент-менеджер: наполнение сайта через бэкенд Neos
Безопасность и жёсткая конфигурация (рекомендации)
- Отключите показ версий PHP/Apache в заголовках
- Используйте ограниченную БД-учётную запись для Neos
- Запретите доступ к каталогу /Configuration и /Packages через веб
- Периодически выполняйте composer update на тестовой среде и тестируйте перед продом
Отладка: частые ошибки и их решения
- 500 Internal Server Error после установки: проверьте права на файлы, логи Apache (/var/log/apache2/neos_error.log)
- Ошибки подключения к БД: проверьте правильность имени БД, пользователя, пароля и хоста (localhost vs 127.0.0.1)
- Отсутствие PHP-расширений: установите отсутствующие расширения и перезапустите Apache
Быстрый план действий для отката/rollback
- Отключить сайт: a2dissite neoscms.conf && systemctl reload apache2
- Восстановить бэкап базы данных: mysql -u root -p neosdb < backup.sql
- Восстановить файлы из архива: tar xzf neos_www_backup.tar.gz -C /var/www/html/
- Проверить логи и права, затем включить сайт снова
Мини-методология деплоя (на примере простой среды)
- Подготовить staging-сервер идентичный продакшну
- Выполнить composer install и миграции на staging
- Протестировать функциональность Neos и плагины
- Выполнить бэкап продакшна, затем деплой на прод
Факты и полезные заметки
- Neos использует Symfony и требует поддерживаемых версий PHP и расширений
- Рекомендуемая кодировка БД — utf8mb4 для полной совместимости Unicode
- Composer — ключевой инструмент для установки и обновления зависимостей
Полезные команды для администрирования
- Перезапуск Apache: systemctl restart apache2
- Проверка статуса: systemctl status apache2
- Перезапуск MariaDB: systemctl restart mariadb
- Логи Apache: tail -f /var/log/apache2/neos_error.log
Заключение
Поздравляем — вы установили Neos CMS на Ubuntu 20.04 с Apache и MariaDB. После базовой установки обязательно настройте SSL, регулярно делайте бэкапы и проверьте требования безопасности. Если появятся ошибки — сначала смотрите логи и проверяйте права файлов, после — PHP-расширения и конфигурацию БД.
Важно: в рабочих средах избегайте использования root-паролей в явном виде в скриптах; применяйте секретные хранилища и CI/CD для безопасного деплоя.
Краткий список ссылок для чтения (официальные ресурсы):
- Документация Neos: https://neos.io
- Документация Apache: https://httpd.apache.org/
- Документация MariaDB: https://mariadb.org
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone