Ubuntu didasarkan pada Debian. Debian dan turunannya menggunakan cara yang agak unik dalam mengelola ekstensi untuk php dan apache.
Dari file yang telah Anda daftarkan:
-
/etc/php/7.0/apache2/conf.d/20-xdebug.ini adalah symlink ke /etc/php/7.0/mods-available/xdebug.ini
-
/etc/php/7.0/cli/conf.d/20-xdebug.ini juga merupakan symlink ke /etc/php/7.0/mods-available/xdebug.ini
- Anda dapat mengedit /etc/php/7.0/mods-available/xdebug.ini secara langsung dan perubahan yang Anda buat akan memengaruhi di mana pun fitur ini diaktifkan.
Perintah phpenmod
dan phpdismod
tersedia untuk mengaktifkan atau menonaktifkan modul PHP. Ini seperti a2enmod
untuk apache, yang dapat Anda baca di sini. Misalnya, matikan XDebug dengan sudo phpdismod xdebug
. Hidupkan kembali dengan sudo phpenmod xdebug
. Konfigurasi Anda akan dipertahankan saat Anda mengaktifkan dan menonaktifkannya karena perubahan Anda selalu disimpan di mods-available
, meskipun PHP tidak mencari di direktori itu untuk konfigurasi. Faktanya, saat Anda "menonaktifkan" modul dengan phpdismod
, itu hanya menghapus symlink dari folder yang sesuai sehingga modul tidak diaktifkan di konfigurasi php.
Terakhir, /etc/php/7.0/apache2/php.ini
adalah lokasi untuk konfigurasi seluruh sistem yang bukan merupakan modul yang dapat diaktifkan atau dinonaktifkan.
Jadi, konfigurasi Anda berubah seperti xdebug.remote_port = 9000
harus masuk /etc/php/7.0/mods-available/xdebug.ini
karena ini terkait dengan XDebug. Menempatkannya di kedua tempat adalah ide yang buruk (karena kebingungan yang ditimbulkannya), tetapi yang terakhir memuat lebih diutamakan. Inilah mengapa banyak file di direktori mods-available memiliki nomor di nama file - jadi file akan dimuat dalam urutan yang benar.
Gunakan phpinfo()
fungsi untuk mendapatkan lebih banyak info tentang nilai konfigurasi mana yang dimuat dan dari file ini mana mereka dimuat. Misalnya:
$ php -r "phpinfo();"
atau
$ php -r "phpinfo();" | grep xdebug
Ini tergantung pada bagaimana PHP dikompilasi. Lihatlah bagaimana PHP dikompilasi dengan meninjau daftar .ini
file yang sedang dimuat dan dari mana file tersebut dimuat.
Dari baris perintah, ketik berikut ini dan tinjau:
$ php -i | grep .ini
Atau, Anda dapat mempelajarinya dengan membuat file PHP sementara dan mengunjunginya di browser. Pastikan untuk memberi nama sesuatu yang sulit ditemukan, dan hapus segera setelah Anda selesai; mis., /info-949w30.php
. Mengapa? Karena laporan ini mungkin membocorkan jalur sistem file lengkap, nomor versi, dan detail lainnya.
<?php phpinfo();
PHP memiliki dua arahan yang dibuat saat dikompilasi.
--with-config-file-path=path/to/main.ini
--with-config-file-scan-dir=/scan/this/dir/for/other.ini
file.
.ini
utama file dimuat terlebih dahulu, dan kemudian file di scan-dir dimuat menurut abjad setelah itu. Itulah mengapa Anda melihat banyak .ini
file menggunakan awalan numerik. Itu cara mudah untuk mengambil kendali atas urutan pemuatan. Mengubah nama file sehubungan dengan yang lain di direktori.