Пытаюсь установить apache2

И да, и нет. Давайте сделаем шаг назад и разберемся.

Ранее, судя по всему, вы запускали несколько веб-сайтов с помощью Apache. Apache прослушивал порты 80 и 443, а затем «проксировал» (перенаправлял) запросы как «виртуальные хосты», что позволяло запускать множество веб-сайтов на одном сервере, все из которых слушали одни и те же порты (80 и 443). Это был «LAMP 101»… принцип работы виртуальных хостов.

Теперь предположим, что вы устанавливаете Discourse официальным способом «из коробки» (OOTB). OOTB-версия Discourse попытается занять те же порты и потерпит неудачу, так как Apache уже использует (занял) эти порты. У вас есть выбор:

  1. Запустить Discourse через Unix-сокет и настроить Apache для обратного проксирования приложения Discourse как виртуального хоста.

Примечание: Я протестировал это, и это работает; однако эта конфигурация не поддерживается официально (и даже неофициально) разработчиками Discourse.

  1. Перейти с Apache на nginx, запустить все свои веб-серверы на nginx, а также настроить обратное проксирование приложения Discourse как виртуального хоста, используя Unix-сокет для продакшн-версии приложения Discourse-docker.

Примечание: Это также не поддерживается официально разработчиками Discourse; и большинству людей, использующих сайты на Apache, будет довольно сложно («трудоемко») перенести все свои настройки mod_rewrite и закодированные модули geo-ip на nginx; но это, конечно, выполнимо, особенно если ваши приложения изначально созданы для работы как с nginx, так и с Apache2 (это проще, но все равно не поддерживается официально).

  1. Открыть контейнер Docker с Discourse на портах, отличных от 80 и 443.

Примечание: Это тоже (по сути) не рекомендуется (хотя, насколько я помню, официально поддерживается). Однако большинство людей не хотят обращаться к веб-приложению, вводя номера портов, например https://my-great-discourse-app.org:3334, поэтому в продакшн-среде так обычно не делают. В разработке ситуация иная.

Моя рекомендация «без знания всех деталей», исходя из опыта работы с LAMP и всё чаще с Discourse, — запускать их на отдельных серверах (это официально поддерживается Discourse); но если у вас действительно ограниченный бюджет и вы должны запустить всё на одном сервере (или вам просто нравится иметь один большой сложный сервер), то вам нужно будет научиться настраивать Apache2 для обратного проксирования через Unix-сокет к приложению Discourse и обратно.

Я протестировал это, и возможно настроить Apache2 для обратного проксирования Discourse через Unix-сокет; однако это решение не поддерживается официально (вообще).

Примечание: Ссылка на настройку Apache2 с HAProxy была решением, которое мне не удалось легко заставить работать, поэтому я от него отказался (нет необходимости использовать только HAProxy, есть «старые способы» сделать это). Однако вам, возможно, будет лучше просто следовать этому руководству Discourse:

Надеюсь, это хоть немного поможет, @nekodroid