Назад | Перейти на главную страницу

Nginx не имеет доступа к пути centos

Извините за довольно запутанный заголовок, я пытаюсь понять эту ошибку.

У меня есть файл php внутри папки вроде site.com/src/app/index.php и это site.com папка помещается в /var/www/html/ в CentOs 6.5 под управлением Nginx и PHP-FPM.

Итак, проблема в том, что всякий раз, когда я использую любую из функций и констант пути, например __DIR__, getcwd(), realpath() внутри index.php Я ожидал, что полный путь будет таким

/var/www/html/site.com/src/app/ но только site.com/src/app/ возвращается. Как будто php / nginx не знает о var/www/html/ папка.

Я отправился в app/ dir и смог получить полный путь, используя sudo pwd но по какой-то причине php его не читает.

Хотелось бы узнать, почему это происходит и как это исправить?

Основываясь на примере конфигурации, который я вижу в связанной с вами документации Digital Ocean, я подозреваю, что ваша проблема исходит из следующей строки:

fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;

Или, скорее, из-за отсутствующей или неправильной корневой директивы в одном из родительских блоков. Опять же, я не уверен, что такое поведение вы увидите в таком случае ... Я чувствую, что это приведет к ошибке, а не запускает скрипт с неправильными результатами, но у меня нет большого опыта работы с nginx .

Видеть: https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#fastcgi-path-in-script-filename

Если вы все еще не знаете, как продолжить, добавьте свою конфигурацию как для nginx, так и для конфигурации php-fpm.