Skip to Content
РуководстваНастройка веб-сервера

Настройка веб-сервера для Flute CMS

Правильная настройка веб-сервера критически важна для корректной работы Flute CMS. В этом руководстве рассмотрены все популярные панели управления и серверы.

⚠️

Важно! Корневая папка сайта должна указывать на папку public/ из архива Flute CMS, а не на корень проекта!

Панели управления хостингом

FastPanel

FastPanel - современная панель управления хостингом с удобным интерфейсом.

Войдите в FastPanel

  1. Откройте браузер и перейдите по адресу вашей панели (обычно https://ваш-домен:8888)
  2. Введите логин и пароль администратора

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

  1. В главном меню выберите “Сайты”
  2. Нажмите “Добавить сайт”
  3. Заполните поля:
    • Домен: ваш домен (например, example.com)
    • Версия PHP: выберите 8.2 или выше
    • Корневая папка: оставьте по умолчанию или укажите public_html

Настройте PHP

  1. Перейдите в раздел “PHP” для вашего сайта
  2. Убедитесь, что включены расширения:
    • opcache
    • pdo_mysql
    • gd
    • bcmath
    • json
    • ioncube
    • mbstring
    • simplexml
    • zip
    • curl
    • gmp

Загрузите файлы Flute CMS

  1. В разделе “Файлы” перейдите в папку сайта
  2. Загрузите архив Flute CMS
  3. Распакуйте архив
  4. Важно: Переместите содержимое папки public/ в корень сайта, а остальные файлы - в папку выше корня

Настройте Document Root

  1. В настройках сайта найдите “Document Root”
  2. Укажите путь к папке public/ (например, /home/user/domains/example.com/public)
  3. Сохраните изменения

Создайте базу данных

  1. Перейдите в раздел “Базы данных”
  2. Нажмите “Создать базу данных”
  3. Заполните:
    • Имя базы: flute_cms
    • Пользователь: создайте нового пользователя
    • Пароль: сгенерируйте надёжный пароль
  4. Запишите данные для подключения

В FastPanel обычно не требуется дополнительная настройка .htaccess - всё работает автоматически.

Настройка веб-серверов напрямую

⚠️

Этот раздел предназначен для опытных пользователей, которые хотели бы настроить веб-сервер напрямую. Если вы не знаете, что делаете, лучше используйте панели управления хостингом.

Apache

Конфигурация для Apache веб-сервера.

Виртуальный хост

Создайте файл конфигурации виртуального хоста:

<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/flute-cms/public <Directory /var/www/flute-cms/public> AllowOverride All Require all granted # Включить mod_rewrite RewriteEngine On # Обработка всех запросов через index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] </Directory> # Запретить доступ к служебным папкам <Directory /var/www/flute-cms/storage> Require all denied </Directory> <Directory /var/www/flute-cms/config> Require all denied </Directory> # Логи ErrorLog ${APACHE_LOG_DIR}/flute-cms-error.log CustomLog ${APACHE_LOG_DIR}/flute-cms-access.log combined </VirtualHost>

SSL конфигурация

Для HTTPS добавьте:

<VirtualHost *:443> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/flute-cms/public # SSL настройки SSLEngine on SSLCertificateFile /path/to/certificate.crt SSLCertificateKeyFile /path/to/private.key SSLCertificateChainFile /path/to/chain.crt # Остальная конфигурация аналогична HTTP <Directory /var/www/flute-cms/public> AllowOverride All Require all granted RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] </Directory> </VirtualHost>

Файл .htaccess

Убедитесь, что в папке public/ есть файл .htaccess:

<IfModule mod_rewrite.c> RewriteEngine On # Перенаправление на HTTPS (опционально) # RewriteCond %{HTTPS} off # RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Обработка запросов RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] </IfModule> # Безопасность <Files "*.env"> Require all denied </Files> <Files "composer.*"> Require all denied </Files> # Кэширование статических файлов <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" </IfModule>

Проверка конфигурации

После настройки веб-сервера выполните следующие проверки:

1. Проверка доступности

Откройте ваш сайт в браузере. Вы должны увидеть:

  • Страницу установки Flute CMS (если установка не завершена)
  • Главную страницу сайта (если установка завершена)

2. Проверка PHP

Создайте временный файл info.php в корне сайта:

<?php phpinfo(); ?>

Откройте https://ваш-сайт.com/info.php и проверьте:

  • Версию PHP (должна быть 8.2+)
  • Наличие всех необходимых расширений
  • Настройки Opcache
⚠️

Удалите файл info.php после проверки для безопасности!

3. Проверка прав доступа

Убедитесь, что веб-сервер может записывать в папки:

  • storage/
  • storage/logs/
  • storage/app/cache/
  • public/uploads/

4. Проверка .htaccess / URL rewriting

Попробуйте открыть несуществующую страницу (например, /test). Вы должны увидеть:

  • 404 страницу Flute CMS
  • Или страницу установки

Если видите ошибку 404 веб-сервера, значит URL rewriting настроен неправильно.

Возможные проблемы

Ошибка 500 Internal Server Error

Причины:

  • Неправильные права доступа
  • Отсутствующие PHP расширения
  • Ошибки в .htaccess
  • Недостаточно памяти PHP

Решение:

  1. Проверьте логи веб-сервера
  2. Включите отображение ошибок PHP
  3. Проверьте права доступа (755 или 777 для storage/)
  4. Увеличьте memory_limit в PHP

Ошибка 404 Not Found

Причины:

  • Неправильный Document Root
  • Не работает URL rewriting
  • Отсутствует index.php

Решение:

  1. Проверьте, что Document Root указывает на папку public/
  2. Убедитесь, что mod_rewrite включён (Apache) или try_files настроен (Nginx)
  3. Проверьте наличие файла public/index.php

Белая страница

Причины:

  • Ошибки PHP
  • Недостаточно памяти
  • Отсутствующие зависимости

Решение:

  1. Включите отображение ошибок PHP
  2. Проверьте логи PHP
  3. Убедитесь, что папка vendor/ существует и содержит зависимости

Проблемы с загрузкой файлов

Причины:

  • Неправильные права доступа
  • Ограничения PHP на загрузку файлов

Решение:

  1. Установите права 755 или 777 на public/uploads/
  2. Проверьте настройки upload_max_filesize и post_max_size в PHP
  3. Убедитесь, что file_uploads = On в PHP

Если проблемы не решаются, обратитесь за помощью в Discord сообщество или создайте issue на GitHub.

Оптимизация производительности

После настройки веб-сервера рекомендуется:

  1. Включить Opcache для ускорения PHP
  2. Настроить кэширование статических файлов
  3. Включить сжатие (gzip/brotli)

Подробнее об оптимизации читайте в разделе Оптимизация производительности.