Включить (../x.php) не работает на моем сервере Linux, почему? - PullRequest
1 голос
/ 02 февраля 2010

В моем Xampp я могу сделать:

require_once('../myFile.php');

И это работает.

Когда я загружаю файл, который делает require_once, он не работает.* Вот ошибка на сервере:

Warning: require_once(../myFile.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/public_html/yyyy/testinclude.php on line 11

Fatal error: require_once() [function.require]: Failed opening required '../myFile.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/xxx/public_html/yyyy/testinclude.php on line 11

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 02 февраля 2010

Одна из возможных причин, по которой он не работает, заключается в том, что ваш файл не совпадает.

В UNIX пути к файлам чувствительны к регистру. Это не так в WIN. Итак, если вы включаете ../myFile.php, ваш файл должен иметь имя myFile.php, а не myfile.php.


Кроме того, include всегда включает файлы в соответствии с текущим путем . Рассмотрим эти два файла.

/home/xxx/public_html/first.php

<?php include('dir/second.php'); ?>

/home/xxx/public_html/dir/second.php

<?php include('third.php'); ?>

При запуске first.php второй файл будет содержать /home/xxx/public_html/third.php.

При непосредственном запуске dir/second.php он будет включать /home/xxx/public_html/dir/third.php.

Если ваше включение должно всегда быть относительно текущего файла, используйте следующее:

include(dirname(__FILE__) . '/third.php');

Используя приведенный выше фрагмент кода, dir/second.php всегда будет включать /home/xxx/public_html/dir/third.php независимо от текущего каталога.

0 голосов
/ 02 февраля 2010

Где находится ваш файл myFile.php относительно вашего файла testinclude.php?

Если вам нужно это в ../, тогда myFile.php должен быть на один уровень выше, чем testinclude.php (т.е. в /home/xxx/public_html/)

0 голосов
/ 02 февраля 2010

Если myFile.php не существует в каталоге public_html, то оно не будет работать.

Если вы хотите, чтобы он выглядел в том же каталоге, что и вы, попробуйте require_once('./myFile.php')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...