Temukan file php.ini yang benar


170

Saat ini saya mencoba mencari file php.ini yang benar untuk mengeditnya dan memulai kembali apache sehingga perubahan akan terjadi dan saya bingung.

Saya telah menemukan tiga file php.ini berbeda (tidak tahu mengapa ada tiga) ini adalah bagaimana saya menemukan file

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

Saya juga ....

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

Saya mengubah semuanya (hanya untuk memastikan) ke pengaturan yang saya inginkan.

Saya memulai kembali apache menggunakan

sudo service apache2 restart

Hasil...

* Restarting web server apache2

Saya memuat ulang halaman dan itu menunjukkan bahwa file php.ini tidak diperbarui.

Saya tahu ini karena saya dulu

echo ini_get('post_max_size');

Yang seharusnya diubah menjadi 20M tetapi masih hanya 2M

Saya mencoba me-reboot komputer saya dengan berpikir mungkin itu akan menghentikan server apache dan memuat kembali file php.ini dengan pengaturan yang benar, tetapi sayangnya upaya itu juga gagal.

Apakah ada kemungkinan ada file php.ini lain yang bisa mengganggu?


6
yang 'benar' ada di apache2subdirektori
Joren

1
gunakan updatedb; locate php.inisebagai ganti find.
sjas

@Michael File ini ada /etc/php/5.6/apache2/php.inidi Ubuntu 16.04 LTS Xenial Xerus, di mana 5.6/versi php diinstal. Pertama-tama salin file untuk php.original.inikemudian dibuka untuk diedit dengan sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Finger

Jawaban:


290

Tiga file yang Anda miliki masing-masing dimaksudkan untuk penggunaan yang berbeda.

/etc/php/5.6/cli/php.iniadalah untuk program PHP CLI, yang Anda temukan dengan menjalankannya phpdi terminal.

/etc/php/5.6/cgi/php.ini adalah untuk sistem php-cgi yang tidak secara khusus digunakan dalam pengaturan ini.

/etc/php/5.6/apache2/php.iniadalah untuk plugin PHP yang digunakan oleh Apache. Ini adalah yang Anda perlu edit agar perubahan diterapkan untuk pengaturan Apache Anda.

/etc/php/5.6/fpm/php.iniadalah untuk php5-fpmprosesor, yang merupakan 'pembungkus' yang kompatibel dengan fastcgi untuk pemrosesan PHP (seperti menyerahkan dari NGINX ke php5-fpm) dan berjalan sebagai proses mandiri pada sistem (tidak seperti plugin Apache PHP)

Untuk versi Ubuntu lebih rendah dari 16,04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, dan sebagainya, diganti dengan /etc/php5/dan sebagainya. Kalau tidak, jalur ini tetap akurat. Adaptasi ini sesuai dengan lingkungan Anda, mengganti 5.6atau nomor dengan folder versi aktual yang ada di lingkungan Anda.


1
php.ini tidak ditemukan di direktori / etc / php5 / apache2. tetapi tersedia di direktori cli.
Anuj TBE

2
@ anujsharma9196 Satu-satunya alasan yang akan terjadi adalah jika Anda tidak menggunakan plugin yang dibuat oleh Apache untuk PHP. Jalur file masih berfungsi seperti yang tercantum di sini hingga hari ini (dikonfirmasi pada 15,04 VM saya)
Thomas Ward

21

Coba jalankan skrip yang berisi snippet ini di browser Anda <?php phpinfo(); ?>dan kemudian coba cari sesuatu seperti Loaded Configuration File . Entri ini menentukan php.ini yang digunakan PHP Anda di server Apache Anda.


14

Untuk menemukan php.iniCLI yang digunakan, Anda dapat menjalankan:

php -i | grep 'php.ini'

Contoh output:

$ 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

Ini harus menjadi jawaban yang diterima!
Marcelo Ágil

1
Ini bagus, tetapi akan memberikan konfigurasi cli loaded untuk php saja. Untuk mendapatkan konfigurasi apache yang dimuat, perlu melakukan phpinfo () pada halaman web.
Dipu Raj

13

untuk php7 ubuntu 16.4

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

1
Saya melewatkan file itu. Paket mana yang menyediakan file itu?
galmok

untuk php7 di ubuntu 16.4
Softmixt

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.