Как установить nextcloud на NGINX Unit?

Ссылка скопирована
1 ответ

Был использован образ Docker unit:php на него доустановлены (Dockerfile) необходимые и рекомендуемые библиотеки и модули php (через docker-php-ext-install и pecl install).
Однако, при попытке зайти на страницу приложения, получается это:

Как установить nextcloud на NGINX Unit?

В чем может быть причина, куда копать, где посмотреть, какие есть предположения?

Дополнительно:

Ответы:

Расскажете, чем не подошёл способ установки из официальных образов?

  • Не совсем вас понял.
    Так образ официальный. В него лишь доустановлены модули php и нужные бибиотеки.
    Здесь если что не nginx, а nginx unit (нужного тега к посту не было). Или я вас неправильно понял?
  • Андрей, нет, официальный образ - это nextcloud. А у вас какой-то unit:php. К нему сбоку, если нужно, присобачивается любой веб-сервер.
  • А, понял, вы про официальный образ приложения, а не веб-сервера. Причина отказа от официального образа - необходимость контейнеризации на уровне веб-сервера (приложений будет много, если каждое будет со своим веб-сервером, а каскадом будет центральный веб-сервер-прокси, то теряем ресурсы и производительность), несопоставимо лучшая производительность nginx unit относительно apache и nginx, более рациональный подход в управлении веб-сервером. Так же имеется негативный опыт обновлений контейнеризированного nextcloud.
  • Андрей, ну и прекрасно - хотите Unit, прикручивайте его, можно даже поиспользовать один контейнер для нескольких сервисов. Веб-сервер это веб-сервер, РНР-то тут при чём?
  • ky0, если вы знаете, что php не причем - дайте знать пожалуйста, по какой именно причине вы в этом уверены, чтобы я мог исключить возможную его неправильную конфигурацию или конфигурацию его модулей, как одну из потенциальных причин.
    Я нигде не утверждал, что с проблемой связан именно php. Я допускал, что он может быть связан, как и все остальное, что настраивается или конфигурируется в контейнере образа собранного по unit:php
  • Андрей, вы засовываете в один контейнер веб-сервер, РНР и само приложение. Вариантов, где проблема, в таком виде - множество.

    Официальный образ Некстклауда гарантированно содержит все необходимые РНР-модули, все каталоги/файлы с нужными владельцами и правами на них - достаточно натравить веб-сервер на 9000 порт и настроить проброс нужных заголовков.

    Если категорически не хотите его использовать - хотя бы посмотрите на его Dockerfile, чтобы понять различия.

  • ky0, так и в официальном образе приложение предполагается запускать в одном контейнере с php и веб-сервером.
    Мой вопрос собственно и сводится к тому, как двигаться в поиске причины проблемы от множества возможных к орграниченному набору возможных причин.
    Насчет Dockerfile, спасибо, посмотрю. Не догадался это сделать.
  • Андрей, нет, в случае nginx есть отдельный контейнер fpm:

    To use the fpm image, you need an additional web server, such as nginx, that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via docker run --network ... or a docker-compose file). In both cases you don't want to map the fpm port to your host.

  • ky0, в случае использования nginx - да, но в любом случае, как я уже ранее сказал, эти варианты не подходят.
    Буду смотреть dockerfile, думаю это поможет в итоге.
  • Андрей, nextcloud такой сложный, что пытаться суперэкономить на веб-сервере это мазохизм.
  • shurshur, это еще и способ бесплатно обзавестись опытом и знаниями, помимо прочего.
    Спасибо за комментарий. Я справился. Оказывается в json-файле конфигурации я в одном месте забыл заменить "/path/to/my/app" поменять на актуальные данные :)

1) .htaccess это файл для Апача, под нжинкс как бы не работает...
2) Неплохо было бы ввести данные которые запрашивает приложение, так как он не может угадать что из настроек вам нужно.

  • 1 Это дефолтное сообщение от Nextcloud, которое свидетельствует в данном случае об отсутствии файла htaccess, nextcloud умеет работать как с nginx, так и apache (apache+php_mod и nginx+php-fpm ранее успешно развертывал и конфигурировал для работы nextxloud).
    Nginx unit не заявлен как поддерживаемый, но скудная информация в сети свидетельствует, что таки есть люди, которые поставили nextcloud на nginx unit.
    Наличие этой страницы тоже говорит о том, что все должно взлететь.

    2 Если вы ранее не имели дело с nextcloud, то поясню: по одному внешнему виду этой страницы можно понять, что что-то работает сильно не так, как должно. Страницы установки и предварительной настройки современных популярных cms и в частности nextxloud, выглядят иначе. К сожалению, не будучи специалистом в разработке подобного рода приложений, я не могу сходу диагностировать, что именно. Но страница установки в частном случае не может подгрузить никакие изображения, не работают сценарии.
    Можно в принципе попробовать дальнейшие шаги, но уже на этом этапе понятно, что есть проблема.

    Страница должна выглядеть примерно так:

    Как установить nextcloud на NGINX Unit?

  • Андрей,

    Страницы установки и предварительной настройки современных популярных cms и в частности nextxloud, выглядят иначе. К сожалению, не будучи специалистом в разработке подобного рода приложений, я не могу сходу диагностировать, что именно. Но страница установки в частном случае не может подгрузить никакие изображения, не работают сценарии.

    Неверный визуал скорее всего обусловлен неверными настройками, например неверным каталогом установки. По вашему описанию сложно понять что конкретно не так, вам же нужно включить инструменты разработчика браузера (F12), раздел консоль, и посмотреть на ошибки возникающие при загрузке страницы. Тогда будет хотя бы примерно понятно в чем проблема. Не исключено что отсутствуют соответствующие настройки для нжинкса, например файлы статики не исключены из переадресации на единую точку входа...

  • Андрей, судя по всему там не всё что нужно обрабатывается реверс прокси…

Ошибка, как часто в таких случаях и бывает, оказалась крайне глупой:
При автозамене "/path/to/app/" на "/var/www/nextcloud/" не было учтено существование "/path/to/app" т.е. без слеша в конце строки. Таким образом, путь был заменен 5/6 элементах конфига.
В итоге, когда соответствующий блок дефолтного конфига был приведен к виду:

{    "action": {       "share": "/var/www/nextcloud$uri",       "fallback": {          "pass": "applications/nextcloud/index"       }    } }

{ "action": { "share": "/var/www/nextcloud$uri", "fallback": { "pass": "applications/nextcloud/index" } } }

результат стал соответствовать ожидаемому

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

Для установки Nextcloud на NGINX Unit, следуйте следующим шагам:

1. Установите NGINX Unit на ваш сервер. Для этого выполните следующие команды:

   sudo apt update
   sudo apt install unit unit-php

sudo apt update sudo apt install unit unit-php

2. Создайте конфигурационный файл для Nextcloud в директории `/etc/unit/conf.d/`. Например, `nextcloud.json`. Вставьте следующий конфигурационный файл:

   {
       "listeners": {
           "*:80": {
               "pass": "applications/nextcloud"
           }
       },
       "applications": {
           "nextcloud": {
               "type": "php",
               "user": "www-data",
               "group": "www-data",
               "root": "/path/to/nextcloud",
               "index": "index.php"
           }
       }
   }

{ "listeners": { "*:80": { "pass": "applications/nextcloud" } }, "applications": { "nextcloud": { "type": "php", "user": "www-data", "group": "www-data", "root": "/path/to/nextcloud", "index": "index.php" } } }

Замените `/path/to/nextcloud` на путь к каталогу, в котором у вас установлен Nextcloud.

3. Перезапустите NGINX Unit, чтобы применить изменения:

   sudo systemctl restart unit

sudo systemctl restart unit

4. Установите и настройте Nextcloud. Следуйте инструкциям по установке Nextcloud на вашем сервере.

5. После установки Nextcloud, откройте браузер и введите адрес вашего сервера. Вы должны увидеть страницу входа в Nextcloud.

Теперь у вас должен быть работающий экземпляр Nextcloud на NGINX Unit. Не забудьте настроить SSL и другие параметры безопасности для защиты вашего сервера и данных.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно