Apache + PHP - php.ini nie działa, a ini_set() działa

0

Tło sytuacji: wczoraj zainstalowałem sobie serwer Apache 2.4 oraz PHP 7.1 na linuksie. Pięknie działało, póki nie zechciałem użyć wyrażenia include, żeby dołączyć zewnętrzny plik. Błąd w jego działaniu doprowadził mnie do szukania sposobu wyświetlenia go na ekranie (błędu, znaczy). Znalazłem więc parametr o bardzo ładnej nazwie: display_errors. Jak przeczytałem, można go ustawić albo w pliku php.ini, albo za pomocą funkcji ini_set().

Pytanie: Gdy ustawiam ten parametr w pliku php.ini, nie działa (na stronie nic się nie wyświetla; oczywiście restartuję Apache po każdej zmianie php.ini). Gdy ustawiam za pomocą ini_set(), działa (błędy wyświetlają się na stronie). Dlaczego tak jest?

Dodam, że gdy próbuję sprawdzić, jaka jest wartość display_errors za pomocą ini_get(), to:

  • przed wywołaniem ini_set() otrzymuję pusty napis, co powinno oznaczać, że wartość jest ustawiona na Off (zgodnie z tym: http://php.net/manual/en/function.ini-get.php) (dlaczego? W php.ini mam ustawione na On);
  • natomiast po wywołaniu ini_set() otrzymuję wartość On.

Może PHP odczytuje ten parametr z jakiegoś innego pliku niż php.ini? Ale jakiego?

Chętnie podzielę się jakąś konfiguracją, jeśli będzie potrzebna.

Mam wrażenie, że przeoczyłem coś bardzo prostego.


EDIT:
Sprawdziłem, czy zmieniam dobry plik konfiguracyjny, za pomocą funkcji php_ini_loaded_file() – tak, dobry (/etc/php.ini). :(


EDIT 2:
Sprawdziłem – display_errors występuje w php.ini tylko raz.

0

Zobacz .htaccess i index.php - tam często są wpisy odnośnie raportowania błędów.

0

Sprawdź czy zmieniasz prawidłowe PHP.ini http://php.net/manual/en/function.php-ini-loaded-file.php

0

może spróbuj paczki xampp, wampp czy pokrewnej, ogólnie wszystko powinno działać bez problemu

0

Sprawdź dla pewności czy display_error w PHP.ini występuje tylko raz...

0

Odpowiadaj w postach, bo to rozbija wątek...
Coś to nie pasuje skoro gry zwraca pusty string, ty masz w PHP.ini skonfigurowane to gdzieś jest błąd, daj w załączniku wynik phpinfo i PHP.ini

0

Nic nie rozumiem... teraz działa, a wygląda, jakbym nic nie zmieniał... Może to chodziło o restart systemu... Ale tego to najmniej bym się spodziewał...


EDIT:

A może o to, że wczoraj robiłem restart Apache'a za pomocą apachectl restart, a dziś spróbowałem apachectl graceful...


EDIT 2:
Ale jeśli to kwestia sposobu restartu, to powinno być odwrotnie, bo przecież w dokumentacji (man) apachectl dla opcji graceful stoi:

A side effect is that old log files will not be closed immediately. This means that if used in a log rotation script, a substantial delay may be necessary to ensure that the old log files are closed before processing them. This command automatically checks the configuration files as in configtest before initiating the restart to make sure Apache doesn't die.


EDIT 3:
A co do restartu systemu, to chętnie się dowiem, czy może mieć to jakikolwiek wpływ.

1 użytkowników online, w tym zalogowanych: 0, gości: 1