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ć?

Michael
źródło
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.

Thomas Ward
źródło
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.

Justin Paul Paño
źródło
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
Gianfranco P.
źródło
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
Softmixt
źródło
1
Brakuje mi tego pliku. Który pakiet udostępnia ten plik?
galmok
jest dla php7 na Ubuntu 16.4
Softmixt
1

Można znaleźć używany plik, uruchamiając go na terminalu:

php --ini
Nathália Pissuti
źródło