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 restart
jeśli jest już uruchomiony i wymaga ponownego uruchomienia, aby ponownie odczytać plik konfiguracyjny).
Upewnij się, że /var/log/apache2/error_log
zawiera 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 - localhost
w moim przypadku - która może być inna dla twojej konfiguracji.
Plik, który nastąpi później, Logging to
jest 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.err
plik (ponownie, twój może mieć inną nazwę), tj. tail -1 /Users/jacek/apps/mysql/data/localhost.err
Aby 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 /etc
katalogu 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.ini
i poszukaj mysql.default_socket .
sudo vi /etc/php.ini
Wartość domyślna mysql.default_socket
to /var/mysql/mysql.sock
. Powinieneś to zmienić na wartość, którą zanotowałeś wcześniej - tak było /tmp/mysql.sock
w moim przypadku.
Zastąp /etc/php.ini
plik, 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 start
jeśli korzystasz z podstawowej dystrybucji Debiana. jeśli się nie powiedzie, sprawdź, czy w/etc/my.cnf
pliku jest poprawna ścieżka do gniazda mysql.