Questo è per Mac OS X con l' installazione nativa di Apache HTTP e l'installazione personalizzata di MySQL .
La risposta si basa sull'eccellente risposta di @ alec-gorge, ma dal momento che ho dovuto cercare su Google alcune modifiche specifiche per averlo configurato nella mia configurazione, per lo più specifica per Mac OS X, ho pensato di aggiungerlo qui per completezza.
Abilita il supporto PHP5 per Apache HTTP
Assicurati che il supporto PHP5 sia abilitato in /etc/apache2/httpd.conf
.
Modifica il file con sudo vi /etc/apache2/httpd.conf
(inserisci la password quando richiesto) e decommenta (rimuovi ;
dall'inizio) la riga per caricare il modulo php5_module .
LoadModule php5_module libexec/apache2/libphp5.so
Avvia Apache HTTP con sudo apachectl start
(o restart
se è già avviato e deve essere riavviato per rileggere il file di configurazione).
Assicurati che /var/log/apache2/error_log
contenga una riga che ti dica che php5_module è abilitato - dovresti vedere PHP/5.3.15
(o simile).
[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations
Ricerca del nome del file Socket
Quando MySQL è attivo e in esecuzione (con ./bin/mysqld_safe
) dovrebbero essere stampate delle righe di debug sulla console che indicano dove trovare i file di registro. Nota il nome host nel nome del file - localhost
nel mio caso - che potrebbe essere diverso per la tua configurazione.
Il file che viene dopo Logging to
è importante. È lì che MySQL registra il suo lavoro.
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
Apri il localhost.err
file (di nuovo, il tuo potrebbe avere un nome diverso), cioè tail -1 /Users/jacek/apps/mysql/data/localhost.err
per scoprire il nome del file socket - dovrebbe essere l'ultima riga.
$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
Nota la socket:
parte: questo è il file socket che dovresti usare php.ini
.
C'è un altro modo (alcuni dicono un modo più semplice) per determinare la posizione del nome del file del socket accedendo a MySQL ed eseguendo:
show variables like '%socket%';
Configurazione di PHP5 con supporto MySQL - /etc/php.ini
A proposito di php.ini ...
Nella /etc
directory c'è il file /etc/php.ini.default . Copialo in /etc/php.ini .
sudo cp /etc/php.ini.default /etc/php.ini
Apri /etc/php.ini
e cerca mysql.default_socket .
sudo vi /etc/php.ini
L'impostazione predefinita mysql.default_socket
è /var/mysql/mysql.sock
. Dovresti cambiarlo con il valore che hai annotato in precedenza - era /tmp/mysql.sock
nel mio caso.
Sostituisci il /etc/php.ini
file per riflettere il nome del file socket:
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
Verifica finale
Riavvia Apache HTTP.
sudo apachectl restart
Controlla i log se non ci sono errori relativi a PHP5. Nessun errore significa che hai finito e PHP5 con MySQL dovrebbe funzionare bene. Congratulazioni!
/etc/init.d/mysql start
se sei su una distribuzione base Debian. se fallisce, controlla il/etc/my.cnf
file per il percorso corretto del file socket mysql.