Развёртывание Movim
В этом руководстве описаны различные шаги, которые необходимо предпринять для развёртывания Movim на вашем веб-сервере.
Для правильной работы Movim требуется настроить некоторые зависимости.
apt install composer php-fpm php-curl php-mbstring php-imagick php-gd php-pgsql php-xml
Перед попыткой развёртывания проекта необходимо в определённой степени понять его общую архитектуру.
При использовании Movim он действует как посредник между браузером пользователя и сервером XMPP. Все данные, отправляемые и получаемые этими двумя сторонами, управляются ядром Movim, некоторые из них также сохраняются в базе данных (для целей кэширования).
С точки зрения браузера вся связь с Movim осуществляется с помощью WebSockets (за исключением загрузки страницы по умолчанию). Эти сокеты проксируются через ваш веб-сервер к демону Movim. На стороне XMPP Movim подключается с использованием чистых TCP-соединений (как любой клиент XMPP).
Таким образом, все эти потоки будут управляться демоном Movim. Этот демон должен быть запущен с тем же пользователем и правами, что и веб-сервер (в большинстве случаев с использованием пользователя www-data).
Вы можете просто следовать тегам GIT или загрузить стабильную версию этого репозитория на нашей странице релизов [https://github.com/movim/movim/releases]. Затем следуйте шагам из раздела «Установка зависимостей» [https://github.com/movim/movim/wiki/Install-Movim#dependency-installation].
Вы также можете развернуть Movim с помощью нашего официального репозитория Docker Hub [https://hub.docker.com/r/movim/movim].
Версия Movim для разработки поставляется только с ядром проекта. Чтобы установить зависимости, вам нужно установить Git для загрузки исходных кодов из разных репозиториев.
# Установить Git, чтобы Composer
# мог клонировать зависимости в ваш проект
apt-get install git
Git необходим для правильного получения исходного кода из официального репозитория. Мы рекомендуем выполнять следующие команды с пользователем www-data (который является общим пользователем для большинства веб-серверов GNU/Linux).
cd /var/www/ # Серверная директория
sudo -s -u www-data # Мы используем пользователя веб-сервера
# Мы копируем исходный код из репозитория
git clone https://github.com/movim/movim.git
Movim требует нескольких зависимостей для правильной работы. Эти библиотеки управляются с помощью Composer [https://getcomposer.org/].
cd movim
composer install
Вы можете установить Composer в каталог Movim с помощью следующей команды или с помощью вашего менеджера пакетов:
curl -sS https://getcomposer.org/installer | php
Теперь вы сможете установить зависимости проекта.
# Наконец установите зависимости вашего проекта
php composer.phar install
Вы также можете обновить текущий экземпляр Movim с помощью Следующие строки (всё равно проверьте, не содержат ли обновления несовместимости с вашей текущей версией).
cd /var/www/movim/
git pull # Чтобы обновить исходный код Movim
composer install # Чтобы обновить библиотеки
Если обновление включает некоторые изменения в базе данных, вы можете запустить новые миграции (см. ниже).
Эту часть руководства можно выполнить для стабильной и тестовой установки. Их нужно применять в правильном порядке.
Movim требует разрешений на чтение в своей корневой папке и рекурсивно для правильного развёртывания. Он также попытается создать две папки:
Вы можете создать папки заранее, и он пропустит этот шаг, или вы можете позволить ему это сделать, предоставив ему права на запись в корневую папку:
# Используйте пользователя root для выполнения команды
chown www-data movim && chown www-data movim/public && chmod u+rwx movim
Возможно, вам придётся заменить пользователя www-data
на пользователя apache
или caddy
в последней команде в зависимости от вашей ОС или веб-сервера, который у вас есть.
Movim использует DotEnv для настройки.
Чтобы настроить Movim, скопируйте файл .env.example
в новый файл .env
и заполните в нём различные настройки.
cp .env.example .env
nano .env
Также можно установить эти настройки, используя непосредственно переменные среды, как в Docker.
После настройки базы данных в файле .env
создайте или обновите структуру базы данных с помощью Composer.
composer movim:migrate
Чтобы браузер мог взаимодействовать с сервером Movim, необходимо запустить демон. Его также необходимо запускать от имени пользователя веб-сервера.
sudo -s -u www-data # Если вы используете Ubuntu
Затем запустите демон, используя параметры, настроенные в файле .env
.
cd /var/www/movim
php daemon.php start # Запустить демон
Если всё работает, как ожидалось, вы должны увидеть:
Movim daemon launched
Base URL : {публичный URL вашего модуля}
…
Этот демон будет убит, когда ваша консоль закроется. Рассмотрите возможность использования systemd
или сценариев init
, чтобы демон продолжал работать на переднем плане даже после вашего отключения. В каталоге etc/
есть примеры файлов запуска, таких как файл службы systemd
.
Создайте виртуальный хост на предпочитаемом вами веб-сервере и укажите корень на файл public/index.php
. Вы можете посмотреть файлы конфигурации по умолчанию, которые мы предоставляем, если вам нужна помощь в этой части.
Movim разработан для работы в корне домена или поддомена. Не пытайтесь развернуть его как подкаталог, иначе вы можете столкнуться с некоторыми неожиданными проблемами.
Когда вы запускаете демон, он генерирует конфигурацию, которую необходимо применить к файлу Virtualhost, чтобы «проксировать» WebSockets, и отображает её в консоли.
Эти конфигурации динамически генерируются в соответствии с вашими текущими настройками. Независимо от того, используете ли вы Apache, Caddy или nginx, будут отображаться обе возможные конфигурации, и они будут отображаться даже после того, как вы успешно их применили.
Movim автоматически проксирует внешние изображения, чтобы защитить IP-адреса своих пользователей и предотвратить загрузку больших изображений без согласия пользователя. Этот внутренний прокси уже запрашивает у браузера кэширование изображений на несколько часов.
Однако настоятельно рекомендуется также настроить кэш на стороне сервера, чтобы предотвратить запрос одного и того же ресурса несколькими пользователями через Movim.
Вам потребуются модули Apache cache_disk
, expires
и headers
. Вы можете включить их с помощью команды a2enmod. Пример: a2enmod cache_disk
Затем добавьте этот раздел в свой Movim VirtualHost
CacheQuickHandler on
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie
<Location /picture>
CacheEnable disk
CacheHeader on
CacheDefaultExpire 6000
CacheMaxExpire 3600
CacheIgnoreNoLastMod On
ExpiresActive on
ExpiresDefault A3600
Header set Cache-Control public
Header merge Cache-Control max-age=604800
FileETag All
</Location>
После этого перезагрузите Apache.
На nginx
Для этого вы можете настроить fastcgi_cache
на nginx, проверьте соответствующую документацию.
Добавьте это в свой nginx.conf
в разделе http
:
http {
…
fastcgi_cache_path /tmp/nginx_cache levels=1:2 keys_zone=nginx_cache:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
}
И проверьте соответствующую документацию в нашем примере файла nginx movim.conf.
На Caddy
В случае с Caddy вы можете использовать xcaddy и скомпилировать сервер со следующими модулями: cache-handler, cdp-cache.
Панель администратора доступна непосредственно из пользовательского интерфейса Movim после входа администратора.
Чтобы установить логин администратора пользователя хотя бы один раз (чтобы зарегистрировать его в базе данных), вы можете сделать его администратором с помощью следующей команды:
php daemon.php setAdmin {jid}
Администраторы будут перечислены на странице входа экземпляра.
Некоторые элементы конфигурации применяются только после перезагрузки демона.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )