Dotyczy to systemu Mac OS X z natywną instalacją Apache HTTP i niestandardową instalacją MySQL .
Odpowiedź opiera się na doskonałej odpowiedzi @ alec-gorge, ale ponieważ musiałem wygooglować pewne konkretne zmiany, aby skonfigurować je w mojej konfiguracji, głównie specyficznej dla Mac OS X, pomyślałem, że dodam go tutaj ze względu na kompletność.
Włącz obsługę PHP5 dla Apache HTTP
Upewnij się, że obsługa PHP5 jest włączona w /etc/apache2/httpd.conf.
Edytuj plik za pomocą sudo vi /etc/apache2/httpd.conf(wprowadź hasło, gdy zostaniesz o to poproszony) i usuń komentarz (usuń ;od początku) wiersz, aby załadować moduł php5_module .
LoadModule php5_module libexec/apache2/libphp5.so
Uruchom Apache HTTP z sudo apachectl start(lub restartjeśli jest już uruchomiony i wymaga ponownego uruchomienia, aby ponownie odczytać plik konfiguracyjny).
Upewnij się, że /var/log/apache2/error_logzawiera wiersz informujący, że moduł php5_module jest włączony - powinieneś zobaczyć PHP/5.3.15(lub podobnie).
[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations
Wyszukiwanie nazwy pliku gniazda
Gdy MySQL jest uruchomiony (z ./bin/mysqld_safe), na konsoli powinny być wydrukowane wiersze debugowania, które informują, gdzie można znaleźć pliki dziennika. Zanotuj nazwę hosta w nazwie pliku - localhostw moim przypadku - która może być inna dla twojej konfiguracji.
Plik, który nastąpi później, Logging tojest ważny. Tam MySQL rejestruje swoją pracę.
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
Otwórz localhost.errplik (ponownie, twój może mieć inną nazwę), tj. tail -1 /Users/jacek/apps/mysql/data/localhost.errAby znaleźć nazwę pliku gniazda - powinna to być ostatnia linia.
$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
Zwróć uwagę na socket:część - jest to plik gniazda, którego powinieneś użyć w php.ini.
Istnieje inny sposób (niektórzy twierdzą, że jest to łatwiejszy sposób), aby określić lokalizację nazwy pliku gniazda, logując się do MySQL i uruchamiając:
show variables like '%socket%';
Konfiguracja PHP5 z obsługą MySQL - /etc/php.ini
A propos php.ini ...
W /etckatalogu znajduje się plik /etc/php.ini.default . Skopiuj go do /etc/php.ini .
sudo cp /etc/php.ini.default /etc/php.ini
Otwórz /etc/php.inii poszukaj mysql.default_socket .
sudo vi /etc/php.ini
Wartość domyślna mysql.default_socketto /var/mysql/mysql.sock. Powinieneś to zmienić na wartość, którą zanotowałeś wcześniej - tak było /tmp/mysql.sockw moim przypadku.
Zastąp /etc/php.iniplik, aby odzwierciedlić nazwę pliku gniazda:
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
Ostateczna weryfikacja
Zrestartuj Apache HTTP.
sudo apachectl restart
Sprawdź dzienniki, jeśli nie ma błędów związanych z PHP5. Brak błędów oznacza, że wszystko jest gotowe, a PHP5 z MySQL powinno działać dobrze. Gratulacje!
/etc/init.d/mysql startjeśli korzystasz z podstawowej dystrybucji Debiana. jeśli się nie powiedzie, sprawdź, czy w/etc/my.cnfpliku jest poprawna ścieżka do gniazda mysql.