Esto es para Mac OS X con la instalación nativa de Apache HTTP e instalación personalizada de MySQL .
La respuesta se basa en la excelente respuesta de @ alec-gorge, pero como tuve que buscar en Google algunos cambios específicos para configurarlo en mi configuración, en su mayoría específicos de Mac OS X, pensé en agregarlo aquí para completarlo.
Habilite el soporte de PHP5 para Apache HTTP
Asegúrese de que la compatibilidad con PHP5 esté habilitada en /etc/apache2/httpd.conf
.
Edite el archivo con sudo vi /etc/apache2/httpd.conf
(ingrese la contraseña cuando se le solicite) y descomente (elimine ;
del principio de) la línea para cargar el módulo php5_module .
LoadModule php5_module libexec/apache2/libphp5.so
Inicie Apache HTTP con sudo apachectl start
(o restart
si ya se ha iniciado y debe reiniciarse para volver a leer el archivo de configuración).
Asegúrese de que /var/log/apache2/error_log
contenga una línea que le indique que php5_module está habilitado; debería ver PHP/5.3.15
(o algo similar).
[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations
Buscando el nombre del archivo de Socket
Cuando MySQL esté en funcionamiento (con ./bin/mysqld_safe
), debería haber líneas de depuración impresas en la consola que le indiquen dónde puede encontrar los archivos de registro. Tenga en cuenta el nombre de host en el nombre del archivo, localhost
en mi caso, que puede ser diferente para su configuración.
El archivo que viene después Logging to
es importante. Ahí es donde MySQL registra su trabajo.
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
Abra el localhost.err
archivo (de nuevo, el suyo podría tener un nombre diferente), es decir, tail -1 /Users/jacek/apps/mysql/data/localhost.err
para averiguar el nombre del archivo de socket, debería ser la última línea.
$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
Tenga en cuenta la socket:
parte: ese es el archivo de socket que debe usar php.ini
.
Hay otra forma (algunos dicen que es más fácil) determinar la ubicación del nombre de archivo del socket iniciando sesión en MySQL y ejecutando:
show variables like '%socket%';
Configuración de PHP5 con soporte MySQL - /etc/php.ini
Hablando de php.ini ...
En el /etc
directorio hay un archivo /etc/php.ini.default . Cópialo en /etc/php.ini .
sudo cp /etc/php.ini.default /etc/php.ini
Abra /etc/php.ini
y busque mysql.default_socket .
sudo vi /etc/php.ini
El valor predeterminado mysql.default_socket
es /var/mysql/mysql.sock
. Debería cambiarlo por el valor que anotó anteriormente, fue /tmp/mysql.sock
en mi caso.
Reemplace el /etc/php.ini
archivo para reflejar el nombre del archivo de socket:
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
Verificación final
Reinicie Apache HTTP.
sudo apachectl restart
Verifique los registros si no hay ningún error relacionado con PHP5. Ningún error significa que ha terminado y PHP5 con MySQL debería funcionar bien. ¡Felicidades!
/etc/init.d/mysql start
si está en una distribución base de Debian. si falla, verifique el/etc/my.cnf
archivo para la ruta correcta del archivo de socket mysql.