Di mana PHP.ini di Mac OS X Lion? Pikir itu di / usr / local / php5 / lib

268

Saya ingin menjalankan beberapa PHP langsung di Mac saya, httpd.conf uncommented, berbagi web yang diaktifkan, menginstal MySQL dll. Sepertinya saya tidak dapat menemukan file PHP saya, yang paling penting, PHP.ini.

Pada mesin lama saya, ia berada di / usr / local / php5 / lib Tapi direktori php5 tidak ada di / usr / local ..

Apakah saya perlu mendapatkan paket atau saya mencari di tempat yang salah?

Menjalankan OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21

Orun
sumber
9
Cara mudah untuk menemukan lokasi adalah dengan menjalankan phpinfo ();
ralfe
10
Ataulocate php.ini
Pekka
12
@ralfe Perlu ditambahkan bahwa Anda perlu mencari pengaturan 'Loaded Configuration File' dari phpinfo () atau php --ini(jalankan di jendela terminal). Karena jika tidak ada php.ini keduanya akan melaporkan Path File Konfigurasi sebagai /etc(setidaknya pada OS X saya 10.8 instal). Jika tidak ada file konfigurasi yang dimuat, maka Anda harus mencoba jawabannya dengan mac
Jason S
/ usr / local / php5 adalah tempat php-installer dari entropy.ch dan liip.ch menginstal (ed) php. Ini belum pernah menjadi lokasi instalasi php Apel.
heiglandreas
8
Lakukan iniphp -i | grep php.ini

Jawaban:

396

Anda harus menemukannya di / private / etc jika ada, jika tidak:

sudo cp /private/etc/php.ini.default /private/etc/php.ini
Mac
sumber
Oke, ada php.ini.default di / private / etc dan saya memeriksanya. tetapi ada ide mengapa saya tidak memiliki folder php5 lama saya di usr / local? Dulu ada banyak file di sana termasuk php.ini yang direkomendasikan. Apakah ini perubahan dalam versi yang lebih baru atau PHP5 atau Lion atau yang lainnya?
Orun
PHP5 disertakan secara default di MacOS X sejak 10.5 dengan lokasi di atas untuk file php.ini. Jika Anda menginstalnya secara manual, seharusnya tidak dihapus selama peningkatan ke Lion; aneh ...
mac
2
File php.ini.default pada mesin Lion saya tidak cocok dengan semua pengaturan default ketika tidak ada php.ini. Khususnya short_tags Off, error_reporting, log_errors, dan beberapa pengaturan kecil berbeda. Anda akan ingin membandingkan output Anda php -isebelum dan sesudah membuat php.ini Anda.
spoulson
1
di mac saya, saya punya file di /private/etc/php.ini tetapi php sepertinya mengabaikan perubahan yang saya buat di sana, ternyata menggunakan yang ada di /usr/local/php5/lib/php.ini sebagai gantinya
Kit Ramos
2
Jawaban ini mengarahkan saya ke arah yang benar. cp php.ini.default> php.ini dan konfigurasi yang dimuat CLI menjadi /etc/php.ini. Periksa php -i | grep php.ini after
bpile
407

Untuk menemukan file ini di mesin Anda, buka Terminal.appdan jalankan perintah berikut:

php --ini

Jika Anda membutuhkan templat untuk Lion, coba ini .

rkmax
sumber
2
Saya tidak punya php.ini yang dimuat sekarang. Pada dasarnya saya mencari direktori dengan "direkomendasikan" template php.ini.
Orun
47

Di terminal lakukan php -i | grep php.ini. Harus memberi Anda beberapa petunjuk;)

SpoBo
sumber
26

Jawaban dari @Cronk dan @Justin membuat saya dekat pada Mac OS X 10.9 Mavericks. Bahkan, pada sistem saya /etc/php.inifile itu hilang sepenuhnya, dan tidak sampai saya berlari phpinfo()di server web yang saya amati tidak ada file konfigurasi. Menyalin file dari /etc/php.ini.defaultdan menambahkan jalur yang memenuhi syarat ke mcrypt.soperpustakaan ke file konfigurasi menyelesaikan masalah:

cp /etc/php.ini.default /etc/php.ini

Kemudian /etc/php.initambahkan baris berikut (menggunakan jalur yang benar ke mcrypt.sofile Anda ):

extension="/usr/local/Cellar/php54-mcrypt/5.4.29/mcrypt.so"

Kemudian mulai ulang Apache2:

apachectl restart
Peter Gluck
sumber
omg, kau adalah pahlawanku !! terima kasih atas gagasan menggunakan path lengkap mcrypt!
Ini
25

Seperti yang ditunjukkan, php --iniperintah akan memberi tahu Anda di mana PHP mengharapkan untuk menemukan file php.ini.

Untuk instalasi standar, kemungkinan akan dicari /etc/php.ini

Jika Anda telah menggunakan macports maka PHP mungkin mencari/opt/local/etc/php5/php.ini

Joat
sumber
7
etc adalah tautan ke private / etc: / etc -> private / etc
pm_labs
21

Jalankan phpinfo()dari file apa pun dan memberi tahu Anda di mana file itu berada. Ini screenshotnya.

masukkan deskripsi gambar di sini

Robert Rocha
sumber
3
ini adalah cara terbaik untuk pergi, karena Anda mungkin menemukan salinan php.ini di folder "default" lain tetapi cara ini akan memberi tahu Anda yang sebenarnya digunakan, sehingga Anda menghindari goresan dan frustrasi kepala yang muncul saat Anda membuat perubahan tetapi php tampaknya sama sekali tidak menyadari perubahan tersebut.
Kit Ramos
Anda juga dapat membuka php REPL di shell Anda dengan menjalankan php -atempat Anda menjalankannya phpinfo();.
metakermit
14

Saya memiliki lebih dari satu contoh menjalankan PHP sehingga jawaban lain tidak bekerja untuk saya. Ini berhasil:

Buat file PHP dan buka url lokal di browser Anda:

<?php phpinfo(); ?>

Jalur PHP.INI akan dicantumkan dekat dengan bagian atas.

Justin
sumber
3

Ini adalah utas yang agak lama, tetapi saya ingin menambahkan klarifikasi lebih lanjut.

Jika Anda memiliki sistem yang memiliki banyak instalasi PHP (seperti milik saya), hasil yang Anda dapatkan dari menggunakan alat baris perintah MUNGKIN berbeda dari apa yang sebenarnya digunakan oleh server web. Jika Anda tertarik dengan PHP apa yang digunakan oleh server web, hanya gunakan informasi yang dikumpulkan dari halaman web yang menggunakan fungsi 'phpinfo ()'.

Sebagai contoh, pada sistem saya versi yang dilaporkan oleh dua metode yang berbeda adalah:

Baris perintah: 5.3.26

Web: 5.3.13

Untuk jalur file php.ini, semuanya berbeda, juga:

Baris perintah: /private/etc/php.ini

Web: /long/path/to/the/file/php.ini

Anda dapat menemukan semua file php.ini yang mungkin menggunakan ini:

temukan / -nama php.ini 2> & 1 | grep -v "ditolak" | grep -v "direktori"

(elemen '2> & 1' dan 'grep' hanya membatasi output dari perintah ke informasi yang berguna, yaitu menyingkirkan pesan kesalahan)

Di sistem saya, saya menemukan 3 file INI. Karena saya tertarik dengan apa yang digunakan server web, saya tahu saya harus menggunakan jalur yang dikembalikan dari hasil halaman web. Saya membuat perubahan pada file php.ini yang terdaftar di sana, memulai kembali apache, dan menjalankan kembali halaman web; hasil edit baru ditampilkan di sana.

Untuk memulai kembali apache:

sudo apachectl -k restart

- J

Cronk
sumber
1

Saya mulai dengan 'Hello World!', Begitu saya mendapatkan tampilan di browser saya, saya melemparkan phpinfo();di sana dan Anda dapat melihat semua hal. Memberitahu Anda konfigurasi mana yang dimuat, semuanya.

<?php
   echo 'Hello World!';

   phpinfo();
CenterOrbit
sumber
0

Anda menjalankan php_info () dan melihat baris di bawah :)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini
Quy Le
sumber