นี้สำหรับMac OS Xที่มีการติดตั้งพื้นเมืองของ Apache HTTPและการติดตั้งที่กำหนดเองของ MySQL
คำตอบนั้นขึ้นอยู่กับการตอบสนองที่ยอดเยี่ยมของ @ alec-gorge แต่เนื่องจากฉันต้อง google การเปลี่ยนแปลงบางอย่างเพื่อกำหนดค่าในการกำหนดค่าของฉันส่วนใหญ่เป็น MacOS X เฉพาะฉันคิดว่าฉันจะเพิ่มที่นี่เพื่อความสมบูรณ์
เปิดใช้งานการสนับสนุน PHP5 สำหรับ Apache HTTP
ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการรองรับ PHP5 ใน/etc/apache2/httpd.conf
.
แก้ไขไฟล์ด้วยsudo vi /etc/apache2/httpd.conf
(ป้อนรหัสผ่านเมื่อถูกถาม) และ uncomment (ลบออก;
จากจุดเริ่มต้นของ) บรรทัดเพื่อโหลดโมดูลphp5_module
LoadModule php5_module libexec/apache2/libphp5.so
เริ่มต้น Apache HTTP ด้วยsudo apachectl start
(หรือrestart
หากเริ่มต้นแล้วและต้องเริ่มต้นใหม่เพื่ออ่านไฟล์การกำหนดค่าอีกครั้ง)
ตรวจสอบให้แน่ใจว่า/var/log/apache2/error_log
มีบรรทัดที่แจ้งให้คุณทราบว่า php5_module เปิดใช้งานอยู่คุณจะเห็นPHP/5.3.15
(หรือคล้ายกัน)
[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations
ค้นหาชื่อไฟล์ Socket
เมื่อ MySQL เปิดใช้งาน (ด้วย./bin/mysqld_safe
) ควรมีบรรทัดการดีบักที่พิมพ์ออกมาในคอนโซลเพื่อบอกคุณว่าคุณสามารถค้นหาไฟล์บันทึกได้จากที่ใด จดชื่อโฮสต์ในชื่อไฟล์ - localhost
ในกรณีของฉัน - ซึ่งอาจแตกต่างไปจากการกำหนดค่าของคุณ
ไฟล์ที่ตามมาLogging to
มีความสำคัญ นั่นคือที่ที่ MySQL บันทึกการทำงาน
130309 12:17:59 mysqld_safe Logging to '/Users/jacek/apps/mysql/data/localhost.err'.
130309 12:17:59 mysqld_safe Starting mysqld daemon with databases from /Users/jacek/apps/mysql/data
เปิดlocalhost.err
ไฟล์ (อีกครั้งคุณอาจมีชื่อแตกต่างกัน) เช่นtail -1 /Users/jacek/apps/mysql/data/localhost.err
ค้นหาชื่อไฟล์ซ็อกเก็ต - ควรเป็นบรรทัดสุดท้าย
$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
หมายเหตุsocket:
ส่วนหนึ่ง - php.ini
ที่ไฟล์ซ็อกเก็ตที่คุณควรใช้ใน
มีอีกวิธีหนึ่ง (บางคนบอกว่าเป็นวิธีที่ง่ายกว่า) ในการกำหนดตำแหน่งของชื่อไฟล์ของซ็อกเก็ตโดยเข้าสู่ระบบ MySQL และเรียกใช้:
show variables like '%socket%';
การกำหนดค่า PHP5 ด้วยการสนับสนุน MySQL - /etc/php.ini
พูดถึง php.ini ...
ใน/etc
ไดเร็กทอรีมีไฟล์/etc/php.ini.default คัดลอกไป/etc/php.ini
sudo cp /etc/php.ini.default /etc/php.ini
เปิด/etc/php.ini
และมองหาmysql.default_socket
sudo vi /etc/php.ini
ค่าเริ่มต้นของการมีmysql.default_socket
/var/mysql/mysql.sock
คุณควรเปลี่ยนเป็นค่าที่คุณได้ระบุไว้ก่อนหน้านี้ - /tmp/mysql.sock
ในกรณีของฉัน
แทนที่/etc/php.ini
ไฟล์เพื่อแสดงชื่อไฟล์ซ็อกเก็ต:
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
การตรวจสอบขั้นสุดท้าย
รีสตาร์ท Apache HTTP
sudo apachectl restart
ตรวจสอบบันทึกหากไม่มีข้อผิดพลาดเกี่ยวกับ PHP5 ไม่มีข้อผิดพลาดหมายความว่าคุณทำเสร็จแล้วและ PHP5 กับ MySQL ควรทำงานได้ดี ยินดีด้วย!
/etc/init.d/mysql start
ว่าคุณอยู่ใน distro ฐานเดเบียน หากล้มเหลวให้ตรวจสอบ/etc/my.cnf
ไฟล์เพื่อหาเส้นทางไฟล์ซ็อกเก็ต mysql ที่ถูกต้อง