apache — PHP file_exists не работает вне корня документа

У меня есть следующая структура каталогов, в которой корень документа указывается на / var / www / html / public:

  • /приложение
  • / приложение / контроллеры
  • / public (Document Root)

Я пытаюсь использовать следующий код, чтобы проверить, существует ли файл внутри файла в каталоге / public (работает с локальной настройкой, но не с живым сервером)

<?php
if (file_exists('../application/controllers/TestController.php'))
{
/* do something */
}

Может ли быть что-то в конфигурационном файле Apache, которое мне нужно добавить? Я не уверен, куда идти отсюда.

2

Решение

file_exists () будет работать где угодно, это не имеет никакого отношения к корню документа, и нет никаких настроек конфигурации apache, которые могли бы изменить это.

Есть две возможные проблемы, которые могут вызвать вашу проблему:

  • относительный путь не относительно того, что вы думаете. Пожалуйста, используйте абсолютный путь и отредактируйте свой вопрос, чтобы показать код, который вы использовали для проверки абсолютного пути (кстати, код, который вы разместили в комментариях, был ошибочным)
  • процесс UNIX, выполняющий PHP, не имеет прав доступа к этому файлу. Пожалуйста, проверьте, под каким пользователем PHP работает, и проверьте права доступа к файлу.
2

Другие решения

Таким образом, реальная проблема, которую я обнаружил, заключалась в том, что на моем работающем сервере имя файла не менялось, когда я переименовывал его в нижний регистр (APIController => ApiController). Несмотря на то, что изменение произошло локально, моя фиксация GIT не переименовала файл должным образом, когда код был зафиксирован.

Извините за путаницу!

0

По вопросам рекламы [email protected]