Установка Neos CMS на Ubuntu 18.04

Ключевые требования
- Сервер с Ubuntu 18.04. (Подойдёт виртуальная машина, VPS или физический сервер.)
- Установлен пароль root или доступ к учетной записи с sudo.
- Базовые навыки работы в терминале и редактирования файлов (nano, vim).
Важно: если вы настраиваете систему в другой временной зоне, укажите её при настройке PHP (см. раздел про php.ini).
Кому полезно это руководство
- Системным администраторам, которые разворачивают CMS на собственных серверах.
- Разработчикам, которым нужно локально или на удалённом сервере поднять Neos.
- Тем, кто хочет понять шаги настройки LAMP-стека для современного PHP-приложения.
Получение обновлений системы
Перед началом обновите пакеты системы:
apt-get update -y
apt-get upgrade -yПосле завершения обновления рекомендуется перезагрузить сервер, чтобы применить все изменения и новые ядра/модули.
Установка LAMP (Apache, MariaDB, PHP и зависимости)
Neos требует современную версию PHP и ряда расширений. В примере использована PHP 7.2 (как в исходном руководстве для Ubuntu 18.04).
Установите необходимые пакеты:
apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-bcmath php7.2-xml php7.2-cli php7.2-zip curl unzip git -yЗапустите и включите службы Apache и MariaDB:
systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadbИзменение php.ini: откройте файл конфигурации для Apache-PHP и внесите рекомендованные правки:
nano /etc/php/7.2/apache2/php.iniНайдите и измените (или добавьте) следующие строки:
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 150M
max_execution_time = 360
date.timezone = Asia/KolkataВажно: значение date.timezone в примере — Asia/Kolkata. Замените его на свою зону (например, Europe/Moscow) в зависимости от местоположения сервера.
Сохраните и закройте файл.
Настройка MariaDB (безопасность и создание базы данных)
По умолчанию MariaDB требует базовой «подготовки» — запустите вспомогательный скрипт:
mysql_secure_installationРекомендуемые ответы (пример):
Enter current password for root (enter for none):
Set root password? [Y/n]: N
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Далее войдите в оболочку MariaDB и создайте базу данных и пользователя для Neos:
mysql -u root -pВнутри MariaDB выполните:
MariaDB [(none)]> CREATE DATABASE neosdb;
MariaDB [(none)]> CREATE USER 'neos'@'localhost' IDENTIFIED BY 'mypassword';Замените ‘mypassword’ на надёжный пароль. Затем выдайте привилегии:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neosdb.* TO 'neos'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
MariaDB [(none)]> ALTER DATABASE neosdb charset=utf8;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Важно: используйте сильный пароль и, по возможности, управляйте доступом через привилегированные таблицы и бэкапы.
Далее измените конфигурацию MariaDB для улучшения совместимости с InnoDB (Barracuda):
nano /etc/myql/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Проверить статус службы можно так:
systemctl status mariadbОжидаемый вывод показывает, что сервис активен и работает.
Установка Neos CMS (через Composer)
Neos распределяется через Composer. Сначала установите Composer глобально:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composerПерейдите в корневую папку веб-сервера и создайте проект Neos:
cd /var/www/html/composer create-project --no-dev neos/neos-base-distribution neoscmsПрисвойте владельца и права на каталог проекта:
chown -R www-data:www-data /var/www/html/neoscms/
chmod -R 755 /var/www/html/neoscms/Совет: если вы используете системный SFTP/FTP пользователь, корректируйте права соответственно, чтобы CI/CD и веб-сервер могли записывать в нужные каталоги (Data, Packages, var).
Настройка Apache для Neos
Создайте виртуальный хост:
nano /etc/apache2/sites-available/neoscms.confВставьте конфигурацию виртуального хоста (из исходника):
ServerAdmin [email protected]
DocumentRoot /var/www/html/neoscms/Web
ServerName 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]
Сохраните и закройте файл. Далее включите сайт и модуль rewrite:
a2ensite neoscms.conf
a2enmod rewriteПерезапустите Apache:
systemctl restart apache2Проверить статус Apache:
systemctl status apache2Ожидаемый вывод показывает, что apache2 активен (running).
Совет: если Apache жалуется на ServerName, добавьте строку ServerName example.com в /etc/apache2/apache2.conf или укажите фактическое доменное имя или IP.
Доступ к веб-интерфейсу установки Neos
Откройте в браузере:
Вы будете перенаправлены на страницу установки. На старте Neos выдаст файл с паролем настройки:
/var/www/html/neoscms/Data/SetupPassword.txt
Далее будут шаги проверки требований, настройки подключения к БД и создания учетной записи администратора.

Проверьте, что все требуемые расширения PHP отмечены как установленные, затем нажмите «Next».

Введите параметры базы данных (имя базы данных, имя пользователя и пароль), затем создайте администратора и завершите установку.


После успешной установки вы попадёте на страницу завершения установки — перейдите в backend.



Краткий список действий (чек-лист)
- Обновить систему (apt-get update/upgrade).
- Установить Apache, MariaDB, PHP и нужные расширения.
- Настроить php.ini (memory_limit, upload_max_filesize, timezone и т. п.).
- Защитить MariaDB и создать базу/пользователя для Neos.
- Применить рекомендуемые настройки InnoDB.
- Установить Composer и создать проект Neos.
- Назначить правильные права и владельца для папки проекта.
- Создать виртуальный хост Apache и включить rewrite.
- Перейти в /setup и закончить установку через веб-интерфейс.
Рекомендации по безопасности и жёсткая конфигурация
- Удалите или ограничьте доступ к файлам установки после завершения (SetupPassword.txt и т. п.).
- Настройте бэкапы базы данных и файлов (cron, rsync, remote storage).
- Запретите прямой доступ к каталогу Neos Data и конфигурациям через .htaccess или настройки сервера.
- Используйте HTTPS: настройте сертификат (Let’s Encrypt) и принудительное перенаправление на 443.
- Отключите лишние модули Apache и сервисы, которые не используются.
Производительность и права файлов
- Для большинства установок владелец веб-процесса должен быть www-data. Правильная комбинация:
- Владелец: www-data
- Права: 755 для директорий, 644 для файлов, исключая каталоги, где требуется запись (Data, var) — 775/770 по необходимости.
- Рассмотрите использование OPcache и настройки PHP-FPM для повышения производительности.
Отладка и распространённые проблемы
- Не открывается /setup — проверьте права на папки и включён ли mod_rewrite.
- Ошибки подключения к базе — проверьте хост, порт, пользователя и пароль; попробуйте подключиться вручную через mysql client.
- Неполные PHP расширения — проверьте php -m и лог веб-сервера для ошибок.
- 500 Internal Server Error — смотрите журналы Apache (${APACHE_LOG_DIR}/neos_error.log) и PHP error_log.
Альтернативные подходы
- Docker: можно развернуть Neos в контейнерах (PHP-FPM, Nginx/Apache, MariaDB) — удобно для изоляции и контрактов окружения.
- Использование MySQL вместо MariaDB: Neos совместим с MySQL; команды создания базы схожи.
- Использование более новой версии PHP (7.3/7.4) при поддержке дистрибутива, если ваш проект требует новых возможностей.
Роли и обязанности (краткие чек-листы)
Администратор сервера:
- Обновление пакетов ОС и безопасности.
- Управление пользователями и бэкапами.
DevOps-инженер:
- Конфигурация CI/CD, права на каталоги, мониторинг процессов.
- Настройка HTTPS и скриптов деплоя.
Разработчик:
- Настройка локального окружения, Composer зависимости, миграции.
- Отладка и перенос конфигураций в прод.
Модель принятия решений (когда выбирать Docker vs bare metal)
- Если вам нужен быстрый перенос окружения и стабильность версий — Docker.
- Если приоритет — производительность на железе и минимальная прослойка — bare metal / VM с прямой установкой.
flowchart TD
A[Начало] --> B{Обновлён сервер?}
B -- Нет --> C[apt-get update/upgrade]
B -- Да --> D[Установить Apache/MariaDB/PHP]
D --> E[Настроить php.ini]
E --> F[Настроить MariaDB и создать БД]
F --> G[Установить Composer и Neos]
G --> H[Настроить Apache VirtualHost]
H --> I[Перейти на /setup]
I --> J[Завершить установку]
J --> K[Готово]Критерии приёмки
- Страница http://example.com/setup доступна из браузера.
- Проверка зависимостей в интерфейсе Neos проходит без ошибок.
- Создана админ-учётная запись и выполнён вход в backend.
- База данных содержит таблицы Neos и доступна приложению.
Небольшой словарь терминов (1‑строчная справка)
- LAMP: стек Linux + Apache + MariaDB/MySQL + PHP.
- Composer: менеджер пакетов для PHP.
- VirtualHost: конфигурация виртуального хоста в Apache.
Заключение
Поздравляем — вы установили Neos CMS на Ubuntu 18.04. Теперь можно настраивать сайты, шаблоны и развёртывать контент-приложения. Если вы готовите продакшн-сервер, завершите настройку HTTPS, бэкапов и мониторинга.
Important: храните резервные копии и не оставляйте стандартные пароли.
Если возникнут конкретные ошибки, опишите шаг, лог и вывод команды — это поможет предложить точное решение.
Краткое резюме
- Neos можно установить на Ubuntu 18.04 через Composer и стандартный LAMP-стек.
- Обязательно настройте права, безопасный доступ к MariaDB и HTTPS для продакшн.
- Используйте приведённые чек-листы и отладочные советы при возникновении проблем.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone