Finden Sie die richtige php.ini-Datei

169

Ich versuche gerade, die richtige php.ini-Datei zu finden, um sie zu bearbeiten und Apache neu zu starten, damit die Änderungen wirksam werden und ich ratlos bin.

Ich habe drei verschiedene php.ini-Dateien gefunden (keine Ahnung, warum es drei gibt). So habe ich die Dateien gefunden

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

Habe ich auch gemacht ....

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

Ich habe alle (nur um sicherzugehen) auf die gewünschten Einstellungen geändert.

Ich habe Apache mit neu gestartet

sudo service apache2 restart

Die Ergebnisse...

* Restarting web server apache2

Ich habe die Seite neu geladen und festgestellt, dass die Datei php.ini nicht aktualisiert wurde.

Ich weiß das, weil ich es benutzt habe

echo ini_get('post_max_size');

Das sollte auf 20M geändert werden, war aber immer noch nur 2M

Ich habe versucht, meinen Computer neu zu starten, da ich dachte, dies würde den Apache-Server anhalten und die php.ini-Datei mit der richtigen Einstellung neu laden, aber leider schlug dieser Versuch auch fehl.

Besteht die Möglichkeit, dass eine andere php.ini-Datei stört?

Michael
quelle
6
Das 'richtige' befindet sich im apache2Unterverzeichnis
Joren
1
Verwenden Sie updatedb; locate php.inianstelle von find.
Sjas
@Michael Die Datei ist /etc/php/5.6/apache2/php.iniin Ubuntu 16.04 LTS Xenial Xerus, wo 5.6/die Version von PHP installiert ist. Kopieren Sie zuerst die Datei php.original.iniund öffnen Sie sie dann zum Bearbeiten mit sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Finger

Antworten:

289

Die drei Dateien, die Sie dort haben, sind jeweils für unterschiedliche Zwecke bestimmt.

/etc/php/5.6/cli/php.iniist für das CLI-PHP-Programm, das Sie gefunden haben, indem Sie es phpauf dem Terminal ausgeführt haben.

/etc/php/5.6/cgi/php.ini ist für das PHP-CGI-System, das in diesem Setup nicht speziell verwendet wird.

/etc/php/5.6/apache2/php.iniist für das von Apache verwendete PHP-Plugin. Diese müssen Sie bearbeiten, damit die Änderungen für Ihr Apache-Setup übernommen werden.

/etc/php/5.6/fpm/php.iniist für den php5-fpmProzessor gedacht, der ein FastCGI-kompatibler 'Wrapper' für die PHP-Verarbeitung ist (z. B. zur Weitergabe von NGINX an php5-fpm) und als eigenständiger Prozess auf dem System ausgeführt wird (im Gegensatz zum Apache PHP-Plugin).

Für die Versionen von Ubuntu niedriger als 16.04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, und so weiter, werden ersetzt durch /etc/php5/und so weiter. Ansonsten bleiben diese Pfade genau. Passen Sie dies entsprechend Ihrer Umgebung an, indem Sie die 5.6oder -Nummer durch den tatsächlichen Versionsordner ersetzen, der in Ihrer Umgebung vorhanden ist.

Thomas Ward
quelle
1
Die Datei php.ini befindet sich nicht im Verzeichnis / etc / php5 / apache2. aber es ist dort im cli-verzeichnis verfügbar.
Anuj TBE
2
@ anujsharma9196 Der einzige Grund, der der Fall wäre, wäre, wenn Sie nicht das von Apache erstellte Plugin für PHP verwenden. Die Dateipfade funktionieren immer noch wie hier aufgeführt (bestätigt auf meiner 15.04 VM)
Thomas Ward
21

Führen Sie in Ihrem Browser ein Skript aus, das dieses Snippet enthält, <?php phpinfo(); ?>und suchen Sie dann nach einer geladenen Konfigurationsdatei . Dieser Eintrag gibt die php.ini an, die Ihr PHP auf Ihrem Apache-Server verwendet.

Justin Paul Paño
quelle
14

Um herauszufinden, welche php.iniCLI verwendet, können Sie Folgendes ausführen:

php -i | grep 'php.ini'

Beispielausgabe:

$ 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.
quelle
Dies sollte die akzeptierte Antwort sein!
Marcelo Ágil
1
Das ist gut, gibt aber die cli geladenen Configs nur für PHP. Um die Apache-Konfiguration zu laden, muss phpinfo () auf einer Webseite ausgeführt werden.
Dipu Raj
13

für php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini
Softmixt
quelle
1
Ich vermisse diese Datei. Welches Paket stellt diese Datei bereit?
Galmok
ist für PHP7 auf Ubuntu 16.4
Softmixt
1

Sie können die verwendete Datei finden, indem Sie diese auf dem Terminal ausführen:

php --ini
Nathália Pissuti
quelle