Это для Mac OS X с собственной установкой Apache HTTP и выборочной установкой MySQL .
Ответ основан на отличном ответе @ alec-gorge, но, поскольку мне пришлось внести в Google некоторые конкретные изменения, чтобы настроить его в моей конфигурации, в основном для Mac OS X, я подумал, что добавлю его сюда для полноты картины.
Включить поддержку PHP5 для Apache HTTP
Убедитесь, что поддержка PHP5 включена в /etc/apache2/httpd.conf.
Отредактируйте файл sudo vi /etc/apache2/httpd.conf(введите пароль, когда его спросят) и раскомментируйте (удалите ;с начала) строку, чтобы загрузить модуль 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
Поиск имени файла сокета
Когда 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если вы используете базовый дистрибутив debian. в случае неудачи проверьте/etc/my.cnfфайл на предмет правильного пути к файлу сокета mysql.