2012-05-21 3 views
4

следующее сообщение об ошибке после входа в моем CodeIgniter приложении:Codeigniter PHP Предупреждение

PHP Warning: include(application/errors/error_php.php): failed to open stream: No such file or directory in /usr/src/dv/system/core/Exceptions.php on line 167, referer: http://localhost/dc 

Когда я открываю /usr/src/dv/system/core/Exceptions.php я получаю следующее в строке 167:

include(APPPATH.'errors/error_php.php'); 

значение APPPATH является применение/

Если я appent абсолютного пути, т.е. include('/usr/src/mypath'.APPPATH.'errors/error_php.php'); он работает нормально.

Что мне с этим делать? Пожалуйста, предложите. Я новичок в воспламенителе кода.

ответ

7

Я был недоволен этим ответом, вам не нужно менять php.ini для этой работы.

Я попытался выяснить, почему cwd (текущий рабочий каталог) сбрасывается, и если это было другим в новой версии php, но не могло найти ничего полезного.

Однако поскольку ядро ​​все еще имели доступ к AppPath я просто изменил строку в мой файл index.php в

$application_folder = getcwd().'/../application'; 

Это позволит ваш код будет транспортироваться до сих пор.

+2

Согласен, вам не нужно менять php.ini, чтобы исправить эту проблему. У меня тоже было это, и оказалось, что я вызвал chdir() в своем собственном коде до того, как было выброшено исключение. Таким образом, ваше исправление было лучшим решением в моем случае. – trampgeek

+0

К сожалению, забыл упомянуть, что на самом деле моя исправленная строка была '$ application_folder = getcwd(). '/ Application';' – trampgeek

+0

Вам следует попытаться сохранить свою папку приложений из общедоступного root. –

6

Это не проблема Codeigniter. У вас нет правильного пути include_path в php.ini. В принципе, include_path дает PHP ряд различных каталогов, которые нужно искать при включении файлов.

http://www.php.net/manual/en/ini.core.php#ini.include-path

+2

избили меня! :) +1 – DampeS8N

+0

- @ Ян Аткин, тот же вопрос, я спросил DampeS8N, если вы не возражаете. Если кто-то из вас ответит, это будет здорово. Я получаю ту же проблему, что и @ Piyush. Можете ли вы включить код php.ini, который вы упомянули в своем ответе? Кроме того, я не помню, как недавно менялось что-то в моем приложении или php.ini, что вызвало бы эту ошибку. Не могли бы вы понять, как эта ошибка произошла в первую очередь? –

+0

@timpeterson Ссылка на ответ Иана (imho better) дает вам этот код. – DampeS8N

4

В php.ini установить папку, в которой приложение работает в качестве include_path.

+0

- @ DampseS8N, я получаю ту же проблему. Можете ли вы включить код php.ini, который вы упомянули в своем ответе? Кроме того, я не помню, как недавно менялось что-то в моем приложении или php.ini, что вызвало бы эту ошибку.Не могли бы вы понять, как эта ошибка произошла в первую очередь? –

+0

@timpeterson Это было бы что-то, что вам нужно было изменить в ini или в коде для изменения ini (которые могут пытаться делать некоторые очень грязные фреймворки и библиотеки), поэтому если вы недавно не установили новую библиотеку, и у вас есть не отредактировал ini, это, вероятно, не ваша проблема. – DampeS8N

+0

- @ DampeS8N Я не устанавливал новую библиотеку, поэтому я должен был изменить php.ini. Хотя, как я сказал в моем комментарии ниже, я не изменил '; include_path =..:/Php/includes". Так что мне интересно, что еще в php.ini или в других файлах конфигурации, которые я мог бы неосознанно изменить (httpd.conf, .htaccess?), Может вызвать эту ошибку? –

0

Для меня это произошло потому, что я случайно переместил папку приложений/ошибок в другую папку (приложение/ядро), потому что я слишком быстро щелкнул и перетащил папку. Я использую среду IDE NetBeans.

0

Я думаю, что у вас закончилось дисковое пространство на вашем корневом разделе.

0

В моем случае, я понял, что папка/приложение/ошибка отсутствует все работает нормально после того как я скопировал папку старых ошибок

0

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

+0

Это не отвечает на вопрос. Если у вас есть другой вопрос, вы можете задать его, нажав [Ask Question] (http://stackoverflow.com/questions/ask). Вы также можете [добавить щедрость] (http://stackoverflow.com/help/privileges/set-bounties), чтобы привлечь больше внимания к этому вопросу, как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/ Что-репутация). - [Из обзора] (/ review/low-quality-posts/15883427) –

+0

обеспечить использование всех файлов вида. в файле контроллера. –