Установка DISCOURSE в подпапку Ubuntu 22.04
Популярные записи
Шаг 1: Подготовка к установке
Первым делом создайте каталог для Discourse и склонируйте репозиторий:
sudo mkdir /var/discourse
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
Шаг 2: Настройка Discourse
Запустите настройку Discourse:
sudo ./discourse-setup
По умолчанию форум будет доступен по адресу forum.domain.com
. Чтобы изменить настройки для работы с подпапкой, отредактируйте файл:
sudo nano /var/discourse/containers/app.yml
Добавьте параметр DISCOURSE_RELATIVE_URL_ROOT: /forum. Измените порты на 8080, так как порты 80 и 443 будут использоваться Apache с ProxyPass на 8080.
- "8080:80" # http
# - "8443:443" # https
Готовый отредактированный файл app.yml можно скачать тут
Шаг 4: Пересборка Discourse
Пересоберите Discourse после внесения изменений в файл:
cd /var/discourse
sudo ./launcher rebuild app
После пересборки убедитесь что нет ошибок и контейнер запущен
docker ps
Шаг 5: Настройка Apache
Установите и настройте Apache в качестве проксирующего сервера:
sudo apt update
sudo apt install apache2
sudo a2enmod proxy
sudo a2enmod ssl
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
Создайте новый файл конфигурации для виртуального хоста Discourse:
sudo nano /etc/apache2/sites-available/discourse.conf
Добавьте следующую конфигурацию, заменив домен и путь к SSL на свой:
<VirtualHost *:80>
ServerName test.domain.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:443>
ServerName test.domain.com
DocumentRoot /var/www/html
ProxyPass /forum http://test.domain.com:8080/forum
ProxyPassReverse /forum http://test.domain.com:8080/forum
SSLEngine on
SSLCertificateFile /etc/ssl/test.domain.com/test.domain.com.cer
SSLCertificateKeyFile /etc/ssl/test.domain.com/test.domain.com.key
SSLCertificateChainFile /etc/ssl/test.domain.com/test.domain.com_chain.cer
</VirtualHost>
Активируйте новый виртуальный хост и перезапустите Apache:
sudo a2ensite discourse
sudo systemctl restart apache2
Шаг 6: Проверка статуса
Проверьте статус Apache, чтобы убедиться, что ошибок нет:
systemctl status apache2
Теперь ваш форум будет доступен по адресу https://domain.com/forum
.