Это для 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.