Saya perlu mengaktifkan pdo_mysql di lingkungan EasyPhp saya, jadi saya pergi ke file php.ini dan menghapus komentar pada baris berikut:
extension=php_pdo_mysql.dll
Sayangnya saya masih memiliki masalah yang sama. Saya menggunakan CLI jadi saya kira saya perlu mencari file php.ini yang digunakan oleh CLI. Bagaimana saya bisa menemukannya?
Jawaban:
Jalankan saja
php --ini
dan cariLoaded Configuration File
dalam output untuk lokasi yangphp.ini
digunakan oleh CLI Andasumber
sudo find / -iname php.ini
dan menemukan/etc/php/7.0/apache2/php.ini
tempat yang tepat dari file konfigurasi php.ini yang tepat dari mesin saya yang tidak ditemukan olehphp --ini
atauphp -i | grep php.ini
(keduanya ditemukan/etc/php/7.0/cli/php.ini
)Anda bisa mendapatkan penuh
phpinfo()
menggunakan:Dan, di sana, ada
php.ini
file yang digunakan:Sebaliknya, pada Windows gunakan
find
:sumber
Configuration File
garis phpinfo () menunjukkan tempat terakhir di mana php mencari sebuah file ini. Itu bisa menjadi tempat di mana ia menemukan file seperti itu atau opsi terakhir yang merupakan% SYSTEMROOT% di windows.php -i | find "Configuration file"
harus bekerja di Windows. Jelas tidak sekuat grep, tetapifind
akan melakukan pencarian string dasar untuk Anda. Tentu saja, jika php -i membuang outputnya ke stderr, Anda mungkin SOL.find
peka terhadap huruf besar-kecil, jadi harus sempurna (php -i | find "Configuration File"
) atau dibuat tidak peka huruf besar-kecil (php -i | find /i "Configuration file"
- perhatikan/i
benderanya).php --ini
sebagai alternatif; tersedia sejak PHP 5.2.3 :)Anda dapat menggunakan get_cfg_var ('cfg_file_path') untuk itu:
Tidak seperti phpinfo () ia akan memberi tahu jika tidak menemukan / menggunakan php.ini sama sekali.Dan Anda cukup mengatur lokasi php.ini . Anda menggunakan versi baris perintah, jadi menggunakan
-c
parameter Anda dapat menentukan lokasi, missumber
Jalankan
php --ini
di terminal Anda, Anda akan mendapatkan semua detail tentang file iniUntuk lebih lanjut, gunakan perintah bantuan.
php --help
Ini akan menampilkan semua opsi yang mungkin.sumber
Kadang-kadang hal-hal tidak selalu seperti yang terlihat ketika datang ke file konfigurasi secara umum. Jadi di sini saya menerapkan metode biasa untuk mengeksplorasi file apa yang dibuka oleh suatu proses.
Saya menggunakan program baris perintah yang sangat kuat dan berguna yang disebut strace untuk menunjukkan kepada saya apa yang sebenarnya terjadi di belakang saya!
Strace menggali kernel (sistem) yang dipanggil oleh program Anda dan membuang output ke file yang ditentukan oleh -o
Sangat mudah untuk menggunakan grep untuk mencari kemunculan php.ini di log ini. Cukup jelas melihat respons khas berikut untuk melihat apa yang terjadi.
sumber
php -i
memberi saya hasil yang salah, tapi yang ini baik-baik saja. Terima kasih!Jika Anda ingin semua file konfigurasi dimuat, ini akan memberi tahu Anda:
Beberapa sistem memuat berbagai hal dari lebih dari satu file ini. Di sistem ubuntu saya, tampilannya seperti ini:
sumber
Di OSX Mavericks, jalankan:
Kembali:
Dalam
/etc/
direktori itu:(juga
php-fpm.conf.default
)Saya bisa menyalin
php.ini.default
kephp.ini
, tambahkandate.timezone = "US/Central"
ke atas (tepat di bawah[php]
), dan masalahnya selesai.(Setidaknya pesan kesalahannya hilang.)
sumber
Jika Anda harus meneruskannya ke aplikasi lain, Anda dapat melakukan sesuatu seperti:
hanya mengembalikan jalur.
php -c $(php --ini | grep Loaded | cut -d" " -f12)
akan meneruskan file konfigurasi (berguna untukfpm
)sumber
Dari apa yang saya ingat ketika saya dulu menggunakan EasyPHP, file php.ini ada di
C:\Windows\
atauC:\Windows\System32
sumber
Melakukan
Ini akan menampilkan semua file bernama
php.ini
.Cari tahu yang mana yang Anda gunakan, biasanya
apache2/php.ini
sumber
Di file php.ini Anda, atur direktori ekstensi Anda, mis:
Anda akan melihat di folder PHP Anda ada folder ext dengan semua dll dan ekstensi.
sumber
Simpan output CLI phpinfo ke file lokal:
sumber
Dalam docker container, phpmyadmin / phpmyadmin no file php.ini. Tetapi ada dua file: php.ini-debug dan php.ini-production
Untuk mengatasi masalah ini, cukup ganti nama salah satu file ke php.ini dan mulai ulang wadah buruh pelabuhan.
sumber
Tidak ada php.ini yang digunakan oleh baris perintah. Anda harus menyalin file dari
...EasyPHP-<<version>>\apache\php.ini
ke...EasyPHP-<<version>>\php\php.ini
daripada mengedit satu di php direktoriReferensi:
sumber