Điều này dành cho Mac OS X với cài đặt gốc Apache HTTP và cài đặt tùy chỉnh của MySQL .
Câu trả lời dựa trên phản hồi tuyệt vời của @ alec-gorge, nhưng vì tôi đã phải google một số thay đổi cụ thể để cấu hình nó trong cấu hình của mình, chủ yếu là dành riêng cho Mac OS X, tôi nghĩ rằng tôi sẽ thêm nó vào đây để hoàn thiện.
Bật hỗ trợ PHP5 cho Apache HTTP
Đảm bảo rằng hỗ trợ PHP5 được bật trong /etc/apache2/httpd.conf.
Chỉnh sửa tệp bằng sudo vi /etc/apache2/httpd.conf(nhập mật khẩu khi được hỏi) và bỏ ghi chú (xóa ;từ đầu) dòng để tải mô-đun php5_module .
LoadModule php5_module libexec/apache2/libphp5.so
Khởi động Apache HTTP bằng sudo apachectl start(hoặc restartnếu nó đã được khởi động và cần được khởi động lại để đọc lại tệp cấu hình).
Đảm bảo rằng /var/log/apache2/error_logcó một dòng cho bạn biết php5_module đã được bật - bạn sẽ thấy PHP/5.3.15(hoặc tương tự).
[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations
Tra cứu tên tệp Socket
Khi MySQL được thiết lập và chạy (với ./bin/mysqld_safe) sẽ có các dòng gỡ lỗi được in ra bảng điều khiển cho bạn biết bạn có thể tìm thấy các tệp nhật ký ở đâu. Lưu ý tên máy chủ trong tên tệp - localhosttrong trường hợp của tôi - có thể khác đối với cấu hình của bạn.
Tệp sau đó Logging tolà quan trọng. Đó là nơi MySQL ghi lại công việc của nó.
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
Mở localhost.errtệp (một lần nữa, tệp của bạn có thể được đặt tên khác), tức là tail -1 /Users/jacek/apps/mysql/data/localhost.errđể tìm ra tên tệp socket - nó phải là dòng cuối cùng.
$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
Lưu ý socket:phần - đó là tệp socket bạn nên sử dụng php.ini.
Có một cách khác (một số người nói là một cách dễ dàng hơn) để xác định vị trí của tên tệp của socket bằng cách đăng nhập vào MySQL và chạy:
show variables like '%socket%';
Định cấu hình PHP5 với hỗ trợ MySQL - /etc/php.ini
Nói về php.ini ...
Trong /etcthư mục có tệp /etc/php.ini.default . Sao chép nó vào /etc/php.ini .
sudo cp /etc/php.ini.default /etc/php.ini
Mở /etc/php.inivà tìm kiếm mysql.default_socket .
sudo vi /etc/php.ini
Giá trị mặc định mysql.default_socketlà /var/mysql/mysql.sock. Bạn nên thay đổi nó thành giá trị bạn đã lưu ý trước đó - đó là /tmp/mysql.socktrong trường hợp của tôi.
Thay thế /etc/php.initệp để phản ánh tên của tệp socket:
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
Xác minh cuối cùng
Khởi động lại Apache HTTP.
sudo apachectl restart
Kiểm tra nhật ký nếu không có lỗi liên quan đến PHP5. Không có lỗi có nghĩa là bạn đã hoàn tất và PHP5 với MySQL sẽ hoạt động tốt. Chúc mừng!
/etc/init.d/mysql startnếu bạn đang sử dụng bản phân phối cơ sở debian. nếu không thành công, hãy kiểm tra/etc/my.cnftệp để biết đường dẫn tệp socket mysql chính xác.