Błąd krytyczny PHP nie udało się otworzyć wymaganego pliku

Otrzymuję następujący błąd z Apache

[w tym celu prosimy o zapoznanie się z naszą polityką prywatności.require]: failed opening required ' /common/configs / config_templates.inc.php " (include_path=".w tym celu prosimy o zapoznanie się z naszą polityką prywatności.inc.php on line 158

Zdecydowanie nie jestem ekspertem od Apache ' a, ale od konfiguracji pliku.inc.php & config_templates.inc.php tam są. Ja też próbowałem przejść do testu.stronę html umieściłem w common / configs / więc zakładam, że nie ma problemów z prawami. Ustawiłem również prawa na config_templates.inc.php daje wszystkim prawa do odczytu, zapisu i wykonywania. Nie wiem, co zrobić w tym momencie, sprawdziłem, czy nie ma katalogu/usr/share / php i znalazłem, że nie ma, ale kiedy zrobiłem Yum zainstalować php powiedział, że ma najnowszy. Pomysły?

 39
Author: Your Common Sense, 2011-03-19

6 answers

To nie jest pytanie związane z Apache. Ani nawet związanego z PHP. Aby zrozumieć błąd tis, musisz odróżnić ścieżkę serwera wirtualnego od ścieżki systemu plików.

require operator pracuje z plikami. Ale nie ma

                          /common/configs/config_templates.inc.php

Plik na serwerze, ale raczej

/home/viapics1/public_html/common/configs/config_templates.inc.php

Część /home/viapics1/public_html nazywa się "document root" i łączy świat wirtualny z rzeczywistym. Jeśli zmienisz kod na coś w stylu

require_once $_SERVER['DOCUMENT_ROOT'].'/common/configs/config_templates.inc.php';

Będzie działać z dowolnego pliku umieszczonego w dowolnym katalog.

 72
Author: Your Common Sense,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-28 08:58:40

Jeśli masz uruchomiony SELinux, być może będziesz musiał przyznać httpd uprawnienia do odczytu z katalogu / home używając:

 sudo setsebool httpd_read_user_content=1
 7
Author: user1533634,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-23 16:54:28

Uruchom php -f /common/configs/config_templates.inc.php, aby zweryfikować poprawność składni PHP w pliku.

 3
Author: Alex Howansky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-19 19:09:19

Hej właśnie miałem ten problem i okazało się, że nie zaglądałem do lokalizacji folderu wystarczająco uważnie:

Miałem

require_once /vagrant/public/liberate/**APP**/vendor/autoload.php

Zadziałało:

require_once /vagrant/public/liberate/vendor/autoload.php

Bardzo łatwo było (jako początkujący) przeoczyć ten bardzo niezauważalny problem. Tak, zdaję sobie sprawę, że problem wymagający jest rejestrowany wskazuje bezpośrednio na problem pod ręką, ale jeśli jesteś początkującym, jak ja, te rzeczy można łatwo przeoczyć.

FIX:

Przyjrzyj się dobrze debugowaniu (__Dir __ '/etc/etc/etc / file.php') następnie otwórz system plików w innym oknie i zmapuj je bezpośrednio. Jeśli jest nawet najmniejsza różnica to wymaganie nie zadziała i powyższy błąd zostanie wypluty.

 0
Author: Sweet Chilly Philly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-15 23:38:33

Na wypadek, gdyby to komuś pomogło, natknąłem się wczoraj na niejasną sprawę tego błędu. W szczególności używałem metody require_once i określałem tylko nazwę pliku i ścieżkę, ponieważ wymagany plik był obecny w tym samym katalogu.

W pewnym momencie zacząłem otrzymywać błąd "Failed opening required file". Po wyrwaniu włosów na chwilę, w końcu zauważyłem komunikat ostrzegawczy PHP bezpośrednio nad wyjściem błędu krytycznego, wskazujący 'failed to open stream: Permission denied', ale co ważniejsze, informowanie mnie o ścieżce do pliku, który próbował otworzyć. Następnie zwróciłem uwagę na fakt, że stworzyłem kopię pliku (którego własność nie jest dostępna dla Apache) gdzie indziej, który również znalazł się w ścieżce wyszukiwania PHP "include", a przed folderem, w którym chciałem, aby został odebrany. D ' Oh!

 0
Author: John Rix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-03 23:44:44

Miałem dokładnie ten sam problem, trzykrotnie sprawdziłem ścieżki include, sprawdziłem również, że pear jest zainstalowany i wszystko wyglądało OK i nadal otrzymywałem błędy, po kilku godzinach szalonego patrzenia na to zdałem sobie sprawę, że w moim skrypcie było to: {]}

include_once "../Mail.php";

Zamiast:

include_once ("../Mail.php");

Yup, głupiego nawiasu brakowało, ale nie było generowanego błędu w tej linii mojego skryptu, który był dla mnie dziwny

 -7
Author: Eduardo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-23 01:09:38