Se siete interessati ad utilizzare PHP, Apache e MySQL, vi potrebbe interessare un tutorial gratuito scaricabile da questo sito; viene descritta più diffusamente tutta la procedura di attivazione di Apache e PHP, l'installazione di MySQL e la descrizione di alcune interfacce per il database, che ne facilitano l'uso. E poi è gratis!
Aggiornamento febbraio 2009------------------------
Con l'occasione del cambio da PowerBook a MacBookPro, ho ripreso l'installazione di MySQL e.... tombola! Tutto funziona! MySQL effettua una corretta installazione per Leopard!!!
Non è quindi più necessario alcun intrigo per far funzionare PHP e MySQL assieme! Basta attivare il PHP come descritto nel post, installare normalmente MySQL, assieme al suo pannello di controllo e all'autostart e siamo a posto!
Ho fatto la prova con la versione 64 bit di MySQL per Leopard dal sito MySQL. Il post originale qui sotto quindi resta solamente per motivi storici.
Buona programmazione!
--------------
Seconda puntata per ottenere un web server completo sul nostro Mac. Dopo aver attivato Apache col modulo PHP, passiamo al database.
MySQL è probabilmente il database più diffuso ed è anche OpenSource, gratuito, disponibile per tutte le piattaforme; molti siti commerciali sono costruiti sull'accoppiata Apache-PHP-MySQL. Ci occuperemo quindi di come installarlo su Mac OS X.5 (Leopard). Non ci sono molte differenze con l'installazione su Tiger, ma sono sufficienti per perderci la testa per qualche giorno! Armiamoci di pazienza e... del Terminale: dobbiamo per forza entrare nel misterioso mondo di Unix (non troppo però!).
Attenzione: l'uso sconsiderato del Terminale può danneggiare il sistema! Unix fa il possibile per proteggersi chiedendo la password di amministratore per le operazioni non consentite, ma se noi la forniamo... lui esegue! Non venite poi a dire di aver dovuto re-installare tutto! Siete avvertiti!
Cominciamo con lo scaricare la giusta versione di MySQL. Il sito da consultare è mysql.com; fino a poco tempo fa il sito di riferimento era entropy.ch, dove Marc Lyianage metteva a disposizione il pacchetto d'installazione compilato dai sorgenti. Ora invece, questa operazione viene fatta dal team MySQL. Marc continua a consigliare alcune istruzioni, che però al momento non sono aggiornate per Leopard, quindi... seguitemi!
Il sito MySQL non è proprio il più semplice e ci si trova la versione Enterprise, commerciale! Per trovare quella gratuita, puntiamo al Community Server, nella lista dei download clicchiamo su Mac OS X (package format) e scegliamo la versione adatta a noi. Se abbiamo un MacIntel scarichiamo la corrispondente versione per Leopard; ma se avete un PPC, sembrerebbe che non ci sia la versione per Leopard! Scegliete pure quella per Tiger, funziona lo stesso!
Dopo il download avremo un file dmg, attiviamolo col doppio click: all'interno troviamo il pacchetto d'installazione mysql-numero di versione (l'attuale è la 5.0.5); doppio click e seguiamo le istruzioni, fino a quando veniamo avvertiti che tutto è andato a buon fine. Se vogliamo che il server MySQL parta automaticamente ad ogni riavvio, installiamo anche MySQLStartupItem. Lasciamo invece perdere MySQL.prefpane: è un pannello che andrebbe nelle Preferenze di Sistema, ma sembra non funzionare a dovere (di sicuro con i PPC, da verificare con gli Intel). Il problema è stato riportato al team MySQL ma per ora non sono state trovate soluzioni.
Siamo a posto? Quasi! Manca qualche rifinitura.
Prima il sock: è un file che fa la funzione di collegamento fra il Apache/PHP e MySQL. Il posto solito dove viene installato è la cartella (nascosta)
/tmp
Se infatti dal Finder premiamo command-shift-G (menu Vai alla cartella...) e nel campo di testo scriviamo /tmp, si aprirà una finestra con selezionata questa cartella, al cui interno troviamo appunto il file mysql.sock. Il problema è che PHP di Leopard va a cercarlo in
/var/mysql
Magari, al momento in cui state leggendo, qualcuno ha corretto questa discrepanza; per sicurezza premete di nuovo command-shift-G, inserendo /var: se trovate una cartella mysql con all'interno il file mysql.sock, allora potete saltare questa parte. Se invece la cartella è vuota, restate qui e aprite TextWrangler (lo avete ancora, vero? Bene!) e in una finestra vuota scrivete le seguenti istruzioni:
[client]
socket = /var/mysql/mysql.sock
[mysqld]
socket = /var/mysql/mysql.sock
Questo sarà il file di configurazione che deve essere salvato in una cartella nascosta; per fare ciò, salviamolo prima sulla scrivania con il nome my.cnf. Passiamo al Finder, premiamo di nuovo command-shift-G e cerchiamo la cartella /etc; quando viene visualizzata (ci sono un bel po' di cose, ma facciamo finta di nulla :-), trasciniamoci dentro il file appena creato, badando a non metterlo in una delle cartelle che vi si trovano! Il nostro file di configurazione che dice dove trovare il sock è a posto.
Ora dobbiamo creare la cartella a cui ci riferiamo e... udite udite... ci serve il Terminale! Lo troviamo in Applicazioni -> Utility. Se è la prima volta che lo avviamo ci darà alcuni avvertimenti, ma noi non ci spaventiamo e diamo i seguenti comandi (premere Return alla fine di ogni riga):
sudo mkdir /var/mysql
sudo chown _mysql /var/mysql
Ci viene chiesta di nuovo la password amministratore, che daremo solo dopo aver ben controllato di aver scritto esattamente! Attenzione agli spazi e al carattere '_'; Potete anche copiare ogni riga (una per volta) dal browser.
In parole povere, abbiamo creato la cartella mysql nel posto dove verrà cercata e l'abbiamo assegnata all'utente di mysql, già definito in OS X. La cartella resterà vuota: serve soltanto come anello per far dialogare PHP e MySQL.
Avremmo anche potuto andare a cambiare un file di PHP (php.ini) per farlo nuovamente puntare alla cartella /tmp; ma ho visto che in rete preferiscono questa strada, sperando che MySQL aggiorni l'installazione per Leopard, senza dover cambiare i settaggi di default di Mac OS X.
Ora siamo pronti! Per far partire il server (non possiamo usare il pannello di cui sopra), andiamo nel Terminale e scriviamo
sudo /usr/local/mysql/support-files/mysql.server start
mentre per fermarlo dovremo scrivere
sudo /usr/local/mysql/support-files/mysql.server stop
Al momento non c'è altro modo (c'è anche da dare la password amministratore); però una volta avviato, ripartirà da solo al reboot, per cui non è un gran problema. Scriviamo da qualche parte questi comandi (sto pensando di farmi una piccola applicazione - chi è interessato me lo faccia sapere!)
Per verificare che il server MySQL sia in effetti attivo, avviamo Monitoraggio Attività (cartella Applicazioni -> Utility), dal menu a discesa visualizziamo Tutti i processi e nel campo di ricerca a fianco scriviamo almeno 'my', per selezionare un po': se tutto è a posto, compare un processo chiamato mysqld dell'utente _mysql: siamo a posto!
Ora dovremmo lavorare un po' sugli utenti di MySQL, ma ne parleremo un'altra volta! Nel frattempo, potete dare un'occhiata al sito citato di Marc: non è aggiornato, ma è pieno di informazioni; una parte delle informazioni riportate qui le ho prese da questo sito; non semplice da leggere, ma se avete tempo...
15 commenti:
Sei un grande!!
Ho seguito le istruzioni ma purtroppo il server ignora il file my.conf, continua quindi a non compilare le API di MySql.
Hai controllato che my.conf sia nella cartella /etc? È facile infilarlo in una delle cartelle lì presenti (sono quasi tutte cartelle!) Se non lo trova non riesce a stabilire il collegamento col database. Inoltre, hai controllato il contenuto del my.conf? Deve essere esattamente come riportato, compresi i vari caratteri '/'.
Una sola parola: GRAZIE!!
innanzi tutto grazie per i consigli per l'attivazione di php (un grazie anche a MassimoM che mi ha evitato un esaurimento per la chicca su Leopard upgradato da tiger).
ora sono alle prese con l'installazione di mysql, la versione che ho scaricato è la mysql-5.0.67-osx10.5-x86_64.tar.gz (c'è pure la mysql-5.0.67-osx10.5-x86.tar.gz)
seguendo le tue istruzioni ("all'interno troviamo il pacchetto d'installazione mysql-numero di versione (l'attuale è la 5.0.5); doppio click e seguiamo le istruzioni, fino a quando veniamo avvertiti che tutto è andato a buon fine.....") mi sono subito arenato in quanto dentro non c'è nessun pacchetto d'installazione, ma una serie di cartelle e files... che faccio?
@jacopo: hai scaricato la versione "tar"; per semplicità devi invece scaricare da "MacOS X (package format)". Ti dovresti trovare un un installer.
Ciao!
ok scusa ti ho disturbato per niente... :-(
comunque ho fatto tutto...
grazie ancora
Ciao a tutti, qualcuno sa come stoppare il processo mysqld in un mac?
Più che altro ho trovato qualcosa in internet, tipo questo comando: "# /etc/init.d/mysql stop" ma non so dove inserirlo, in terminale, in x11? Mi succhia troppissima ram...
io l'ho anche fatto ma mi da errore, non so come andare a capo, insomma, non sono per niente ferrato...
Mi sapete aiutare?
Grazie
Federico
@Federico: se sei su Panther o Tiger, puoi usare direttamente il controllo MySQL nelle preferenze di sistema. Se invece sei su Leopard, il pannello non funziona. Allora prova ad usare InerziaMySQL (fatto da me:-); per scaricarlo, parti da qui.
Grazie per le informazioni, sono riuscito ad istallare tutto correttamente... tranne Sequel pro che mi da il seguente messaggio (cerca il db in .../tmp).
Ecco il messaggio di errore:
MySQL said: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Potresti dirmi come faccio a farlo connettere?
penso sia dovuto alle impostazioni che ho modificato come suggerito... quindi lui non lo cerca in:
/var/mysql/mysql.sock
Ho un macbook nuovo 2.0 Ghz con leopard 10.5.5
Cosa pensi sia successo?
Grazie per le info e l'AIUTO!!!
@Juri: il messaggio di errore è il solito: SequelPro cerca il socket nella vecchia posizione (/tmp), mentre si trova in quella indicata.
Per superare il problema: quando fai partire Sequel, viene fuori un dialogo che ti chiede come collegarsi al db; riempilo così:
host: localhost
user: (nome utente db)
password: la password impostata per l'utente
database: lascia vuoto
Socket: /var/mysql/mysql.sock
Clicca su Connect e sei a posto.
Ciao!
MassimoM
Ciao Massimo grazie per la risposta, sono riuscito a caricare il database.
Ora ho solo un problema... non vedo il sito!
Prima che avessi caricato il DB, aprendo il sito caricato nella directory Siti/nome sito/index.php mediante l'indirizzo:
http://localhost/~Juri/nome sito(cartella)/index.php
Mi appariva la scritta del sito che mi avvertiva, data l'assenza del DB, dell'errore col logo del sito.
Adesso:
http://localhost/~Juri/nome_sito(cartella)/index.php
Mi da l'errore 404:
Not Found
The requested URL /~Juri/nome_sito/index.php was not found on this server.
Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.7l PHP/5.2.6 Server at localhost Port 80
Pensi di riuscire a spiegarmi cosa succede?
Grazie Ancora
@Juri: l'unica cosa che posso consigliarti è di ricontrollare che la stringa dell'URL sia corretta (p.es. nel secondo indirizzo c'è un carattere '_' in più). Il messaggio è tipico di quando non esiste proprio il file.
Controlla ogni carattere, anche il maiuscolo/minuscolo.
Ciao Massimo,
L'indirizzo che scrivo è corretto, penso che forse nelle versioni che ho scaricato l'errore che hai segnalato e risolto, sono state risolte nel nuovo leopard o mysql.
Probabilmente impostando le variazioni l'ho starato.
io il sito l'ho messo nella cartella siti.
Ti chiedo una cortesia mi spieghi come posso tornare indietro e ripristinare i settaggi originali.
Così poi ti farò sapere se i problemi sono stati risolti.
Grazie
Lascia stare come non detto... ho risolto... il problema era nel DB che cambiava il localhost e mi mandava al sito online.
Funziona tutto benissimo Grazie Massimo... se sei a Milano o provincia e ti dovesse servire un veterinario contattami ;-)
Posta un commento