PHP.ini ใน Mac OS X Lion อยู่ที่ไหน คิดว่าเป็น / usr / local / php5 / lib


268

ฉันต้องการเรียกใช้ PHP บน Mac ของฉัน, httpd.conf ที่ไม่ได้คอมเมนต์, การเปิดใช้งานเว็บร่วม, ติดตั้ง MySQL เป็นต้นฉันไม่สามารถค้นหาไฟล์ PHP ของฉันได้, ที่สำคัญที่สุดคือ PHP.ini

บนเครื่องเก่าของฉันมันตั้งอยู่ใน / usr / local / php5 / lib แต่ไดเรกทอรี php5 ไม่มีอยู่ใน / usr / local ..

ฉันต้องได้รับแพ็คเกจหรือฉันกำลังมองหาสถานที่ที่ไม่ถูกต้องหรือไม่?

ใช้ OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21


9
วิธีง่ายๆในการค้นหาตำแหน่งคือการเรียกใช้ phpinfo ();
ralfe

10
หรือlocate php.ini
Pekka

12
@ralfe ควรเพิ่มว่าคุณต้องค้นหาการตั้งค่า 'Loaded Configuration File' จาก phpinfo () หรือphp --ini(ทำงานในหน้าต่างเทอร์มินัล) เพราะถ้าไม่มี php.ini ทั้งสองอย่างจะรายงานเส้นทางไฟล์การกำหนดค่าเป็น/etc(อย่างน้อยในการติดตั้ง OS X 10.8 ของฉัน) หากไม่มีไฟล์การกำหนดค่าโหลดคุณควรลองคำตอบโดย mac
Jason S

/ usr / local / php5 เป็นที่ที่ php-installer ของ entropy.ch และ liip.ch ติดตั้ง (ed) php มันไม่เคยเป็นที่ตั้งของแอปเปิ้ลติดตั้ง php
heiglandreas

8
ทำสิ่งนี้php -i | grep php.ini

คำตอบ:


396

คุณควรหามันใน / private / etc หากมีอยู่มิฉะนั้น:

sudo cp /private/etc/php.ini.default /private/etc/php.ini

ตกลงมี php.ini.default ใน / private / etc และฉันกำลังตรวจสอบออก แต่ความคิดใด ๆ ทำไมฉันไม่มีโฟลเดอร์ php5 เก่าของฉันใน usr / local เคยมีกลุ่มของไฟล์ในนั้นรวมถึง php.ini แนะนำ นี่เป็นการเปลี่ยนแปลงในเวอร์ชันที่ใหม่กว่าหรือ PHP5 หรือ Lion หรืออย่างอื่นหรือไม่
Orun

PHP5 รวมอยู่ในค่าเริ่มต้นใน MacOS X ตั้งแต่ 10.5 ด้วยตำแหน่งด้านบนสำหรับไฟล์ php.ini หากคุณติดตั้งแบบแมนนวลไม่ควรถูกลบออกระหว่างการอัพเกรดเป็น Lion แปลก ...
แม็ค

2
ไฟล์ php.ini.default ในเครื่อง Lion ของฉันไม่ตรงกับการตั้งค่าเริ่มต้นทั้งหมดเมื่อไม่มี php.ini อยู่ short_tags สะดุดตาคือปิด error_reporting, log_errors และการตั้งค่าเล็กน้อยต่างกัน คุณจะต้องเปรียบเทียบผลลัพธ์php -iก่อนและหลังการสร้าง php.ini ของคุณ
spoulson

1
บน mac ของฉันฉันมีไฟล์ที่ /private/etc/php.ini แต่ php ดูเหมือนจะเพิกเฉยต่อการเปลี่ยนแปลงใด ๆ ที่ฉันทำที่นั่นพบว่าใช้ไฟล์ใน /usr/local/php5/lib/php.ini แทน
Kit Ramos

2
คำตอบนี้ชี้ให้ฉันไปในทิศทางที่ถูกต้อง cp php.ini.default> php.ini และการกำหนดค่าที่โหลด CLI กลายเป็น /etc/php.ini ตรวจสอบ php -i | grep php.ini after
bpile

407

หากต้องการค้นหาไฟล์ ini บนเครื่องของคุณให้เปิดTerminal.appและเรียกใช้คำสั่งต่อไปนี้:

php --ini

หากคุณต้องการแม่แบบสำหรับสิงโตลองนี้


2
ฉันไม่มี php.ini ที่โหลดในขณะนี้ โดยทั่วไปฉันกำลังมองหาไดเรกทอรีที่มีแม่แบบ "แนะนำ" php.ini
Orun


26

คำตอบจาก @Cronk และ @Justin ทำให้ฉันสนิทกับ Mac OS X 10.9 Mavericks ที่จริงแล้วในระบบของฉัน/etc/php.iniไฟล์หายไปอย่างสมบูรณ์และมันก็ไม่ได้จนกว่าฉันจะทำงานphpinfo()บนเว็บเซิร์ฟเวอร์ที่ฉันสังเกตเห็นว่าไม่มีไฟล์การกำหนดค่า การคัดลอกไฟล์จาก/etc/php.ini.defaultและเพิ่มพา ธ ที่ผ่านการรับรองไปยังmcrypt.soไลบรารีไปยังไฟล์ปรับแต่งแก้ไขปัญหาได้:

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

จากนั้นในการ/etc/php.iniเพิ่มบรรทัดต่อไปนี้ (ใช้เส้นทางที่ถูกต้องไปยังmcrypt.soไฟล์ของคุณ):

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

จากนั้นรีสตาร์ท Apache2:

apachectl restart

พระเจ้าคุณเป็นฮีโร่ของฉัน !! ขอบคุณสำหรับความคิดในการใช้เส้นทางแบบเต็มของ mcrypt!
Hese

25

ดังที่ระบุไว้php --iniคำสั่งจะบอกคุณว่า PHP คาดหวังว่าจะหาไฟล์ php.ini ได้ที่ไหน

สำหรับการติดตั้งแบบมาตรฐานมีแนวโน้มที่จะมองหา /etc/php.ini

หากคุณใช้macportsแล้ว PHP อาจมองหา/opt/local/etc/php5/php.ini


7
etc เป็นลิงค์ไปยังส่วนตัว / etc: / etc -> private / etc
pm_labs

21

เรียกใช้phpinfo()จากไฟล์ใด ๆ และมันจะบอกคุณว่ามันอยู่ที่ไหน นี่คือภาพหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่


3
นี่เป็นวิธีที่ดีที่สุดในการไปเพราะคุณอาจพบสำเนาของ php.ini ในโฟลเดอร์ "ปริยาย" อื่น ๆ แต่วิธีนี้จะบอกให้คุณทราบว่ามันใช้งานจริงอย่างไรเพื่อที่คุณจะได้ไม่ต้องเกาหัว ทำการเปลี่ยนแปลง แต่ php ดูเหมือนจะไม่รู้การเปลี่ยนแปลงดังกล่าวทั้งหมด
Kit Ramos

นอกจากนี้คุณยังสามารถเปิด REPL PHP ในเปลือกของคุณโดยการทำงานที่คุณเรียกใช้แล้วphp -a phpinfo();
metakermit

14

ฉันมีตัวอย่างของ PHP ที่ทำงานอยู่มากกว่าหนึ่งครั้งดังนั้นคำตอบอื่น ๆ ก็ใช้ไม่ได้สำหรับฉัน สิ่งนี้ทำ:

สร้างไฟล์ PHP และเปิด URL ในเครื่องในเบราว์เซอร์ของคุณ:

<?php phpinfo(); ?>

เส้นทาง PHP.INI จะแสดงรายการอยู่ใกล้กับด้านบน


3

นี่เป็นกระทู้เก่า แต่ฉันต้องการเพิ่มการชี้แจงเพิ่มเติม

หากคุณมีระบบที่มีการติดตั้ง PHP หลายรายการ (เช่นเดียวกับฉัน) ผลลัพธ์ที่คุณได้รับจากการใช้เครื่องมือบรรทัดคำสั่งอาจแตกต่างจากที่เว็บเซิร์ฟเวอร์ใช้จริง หากคุณสนใจที่จะใช้ PHP เว็บเซิร์ฟเวอร์ให้ใช้ข้อมูลที่รวบรวมจากเว็บเพจที่ใช้ฟังก์ชัน 'phpinfo ()' เท่านั้น

ตัวอย่างเช่นในระบบของฉันเวอร์ชันที่รายงานโดยทั้งสองวิธีมีดังนี้:

บรรทัดคำสั่ง: 5.3.26

เว็บ: 5.3.13

สำหรับเส้นทางของไฟล์ php.ini ก็มีความแตกต่างเช่นกัน:

บรรทัดคำสั่ง: /private/etc/php.ini

เว็บ: /long/path/to/the/file/php.ini

คุณสามารถค้นหาไฟล์ php.ini ที่เป็นไปได้ทั้งหมดโดยใช้สิ่งนี้:

find / -name php.ini 2> & 1 | grep -v "ถูกปฏิเสธ" | grep -v "directory"

(องค์ประกอบ '2> & 1' และ 'grep' เพียง จำกัด ผลลัพธ์ของคำสั่งให้เป็นข้อมูลที่มีประโยชน์เช่นกำจัดข้อความแสดงข้อผิดพลาด)

ในระบบของฉันฉันพบ 3 ไฟล์ INI เพราะฉันสนใจสิ่งที่เว็บเซิร์ฟเวอร์ใช้ฉันรู้ว่าฉันควรใช้เส้นทางที่ส่งคืนจากผลลัพธ์ของหน้าเว็บ ฉันทำการเปลี่ยนแปลงของฉันกับไฟล์ php.ini ที่อยู่ในรายการรีสตาร์ท apache และรันเว็บเพจอีกครั้ง มีการแสดงการแก้ไขใหม่ที่นั่น

ในการรีสตาร์ท apache:

sudo apachectl -k เริ่มต้นใหม่

- เจ


1

ฉันเริ่มต้นด้วย 'Hello World!' เมื่อฉันได้รับสิ่งนั้นที่แสดงในเบราว์เซอร์ของฉันฉันจะphpinfo();เข้าไปข้างในและคุณสามารถเห็นทุกสิ่ง บอกให้คุณทราบว่ามีการโหลดการกำหนดค่าทุกอย่าง

<?php
   echo 'Hello World!';

   phpinfo();

0

คุณเรียกใช้ php_info () และดู line bellow :)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.