1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Movim

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
INSTALL.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 22:33 625d4ea

Развёртывание Movim

В этом руководстве описаны различные шаги, которые необходимо предпринять для развёртывания Movim на вашем веб-сервере.

Начало работы

Для правильной работы Movim требуется настроить некоторые зависимости.

  • Полностью работающий веб-сервер, такой как Apache, nginx или Caddy.
  • Менеджер процессов PHP, например php-fpm, который обычно требуется для Nginx.
  • Доступ по SSH с правами root к веб-серверу (чаще всего через пользователя www-data).
  • Сервер SQL со схемой для Movim (подробнее в разделе «Конфигурация базы данных» [https://github.com/edhelas/movim/wiki/Install-Movim#2-database-configuration]).
    • PostgreSQL (настоятельно рекомендуется).
    • MySQL 5.7 или выше с кодировкой utf8mb4 (необходимо для поддержки эмодзи 😃) И сопоставлением utf8mb4_bin.
    • MariaDB 10.2 или выше с кодировкой utf8mb4 (необходимо для поддержки эмодзи 😃) И сопоставлением utf8mb4_bin.
  • PHP 8.1 минимум с:
    • Curl (пакет php-curl).
    • PHP mbstring (пакет php-mbstring).
    • PHP ImageMagick и GD для обработки изображений (пакеты php-imagick и php-gd).
    • Ваш драйвер базы данных PHP (пакет php-pgsql или php-mysql в зависимости от типа используемого сервера базы данных).
    • И PHP XML (пакет php-xml).

Debian/Ubuntu

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].

Docker

Вы также можете развернуть 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/].

Если у вас уже есть Composer

cd movim
composer install

Если вам нужно установить Composer вручную

Вы можете установить Composer в каталог Movim с помощью следующей команды или с помощью вашего менеджера пакетов:

curl -sS https://getcomposer.org/installer | php

Теперь вы сможете установить зависимости проекта.

# Наконец установите зависимости вашего проекта
php composer.phar install

Обновление

Вы также можете обновить текущий экземпляр Movim с помощью Следующие строки (всё равно проверьте, не содержат ли обновления несовместимости с вашей текущей версией).

cd /var/www/movim/
git pull # Чтобы обновить исходный код Movim
composer install # Чтобы обновить библиотеки

Если обновление включает некоторые изменения в базе данных, вы можете запустить новые миграции (см. ниже).

Развёртывание

Эту часть руководства можно выполнить для стабильной и тестовой установки. Их нужно применять в правильном порядке.

1. Проверка прав

Movim требует разрешений на чтение в своей корневой папке и рекурсивно для правильного развёртывания. Он также попытается создать две папки:

  • log/ для журналов PHP;
  • cache/ для внутреннего кэша (шаблоны и другие системные файлы);
  • public/cache/ для публичных кэшей (изображения, CSS, JavaScript...).

Вы можете создать папки заранее, и он пропустит этот шаг, или вы можете позволить ему это сделать, предоставив ему права на запись в корневую папку:

# Используйте пользователя root для выполнения команды
chown www-data movim && chown www-data movim/public && chmod u+rwx movim

Возможно, вам придётся заменить пользователя www-data на пользователя apache или caddy в последней команде в зависимости от вашей ОС или веб-сервера, который у вас есть.

2. Конфигурация DotEnv

Movim использует DotEnv для настройки.

Чтобы настроить Movim, скопируйте файл .env.example в новый файл .env и заполните в нём различные настройки.

cp .env.example .env
nano .env

Также можно установить эти настройки, используя непосредственно переменные среды, как в Docker.

3. Настройка базы данных

После настройки базы данных в файле .env создайте или обновите структуру базы данных с помощью Composer.

composer movim:migrate

4. Запуск демона

Чтобы браузер мог взаимодействовать с сервером 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.

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

5.1. Virtualhost

Создайте виртуальный хост на предпочитаемом вами веб-сервере и укажите корень на файл public/index.php. Вы можете посмотреть файлы конфигурации по умолчанию, которые мы предоставляем, если вам нужна помощь в этой части.

Movim разработан для работы в корне домена или поддомена. Не пытайтесь развернуть его как подкаталог, иначе вы можете столкнуться с некоторыми неожиданными проблемами.

5.2. Веб-сокет прокси-сервер демона

Когда вы запускаете демон, он генерирует конфигурацию, которую необходимо применить к файлу Virtualhost, чтобы «проксировать» WebSockets, и отображает её в консоли.

Эти конфигурации динамически генерируются в соответствии с вашими текущими настройками. Независимо от того, используете ли вы Apache, Caddy или nginx, будут отображаться обе возможные конфигурации, и они будут отображаться даже после того, как вы успешно их применили.

5.3. Прокси-кэш изображений

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

Однако настоятельно рекомендуется также настроить кэш на стороне сервера, чтобы предотвратить запрос одного и того же ресурса несколькими пользователями через Movim.

На Apache

Вам потребуются модули 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.

6. Панель администратора

Панель администратора доступна непосредственно из пользовательского интерфейса Movim после входа администратора.

Чтобы установить логин администратора пользователя хотя бы один раз (чтобы зарегистрировать его в базе данных), вы можете сделать его администратором с помощью следующей команды:

php daemon.php setAdmin {jid}

Администраторы будут перечислены на странице входа экземпляра.

Некоторые элементы конфигурации применяются только после перезагрузки демона.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Movim.git
git@api.gitlife.ru:oschina-mirror/mirrors-Movim.git
oschina-mirror
mirrors-Movim
mirrors-Movim
master