Как мне обслужить все пути в ПОДКАТАЛОГЕ к одному файлу PHP с помощью nginx?

У меня есть следующая структура

/var/www/lsl/generalmedia
    subcontent1/
         picture.jpg
    subcontent2/
         subsub1/
             picture.jpg
         subsub2/
    index.php

Доступно через website.com/lsl/generalmedia

Я бы хотел, чтобы подкаталоги использовали то же самое index.php, но обслуживайте файлы в обычном режиме. php7.0-mysql, и я поднял 2 службы, но Nginx распознает только PHP 5.6. Если я остановлю службу, я получаю сообщение об ошибке 502 Bad ...

Я пытаюсь обновить PHP 5.6 до PHP 7.3

Я установил:

  • php7.0-fpm
  • php7.0- mysql

, и я поднял 2 службы, но Nginx распознает только PHP 5.6. Если я остановлю службу, я получаю сообщение об ошибке 502 Bad Gateway .

Я изменил в / etc / nginx / sites-enabled / default строку / var /run/php5-fpm.sock до /var/run/php/php7.0-fpm.sock

Проблема в том, что у меня есть конфигурация в каждом субдомене, и каждый субдомен использует свой собственный сокет :

fastcgi_pass unix:/var/run/php/subdomain1.sock;
fastcgi_pass unix:/var/run/php/subdomain2.sock;
...

Итак, я не знаю, как указать nginx использовать PHP 7. 3

enter image description here enter image description here enter image description here enter image description here enter image description here

0
задан 18 October 2018 в 17:39
1 ответ

Похоже, вы установили несколько версий PHP из репозитория PHP Ондржея Сури. Пакеты PHP из этого репозитория могут запускаться одновременно, и поэтому все они должны создавать свой собственный файл сокета, который вы можете использовать в конфигурации своего веб-сервера (nginx).

По умолчанию сокет PHP 7.3 должен быть установлен в папке / var / run / php / php7.3-fpm.sock . Учитывая, что:

  • php7.3-Служба fpm успешно запущена
  • Файл сокета доступен для чтения пользователем вашего веб-сервера (обычно www-data )

У вас должна быть возможность перенаправлять запросы PHP для желаемых (под ) в сокет PHP 7.3 со строкой:

fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

Итак, ваша общая конфигурация vhost nginx должна выглядеть примерно так:

server {
  server_name some.domain.example.com;
  listen 80;
  listen 443 ssl;

  ssl_certificate /etc/ssl/certs/subdomain.crt;
  ssl_certificate_key /etc/ssl/certs/subdomain.key;

  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}
1
ответ дан 4 December 2019 в 15:49

Теги

Похожие вопросы