Я потратил много часов и просто застрял: (
- Сборка приложения в ruby на рельсах
- В среде разработчика, работающей с Apache
- Пришлось установить продуктв Ubuntu 18.04 LTS с nginx и пассажиром
- Я добавляю Пассажира в nginx, как это описано в Библиотеке пассажира здесь
Приложение не работает и в журналах отображается:
403 Запрещенная ошибка для пользователя root (https://cennik.leczymed.pl)
2019/02/08 21:46:19 [ошибка] 4743 # 4743: * 2 индекса каталога "/ var/ www / html / cennik / public / "запрещено, клиент: XXX.XXX.XXX.XXX, сервер: cennik.leczymed.pl, запрос:" GET / HTTP / 2.0 ", хост:" cennik.leczymed.pl "
404 для других ссылок не найдено (например, https://cennik.leczymed.pl/rtg)
2019/02/08 21:46:25 [ошибка] 4743 # 4743: * 2 открыто() "/ var / www / html / cennik / public / rtg" не удалось (2: нет такого файла или каталога), клиент: XXX.XXX.XXX.XXX, сервер: cennik.leczymed.pl, запрос: "GET /RTG HTTP / 2.0 ", хост:" cennik.leczymed.pl "
My конфигурации:
/ etc / nginx / sites-available / cennik.conf
server {
listen 80;
server_name cennik.leczymed.pl;
include snippets/letsencrypt.conf;
return 301 https://cennik.leczymed.pl$request_uri;
}
server {
listen 443 ssl http2;
server_name cennik.leczymed.pl;
# Tell Nginx and Passenger where your app's 'public' directory is
root /var/www/html/cennik/public;
# log files
access_log /var/log/nginx/cennik.leczymed.pl.access.log;
error_log /var/log/nginx/cennik.leczymed.pl.error.log;
# Turn on Passenger
passenger_enabled on;
passenger_ruby /usr/bin/ruby2.5;
ssl_certificate /etc/letsencrypt/live/cennik.leczymed.pl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cennik.leczymed.pl/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/cennik.leczymed.pl/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
}
Все файлы приложения находятся в / var / www /html / cennik каталог.
drwxr-xr-x 16 cennik cennik 4096 Feb 8 20:53 .
drwxr-xr-x 6 root root 4096 Feb 8 14:23 ..
drwxrwxr-x 10 cennik cennik 4096 Jul 27 2018 app
drwxr-xr-x 2 cennik cennik 4096 Jul 27 2018 bin
drwxr-xr-x 2 cennik cennik 4096 Feb 8 20:33 .bundle
drwx------ 5 cennik cennik 4096 Feb 8 20:48 config
-rw-rw-r-- 1 cennik cennik 130 Jul 27 2018 config.ru
drwx------ 2 cennik cennik 4096 Jul 27 2018 db
-rw-rw-r-- 1 cennik cennik 2371 Feb 8 19:58 Gemfile
-rw-r--r-- 1 cennik cennik 5544 Feb 8 20:42 Gemfile.lock
drwxrwxr-x 7 cennik cennik 4096 Feb 8 19:47 .git
-rw-rw-r-- 1 cennik cennik 687 Feb 8 19:47 .gitignore
drwxrwxr-x 4 cennik cennik 4096 Jul 27 2018 lib
drwxrwxr-x 2 cennik cennik 4096 Feb 8 20:53 log
drwxr-xr-x 2 cennik cennik 4096 Feb 8 20:53 node_modules
-rw-rw-r-- 1 cennik cennik 64 Jul 27 2018 package.json
drwxrwxrwx 3 cennik cennik 4096 Feb 8 20:54 public
-rw-rw-r-- 1 cennik cennik 227 Jul 27 2018 Rakefile
-rw-rw-r-- 1 cennik cennik 5 Jul 27 2018 .ruby-version
drwxrwxr-x 2 cennik cennik 4096 Jul 27 2018 storage
drwxrwxr-x 9 cennik cennik 4096 Jul 27 2018 test
drwxrwxr-x 6 cennik cennik 4096 Jul 27 2018 tmp
drwxrwxr-x 3 cennik cennik 4096 Feb 8 20:33 vendor
-rw-r--r-- 1 cennik cennik 86 Feb 8 20:53 yarn.lock
Владельцем всех файлов и каталогов является cennik пользователь (как описано в рецепте).
Каталог / public внутри RoR-приложения со всеми привилегиями (chmod 777).
Есть идеи, ребята?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Обновление:
passenger-config --ruby-command
passenger-config was invoked through the following Ruby interpreter:
Command: /usr/bin/ruby2.5
Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
To use in Apache: PassengerRuby /usr/bin/ruby2.5
To use in Nginx : passenger_ruby /usr/bin/ruby2.5
To use with Standalone: /usr/bin/ruby2.5 /var/lib/gems/2.5.0/gems/passenger-6.0.1/bin/passenger start
The following Ruby interpreter was found first in $PATH:
Command: /home/artur/.rbenv/shims/ruby
Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
To use in Apache: PassengerRuby /home/artur/.rbenv/shims/ruby
To use in Nginx : passenger_ruby /home/artur/.rbenv/shims/ruby
To use with Standalone: /home/artur/.rbenv/shims/ruby /var/lib/gems/2.5.0/gems/passenger-6.0.1/bin/passenger start
Итак, я думаю, чтоКонфигурация nginx cennik.conf объявить правильное место для каталога ruby: / usr / bin / ruby2.5
Есть другие идеи, как это решить?
************************ ОБНОВЛЕНИЕ *******************************
ОК.Поэтому я нашел несколько вещей, которые могут помочь другим.Проблема как у меня только для Ubuntu обновленной до 18.04 с предыдущих версий.Установка nginx не является перезаписью confs для nginx (это можно решить вручную).Большая проблема заключается в том, что пакет nginx, который поставляется для Ubuntu 18.04, не скомпилирован с поддержкой пассажиров.Поэтому я сейчас ищу решение, как скомпилировать nginx с пассажирским модулем в нем и по-прежнему использовать его, мои функции systemctl - установка из исходников работает, но вы не можете работать с ним как с сервисом: (
Iнашел какой-то специальный рецепт для компиляции пакета Ubuntu с изменениями в процессе компиляции, но любая моя попытка установить правильное дополнение для пассажира уже не удалась.
Кто-нибудь может мне помочь?