1

Тема: налаштування nginx + php-fpm

допоможіть, будь-ласка, з налаштуванням nginx + php-fpm

у мене в черговий раз якась дивина при встановленні з налаштування php,
і цього разу гугленням за пів-години не получилось вирішити

проблема виглядає наступним чином:

допустимо, у мене такий собі локальний домен test1.ls

при переході в браузері на
https://test1.ls
https://test1.ls/
https://test1.ls/index.php

сторінка не показується, скрипт не спрацьовує,
в логи ніде нічого не пише,
відбувається лише отаке (поява отакого віконечка):
https://i.imgur.com/DXNhV2w.png

при переході в браузері на
https://test1.ls//
https://test1.ls//index.php
скрипт спрацьовує
(відбувається перенаправлення на https://test1.ls//install/ ,
спрацьовує та показується сторінка https://test1.ls//install/index.php ,
при чому ця сторінка спрацьовує і при переході в браузері на
https://test1.ls/install/index.php )

при переході в браузері по адресі
https://test1.ls/other.php
https://test1.ls//other.php
цей скрипт/сторінка спрацьовує (в лог падає повідомлення про відсутність mb_internal_encoding, та це не проблема, це інша історія )


тепер про налаштування:
сертифікат для https згенеровано та підключено точно ок,

права на файли та директорії:

u@u:/var/www$ ls -la
загалом 296
drwxr-xr-x  4 u        u          4096 вер 18 05:21 .
drwxr-xr-x 14 root     root       4096 тра 18 22:16 ..
-rw-r--r--  1 www-data root     171037 вер 18 20:31 access_test1_ls.log
-rw-r--r--  1 www-data root     103512 вер 18 20:31 error_test1_ls.log
drwxrwxrwx 13 www-data www-data   4096 вер 18 06:58 test1_ls

права на php сок

u@u:/run/php$ ls -la
загалом 4
drwxr-xr-x  2 www-data www-data  80 вер 18 08:16 .
drwxr-xr-x 25 root     root     800 вер 18 08:16 ..
-rw-r--r--  1 root     root       5 вер 18 08:16 php7.0-fpm.pid
srw-rw----  1 www-data www-data   0 вер 18 08:16 php7.0-fpm.sock

конфіг php

$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf

; pool name ('www' here)
[www]

...

user = www-data
group = www-data

...

listen = /run/php/php7.0-fpm.sock

...

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

nginx

$ sudo vim /etc/nginx/sites-available/test1_ls

server{
  listen 443 ssl http2;

  root /var/www/test1_ls/;
  index index.php;

  server_name test1.ls;
  ssl_ ...
...

  charset utf-8;
  underscores_in_headers on;

  access_log /var/www/access_tes1_ls.log;
  error_log /var/www/error_test1_ls.log;

  gzip ...
...

  location / {
    try_files $uri $uri/ =404;
  }
  
  location ~ .*\.php$ {
    try_files @php @php;
    access_log off;
  }
  
  location @php {
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}

прошу підказки з оцим добром...
де я туплю??
дякую

називається 2 дні паритись над налаштуваннями, щоб глянути на скрипт,
при тому, що той скрипт мінімально відредагувати на розслабоні також 2 дня зайняло би...
вай, чому php не ставиться так легко, як erlang/haskell ???((

Все на світі, як вода, Світла радість і біда.
Все тече і все біжить в нікуди,
Все на світі, як пісок, Залиши на ньому крок,
Змиє все вода, було й так буде.

2

Re: налаштування nginx + php-fpm

php-fpm тут здається нідо чого.
А якщо так?

location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
}

 location ~ \.php$ {
         try_files $uri =404;
         include fastcgi_params;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
         fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
Робіть що хочете - людина створена вільною
Подякували: 221VOLT1

3

Re: налаштування nginx + php-fpm

А нащо тобі на локалці https. Спершу настрой http там легші налаштуваня, щоб переконатись, що з правами і пхп все ок.

Подякували: leofun011

4 Востаннє редагувалося 221VOLT (19.09.2019 03:30:27)

Re: налаштування nginx + php-fpm

varkon написав:

php-fpm тут здається нідо чого.
А якщо так?
...

наступний код перенаправляє всі запити, для яких немає файла чи директорії, на єдину точку входу,

 try_files $uri $uri/ /index.php?q=$uri&$args;

тобто нічим не відрізняється від мого

try_files $uri $uri/ =404;

дякую за додаток до клаузи з регулярним виразом для php -- зараз спробую


------

Vo_Vik написав:

А нащо тобі на локалці https. Спершу настрой http там легші налаштуваня, щоб переконатись, що з правами і пхп все ок.

а нащо -- а щоби було.. (яке запитання -- така відповідь)

я не перший раз nginx+php налаштовую, та отаке зависання на цьому у мене вперше...

я привів скриншот проблеми, налаштування, та як виглядають права
щось з цього всього прямо вказує, що проблема в https?

якщо права криво налаштовані -- прошу підказати, як буде правильно, поправлю
якщо ця помилка для вас також виглядає дуже дивною, та незрозуміло, як це виправити -- прошу вас не флудити

велике вам людське дякую

Все на світі, як вода, Світла радість і біда.
Все тече і все біжить в нікуди,
Все на світі, як пісок, Залиши на ньому крок,
Змиє все вода, було й так буде.

5

Re: налаштування nginx + php-fpm

varkon написав:

php-fpm тут здається нідо чого.
А якщо так?

location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
}

 location ~ \.php$ {
         try_files $uri =404;
         include fastcgi_params;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
         fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

єдина відмінність від того, що у мене --
перестало працювати оце

при переході в браузері на
https://test1.ls//
https://test1.ls//index.php
скрипт спрацьовує

тепер тут також віконечко з пропозицією зберегти файл октет-стрім...
печалька((

Все на світі, як вода, Світла радість і біда.
Все тече і все біжить в нікуди,
Все на світі, як пісок, Залиши на ньому крок,
Змиє все вода, було й так буде.

6

Re: налаштування nginx + php-fpm

запрацювало!

спрацювало щось з цього --

$ sudo vim /etc/nginx/nginx.conf

    #default_type  application/octet-stream;
    default_type  text/html;

$ sudo systemctl restart nginx.service

$ sudo vim /etc/nginx/mime.types

    text/html                                        html htm shtml;
    text/php                                         php;

$ sudo systemctl restart nginx.service
$ sudo vim /etc/php/7.0/fpm/php.ini

;cgi.fix_pathinfo=1
cgi.fix_pathinfo = 0

$ sudo systemctl restart nginx.service
$ sudo systemctl restart php7.0-fpm.service

+ ще кеш браузера почистив


в результаті nginx конфіг виглядає так

...
server{
  listen 443 ssl http2;
  
  root /var/www/test1;
  index index.php index.html;
  
  server_name test1.ls;
  ssl_...
  ...

  charset utf-8;
  underscores_in_headers on;
  
  access_log /var/www/access_test1_ls.log;
  error_log /var/www/error_test1_ls.log;
  
  gzip ...
  ...
  ...

  location / {
    try_files $uri $uri/ =404;
  }
  location = /index.php {
    try_files @php @php;
    access_log off;
  }
  
  location ~* \.php$ {
    try_files @php @php;
    access_log off;
  }
  
  location @php {
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}

тему можна закрити

Все на світі, як вода, Світла радість і біда.
Все тече і все біжить в нікуди,
Все на світі, як пісок, Залиши на ньому крок,
Змиє все вода, було й так буде.
Подякували: varkon, leofun012

7

Re: налаштування nginx + php-fpm

Просто, щоб змеешити фронт можливих проблем. По одному відключаємо функціонал і дивимось коли запрацює.