Извините за довольно запутанный заголовок, я пытаюсь понять эту ошибку.
У меня есть файл 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 .
Если вы все еще не знаете, как продолжить, добавьте свою конфигурацию как для nginx, так и для конфигурации php-fpm.