Znajdź odpowiedni plik php.ini


168

Obecnie próbuję zlokalizować poprawny plik php.ini, aby go edytować i ponownie uruchomić apache, aby zmiany zostały wprowadzone, a ja jestem zakłopotany.

Znalazłem trzy różne pliki php.ini (nie mam pojęcia, dlaczego są trzy) w ten sposób znalazłem pliki

$ sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini

Ja też ...

$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Zmieniłem wszystkie (tylko dla pewności) na ustawienia, które chciałem.

Zrestartowałem apache używając

sudo service apache2 restart

Wyniki...

* Restarting web server apache2

Ponownie załadowałem stronę i pokazało, że plik php.ini nie został zaktualizowany.

Wiem to, ponieważ użyłem

echo ini_get('post_max_size');

Który miał zostać zmieniony na 20 milionów, ale wciąż był tylko 2 milionami

Próbowałem ponownie uruchomić komputer, myśląc, że może to zatrzyma serwer apache i przeładuje plik php.ini z prawidłowym ustawieniem, ale niestety próba ta również się nie powiodła.

Czy jest jakaś szansa, że ​​inny plik php.ini mógłby przeszkadzać?


6
„poprawny” znajduje się w apache2podkatalogu
Joren,

1
użyj updatedb; locate php.inizamiast find.
sjas,

@ Michael Plik znajduje się /etc/php/5.6/apache2/php.iniw Ubuntu 16.04 LTS Xenial Xerus, gdzie 5.6/jest zainstalowana wersja php. Najpierw skopiuj plik, php.original.inia następnie otwórz go do edycji za pomocą sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Finger

Odpowiedzi:


288

Każdy z tych trzech plików przeznaczony jest do różnych zastosowań.

/etc/php/5.6/cli/php.inidotyczy programu CLI PHP, który został znaleziony przez uruchomienie phpna terminalu.

/etc/php/5.6/cgi/php.ini jest przeznaczony dla systemu php-cgi, który nie jest specjalnie używany w tej konfiguracji.

/etc/php/5.6/apache2/php.inidotyczy wtyczki PHP używanej przez Apache. To jest ten, który musisz edytować, aby zastosować zmiany w konfiguracji Apache.

/etc/php/5.6/fpm/php.inijest przeznaczony dla php5-fpmprocesora, który jest kompatybilnym z fastcgi „opakowaniem” do przetwarzania PHP (np. do przekazywania z NGINX do php5-fpm) i działa jako samodzielny proces w systemie (w przeciwieństwie do wtyczki Apache PHP)

Dla wersji Ubuntu niższych niż 16.04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, i tak dalej, są zastępowane przez /etc/php5/i tak dalej. W przeciwnym razie ścieżki te pozostaną dokładne. Dostosuj to odpowiednio do swojego środowiska, zastępując symbol 5.6lub numerem faktycznym folderem wersji, który istnieje w twoim środowisku.


1
Plik php.ini nie został znaleziony w katalogu / etc / php5 / apache2. ale jest tam dostępny w katalogu cli.
Anuj TBE

2
@ anujsharma9196 Jedynym powodem takiego stanu rzeczy jest to, że nie używasz wbudowanej wtyczki Apache dla PHP. Ścieżki do plików nadal działają tak, jak podano tutaj do dziś (potwierdzone na mojej maszynie wirtualnej 15.04)
Thomas Ward

21

Spróbuj uruchomić skrypt zawierający ten fragment <?php phpinfo(); ?>kodu w przeglądarce, a następnie spróbuj wyszukać coś takiego jak Załadowany plik konfiguracyjny . Ten wpis określa php.ini, którego PHP używa na serwerze Apache.


14

Aby dowiedzieć się, którego php.iniużywa CLI, możesz uruchomić:

php -i | grep 'php.ini'

Przykładowe dane wyjściowe:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini

To powinna być zaakceptowana odpowiedź!
Marcelo Ágil

1
Jest to dobre, ale da konfiguracje załadowane cli tylko dla php. Aby pobrać konfiguracje apache, należy wykonać phpinfo () na stronie internetowej.
Dipu Raj

13

dla php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini

1
Brakuje mi tego pliku. Który pakiet udostępnia ten plik?
galmok

jest dla php7 na Ubuntu 16.4
Softmixt

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.