Wymagany restart Apache, aby PHP ponownie odczytał plik php.ini?

9

Czy PHP czyta php.ini przy każdym żądaniu, czy też muszę ponownie uruchomić Apache, aby php był świadomy zmian w php.ini?

Petruza
źródło

Odpowiedzi:

11

Konieczne będzie ponowne uruchomienie - pliki konfiguracyjne, w tym php.ini, są odczytywane po uruchomieniu procesu głównego, a rzeczywiste strony internetowe są obsługiwane przez potomne procesy apache sklonowane (rozwidlone) z poziomu głównego.

Devin Ceartas
źródło
2
„Pełne” ponowne uruchomienie powinno wystarczyć, jeśli chcesz uniknąć ryzyka błędów klienta.
daveadams
@daveadams: świetnie, co to jest wdzięczny restart? Po prostu ponownie uruchamiam go za pomocą wiersza polecenia XAMPP, który, jak sądzę, zabija proces i uruchamia go ponownie. To tylko lokalny serwer deweloperów, synu, nie martw się o wściekłych klientów, ale i tak chciałby wiedzieć.
Petruza
@Devin: Czy więc apache faktycznie wywołuje php jeden raz i wciąż działa i odradza dziecko tylko dla każdego żądania?
Petruza
Mówiąc dokładniej - ładuje pliki konfiguracyjne (takie jak httpd.conf i php.ini) po uruchomieniu. Skrypty PHP są uruchamiane od nowa za każdym razem, gdy skrypt jest uruchamiany - w wykonywaniu skryptu PHP nie ma pamięci na żądanie, tak jak w przypadku mod_perl.
Devin Ceartas
2
@Petruza: graceful oznacza po prostu, że nie zabije żadnych procesów, które są w trakcie wyświetlania strony użytkownikowi. W przypadku deweloperów, twoja metoda jest w porządku, ale ogólnie rzecz biorąc, niezależnie od tego, jakiego skryptu Apache używasz do określenia „start”, „stop” lub „restart”, możesz po prostu powiedzieć „wdzięczny”, a każdy proces będzie czekał na zakończenie trwającej pracy przed śmiercią i odrodzeniem z nowymi ustawieniami.
daveadams