Obecnie prowadzę witrynę na php 5.4, wcześniej korzystałem z niej na 5.3.8. Niestety php 5.4 łączy E_ALL
i E_STRICT
, co oznacza, że moje poprzednie ustawienie dla error_reporting
teraz nie działa. Moja poprzednia wartość to E_ALL & ~E_NOTICE & ~E_STRICT
Czy powinienem po prostu włączać wartości pojedynczo?
Mam zbyt wiele błędów, a pliki zawierają zbyt dużo kodu, abym mógł je naprawić.
php
error-handling
icomrade
źródło
źródło
Odpowiedzi:
Jak stwierdzili komentatorzy, najlepszą opcją jest naprawienie błędów, ale przy ograniczonym czasie lub wiedzy nie zawsze jest to możliwe. W twojej zmianie php.ini
do
Jeśli nie masz dostępu do php.ini, możesz potencjalnie umieścić to w swoim pliku .htaccess:
Jest to wartość E_ALL (32767) i usunięcie wartości E_STRICT (2048) i E_NOTICE (8).
Jeśli nie masz dostępu do pliku .htaccess lub nie jest on włączony, prawdopodobnie będziesz musiał umieścić to na początku sekcji PHP każdego skryptu ładowanego przez wywołanie przeglądarki:
Jedna z nich powinna pomóc w korzystaniu z oprogramowania. Uwagi i surowe informacje są jednak wskaźnikami problemów lub potencjalnych problemów i może się okazać, że część kodu nie działa poprawnie w PHP 5.4.
źródło
.htaccess php_value działa tylko wtedy, gdy używasz PHP Server API jako modułu serwera WWW Apache. Użyj składni IfModule:
Jeśli używasz interfejsu API serwera PHP CGI / FastCGI, użyj
lub
w kodzie PHP lub plikach konfiguracyjnych PHP .user.ini | Modyfikacja php.ini:
na twoim wirtualnym hoście na poziomie serwera.
źródło
U mnie zadziałało, gdy ustawiłem error_reporting w dwóch miejscach jednocześnie
gdzieś w kodzie PHP
oraz w pliku .htaccess
źródło
Jeśli chcesz również wyłączyć E_DEPRACATED, użyj:
W moim przypadku CMS Made Simple narzekał „E_STRICT jest włączony w raporcie error_reporting”, a także „E_DEPRECATED jest włączone”. Dodanie tej jednej linii do .htaccess rozwiązało obie błędne konfiguracje.
źródło
Uwaga, może być konieczne ponowne uruchomienie LAMP, Apache lub cokolwiek innego, czego używasz, aby to zadziałało. Przez chwilę szarpaliśmy nasze mózgi na tym, wydawało się, że nie miało to wpływu, dopóki usługi nie zostały ponownie uruchomione, prawdopodobnie z powodu buforowania witryny.
źródło