Не работает php ошибок нет

eucalipt

Доброе утро.
Дело в том, что у меня PHP не выводит НИКАКИХ ошибок. Неправильно указал путь для require? Не выводит. Написал в коде набор рандомных символов — все равно. Вообще никаких ошибок.
Сразу подумал, что он вообще не работает, но нет, если вставить в начало скрипта простой print(), то то, что там написано, выводится. Вставляю после require_once — уже ничего не происходит. Я грешу на require_once ‘app/core/router.php’, потому что именно после него вся каша начинается. Почему — не понятно.

<?php
	require_once 'vendor/autoload.php';
	require_once 'app/core/router.php';
	
	print('dfgdfg');
	Router::run();
?>


  • Вопрос задан

    более трёх лет назад

  • 13670 просмотров

PHP : Включить показ предупреждений и ошибок PHP

Включение вывода всех ошибок и предупреждений в файле php.ini
error_reporting = E_ALL
display_errors = On
display_startup_errors = On

Включение вывода всех ошибок и предупреждений в коде PHP-скриптов
Включить вывод уведомлений и предупреждений можно, добавив в начало нужного .php файла следующие строки:

ini_set(‘error_reporting’, E_ALL);
ini_set(‘display_errors’, 1);
ini_set(‘display_startup_errors’, 1);

Включение вывода всех ошибок и предупреждений в файле .htaccess
php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL

Пригласить эксперта


  • Показать ещё
    Загружается…

13 июн. 2023, в 02:04

1000 руб./в час

12 июн. 2023, в 23:59

10000 руб./за проект

12 июн. 2023, в 21:24

2000 руб./в час

Минуточку внимания

Правлю файл который указан в phpinfo():

Loaded Configuration File   /etc/php/7.0/apache2/php.ini

В phpinfo() выдает

display_errors  On  On
display_startup_errors  On  On
html_errors On  On
log_errors  On  On
log_errors_max_len  1024    1024

в .htaccess пробовал включать ошибки, не работает
Если написать кривой sql запрос, то выводится белый экран.
Ошибка mysql выводится, если перед запросом вызвать функцию:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

Если написать функцию с ошибкой

function a($x,y){ return $x+$y; }

выводится пустой экран.
Сервер локальный, ubuntu16.04 apache2 php7 mysql5.7
Настроен виртуальный хост

<VirtualHost *:80>

    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com/public_html 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory "/var/www/example.com/public_html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Как сделать так, чтоб выводились ошибки?

За последние 24 часа нас посетили 10936 программистов и 1138 роботов. Сейчас ищут 690 программистов …

Страница 1 из 2


  1. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969


  2. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    да пусть хоть как то начнёт отображать
    дальше ненужное выключу

    или вы о синтаксисе ?
    так тоже пробовал

    1. ini_set(‘display_errors’,’On’);
    2. error_reporting(‘E_ALL’);

    я вообще много как пробовал — и в htaccess и в php.ini — всяко уже пробовал, безрезультатно :(
    такое ощущение, что он ошибки выводит, но куда-то не на экран, а в другое место

    Добавлено спустя 2 минуты 37 секунд:
    конфигурация системы
    nginx + apache


  3. VLK

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58

    а эти ошибки они точно есть?


  4. Zuldek

    у пыха в ini по-моему была директива запрещающая установку значения настроек в скрипте


  5. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    ошибку я сделал специально, для отладки

    1. ini_set(‘display_errors’,’On’);
    2. error_reporting(‘E_ALL’);


  6. mkramer

    Команда форума
    Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.525
    Симпатии:
    1.744

    .htaccess ещё может помочь:

    1. php_values display_errors On


  7. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    мой .htaccess

    1. php_flag display_errors on
    2. php_value error_reporting E_ALL


  8. runner

    runner
    Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент

    1) вообще то в документациии второй параметр это строка:

    1. string ini_set ( string $varname , string $newvalue )

    так что должно быть:

    1.  ini_set(‘display_errors’, ‘1’);

    2) Для нахождения ошибки можно еще просмотреть файл ошибок веб сервера.


  9. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    1) так тоже не пашет
    2) в логах на запрос этого файла код 200 — ошибок нет, правда где размер — прочерк


  10. denis01

    Команда форума
    Модератор


  11. runner

    runner
    Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент


  12. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    уже показывал

    1. ini_set(‘display_errors’, 1);
    2. error_reporting(‘E_ALL’);

    Добавлено спустя 27 минут 3 секунды:

    указал абсолютный путь — не создаётся файл :(

    Добавлено спустя 1 минуту 33 секунды:
    да, ещё добавлю — при запуске с командной строки php — f file.php ошибки отображаются


  13. runner

    runner
    Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент

    1)Воспроизвел ваш код- у меня выдало ошибку
    Parse error: syntax error, unexpected ‘echo’ (T_ECHO) in F:homefgstools.comwwwtest.php on line 7
    2) Также в логе ошибок Apache error.log выдало
    [Tue Mar 31 13:07:59 2015] [error] [client 127.0.0.1] PHP Parse error: syntax error, unexpected ‘echo’ (T_ECHO) in F:\home\fgstools.com\www\test.php on line 7
    3) Нужно смотреть именно файл ошибок а не access.log


  14. denis01

    Команда форума
    Модератор

    файл будет создан в папке в которой лежит скрипт, только имя задай


  15. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    не — ничего не создаёт :(
    просто с именем это первое, что я попробовал

    Добавлено спустя 10 минут 39 секунд:
    runner — в error.log пусто


  16. rodent90

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37

    error_reporting принимает аргумент типа int, зачем пихаешь в него строку?)

    А вообще поставька себе xdebug.


  17. runner

    runner
    Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент

    1) Есть еще один параметр в php.ini, влияющий на вывод ошибок:
    log_errors = On
    2) Если
    log_errors = Off
    ошибки в error.log не записываются
    3) почитал php.ini файл — там еще куча параметров для обработки ошибок


  18. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    не хотел из пушки, да по воробьям …
    просто стандартный вывод ошибок хотел починить

    Добавлено спустя 2 минуты 27 секунд:

    [​IMG]


  19. runner

    runner
    Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент

    У меня:
    1) log_errors = On => пишет ошибки в error.log
    2) log_errors = Off => не пишет ошибки в error.log
    У тебя:
    1) log_errors = On => не пишет ошибки в error.log

    У тебя какой-то «неправильный» PHP


  20. GTAlex

    GTAlex
    Активный пользователь

    С нами с:
    7 мар 2015
    Сообщения:
    70
    Симпатии:
    2

    был бы правильный — я бы сюда не обратился за помощью :)

    Добавлено спустя 50 секунд:
    кстати, может действительно обновиться до 5.4 :)
    а то у меня 5.3.3
    может и трабла сама уйдёт ?

    Добавлено спустя 1 минуту 32 секунды:

    он у меня Супер неправильный т.к. не то, чтобы в лог — он их и на экране не показывает!
    причём, это не совсем сам php, это именно мод аппача, т.к. в ком строку ошибки то он показывает


  21. Ganzal

    Команда форума
    Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969

    вебсервер показывает свои страницы на ошибочные статусы апстрима?

Страница 1 из 2

I have a Ubuntu server running Apache2 with PHP 5. In the php.ini I set display_errors = On and error_reporting = E_ALL | E_STRICT, but PHP is still not displaying error messages. I’m also using Apache virtual hosts.

Also, what is the most strict error reporting PHP5.3 has to offer? I want my code to as up-to-date and future-proof as possible.

Cedric Ipkiss's user avatar

asked Jun 25, 2011 at 20:46

wowpatrick's user avatar

1

You also need to make sure you have your php.ini file include the following set or errors will go only to the log that is set by default or specified in the virtual host’s configuration.

display_errors = On

The php.ini file is where base settings for all PHP on your server, however these can easily be overridden and altered any place in the PHP code and effect everything following that change. A good check is to add the display_errors directive to your php.ini file. If you don’t see an error, but one is being logged, insert this at the top of the file causing the error:

ini_set('display_errors', 1);
error_reporting(E_ALL);

If this works then something earlier in your code is disabling error display.

Dezza's user avatar

Dezza

1,0944 gold badges22 silver badges25 bronze badges

answered Jun 26, 2011 at 16:16

Ray's user avatar

RayRay

40.1k20 gold badges97 silver badges137 bronze badges

1

I had the same issue and finally solved it. My mistake was that I tried to change /etc/php5/cli/php.ini, but then I found another php.ini here: /etc/php5/apache2/php.ini, changed display_errors = On, restarted the web-server and it worked!

May be it would be helpful for someone absent-minded like me.

answered Feb 22, 2013 at 16:09

vk23's user avatar

vk23vk23

4587 silver badges16 bronze badges

2

I had the same problem on my virtual server with Parallels Plesk Panel 10.4.4. The solution was (thanks to Zappa for the idea) setting error_reporting value to 32767 instead of E_ALL.
In Plesk:
Home > Subscriptions > (Select domain) > Customize > PHP Settings > error_reporting — Enter custom value — 32767

answered May 24, 2012 at 17:30

Bartek Kosa's user avatar

Bartek KosaBartek Kosa

8321 gold badge14 silver badges25 bronze badges

0

When you update the configuration in the php.ini file, you might have to restart apache. Try running apachectl restart or apache2ctl restart, or something like that.

Also, in you ini file, make sure you have display_errors = on, but only in a development environment, never in a production machine.

Also, the strictest error reporting is exactly what you have cited, E_ALL | E_STRICT. You can find more information on error levels at the php docs.

answered Jun 25, 2011 at 20:47

1

Check the error_reporting flag, must be E_ALL, but in some release of Plesk there are quotes ("E_ALL") instead of (E_ALL)

I solved this issue deleting the quotes (") in php.ini

from this:

error_reporting = "E_ALL"

to this:

error_reporting = E_ALL

Wtower's user avatar

Wtower

18.5k11 gold badges102 silver badges80 bronze badges

answered Jul 4, 2015 at 18:10

fremsoft's user avatar

1

Although this is old post…
i had similar situation that gave me headache.
Finally, i figured that i was including sub pages in index.php with «@include …»
«@» hides all errors even if display_errors is ON

answered May 4, 2014 at 7:07

Tomek's user avatar

TomekTomek

311 bronze badge

Make sure the php.ini that you’re modifying is on the /etc/php5/apache2 folder, or else it won’t have any efect…

answered Apr 28, 2013 at 20:30

Johnz's user avatar

JohnzJohnz

1141 silver badge4 bronze badges

Just want to add another pitfall here in case someone finds this question with a problem similar to mine.

When you are using Chrome (Or Chromium) and PHP triggers an error in PHP code which is located inside of a HTML attribute then Chrome removes the whole HTML element so you can’t see the PHP error in your browser.

Here is an example:

<p>
  <a href="<?=missingFunc()?>">test</a>
</p>

When calling this code in Chrome you only get a HTML document with the starting <p> tag. The rest is missing. No error message and no other HTML code after this <p>. This is not a PHP issue. When you open this page in Firefox then you can see the error message (When viewing the HTML code). So this is a Chrome issue.

Don’t know if there is a workaround somewhere. When this happens to you then you have to test the page in Firefox or check the Apache error log.

answered May 14, 2013 at 14:28

kayahr's user avatar

kayahrkayahr

20.8k29 gold badges99 silver badges147 bronze badges

1

I had the same problem but I used ini_set('display_errors', '1'); inside the faulty script itself so it never fires on fatal / syntax errors. Finally I solved it by adding this to my .htaccess:

php_value auto_prepend_file /usr/www/{YOUR_PATH}/display_errors.php

display_errors.php:

<?php
ini_set('display_errors', 1);
error_reporting(-1);
?>

By that I was not forced to change the php.ini, use it for specific subfolders and could easily disable it again.

answered Feb 27, 2017 at 2:08

mgutt's user avatar

mguttmgutt

5,8372 gold badges50 silver badges76 bronze badges

I have encountered also the problem. Finally I found the solution. I am using UBUNTU 16.04 LTS.

1) Open the /ect/php/7.0/apache2/php.ini file (under the /etc/php one might have different version of PHP but apache2/php.ini will be under the version file), find ERROR HANDLING AND LOGGING section and set the following value {display_error = On, error_reporting = E_ALL}.

NOTE — Under the QUICK REFERENCE section also one can find these values directives but don’t change there just change in Section I told.

2) Restart Apache server sudo systemctl restart apache2

Robert's user avatar

Robert

5,6632 gold badges30 silver badges32 bronze badges

answered Apr 10, 2018 at 9:32

mswd745's user avatar

I know this thread is old but I just solved a similar problem with my Ubuntu server and thought I would add a note here to help others as this thread was first page in Google for the topic of PHP not displaying errors.

I tried several configuration settings for the error_reporting value in php.ini. From E_ALL | E_STRICT to E_ALL & E_NOTICE and none worked. I was not getting any syntax errors displayed in the browser (which is rather annoying on a development server). After changing the error_reporting setting to «E_ALL» it all started working. Not sure if it is an Ubuntu Oneric specific issue but after restarting Apache errors started showing in the HTML pages the server was serving. Seems the extra options confusing things and all error reporting stops. HTH somone else.

answered Nov 11, 2011 at 0:36

Zappa's user avatar

ZappaZappa

4551 gold badge5 silver badges14 bronze badges

1

I just experienced this same problem and it turned out that my problem was not in the php.ini files, but simply, that I was starting the apache server as a regular user. As soon as i did a «sudo /etc/init.d/apache2 restart», my errors were shown.

answered Jun 29, 2012 at 13:01

PhlegmaticFraggle's user avatar

I had the same problem with Apache and PHP 5.5.
In php.ini, I had the following lines:

error_reporting E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors Off

instead of the following:

error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors=Off

(the =sign was missing)

Sk8erPeter's user avatar

Sk8erPeter

6,8899 gold badges48 silver badges67 bronze badges

answered Feb 12, 2014 at 10:23

hiszpan's user avatar

1

Though this thread is old but still, I feel I should post a good answer from this stackoverflow answer.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

This sure saved me after hours of trying to get things to work. I hope this helps someone.

answered Nov 9, 2017 at 10:54

mikaelovi's user avatar

mikaelovimikaelovi

1114 silver badges11 bronze badges

When running PHP on windows with ISS there are some configuration settings in ISS that need to be set to prevent generic default pages from being shown.

1) Double click on FastCGISettings, click on PHP then Edit. Set StandardErrorMode to ReturnStdErrLn500.

StandardErrorMode

2) Go the the site, double click on the Error Pages, click on the 500 status, click Edit Feature Settings, Change Error Responses to Detailed Errors, click ok

Change Error Responses to Detailed Errors

answered Feb 7, 2018 at 2:29

naw103's user avatar

naw103naw103

1,8331 gold badge15 silver badges14 bronze badges

For me I solved it by deleting the file of php_errors.txt in the relative folder. Then the file is created automatically again when the code runs next time, and with the errors printed this time.

answered Oct 22, 2019 at 9:30

WH Back's user avatar

I also face the same issue, I have the following settings in my php.inni file

display_errors = On
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT

But still, PHP errors are not displaying on the webpage. I just restart my apache server and this problem was fixed.

answered Nov 27, 2019 at 12:47

habib's user avatar

habibhabib

1,44315 silver badges30 bronze badges


0

1

ubuntu10.10 + LAMP

Проблема.
Специально допускаю синтаксическую ошибку в php, в браузере пустой лист. ошибок нет, php работает нормально. В лог тоже не пишет.

в php.ini:
error_reporting = E_ALL | E_STRICT
display_errors = On
log_errors = On
error_log = /etc/home/user/mylog/php_errors.log
error_reporting = E_ALL
display_startup_errors = On
log_errors_max_len = 1024
путь до ini смотрел проверял через phpinfo();

в .htaccess и в коде вывод ошибок не запрещал.

обсуждение уже поднимал тутhttp://forum.ubuntu.ru/index.php?topic=122048.0, пока ответа не получил. Надеюсь здесь найду помощь.

Like this post? Please share to your friends:
  • Не работает microsoft office ошибка
  • Не работает get contact ошибка 5003
  • Не работает esp ошибок нет
  • Не работает bluetooth на ноутбуке ошибка 43
  • Не пытайся не ищи ошибку