Accendere Apache
- Aprire il Terminale cliccando sulla lente di ingrandimento nell’angolo in alto a destra dello schermo e cercando Terminal
- Digitare
sudo apachectl start
e premere invio - Aprire Safari (o il vostro browser preferito), digita localhost nella barra degli indirizzi e premi invio
Non ci credi che sia così facile? Lo è! Ora dovresti vedere It works! nel browser.
Accendi PHP
Mac ha già PHP, quindi non hai bisogno di installarlo da PHP.net. Prima di High Sierra (versione 10.13), Mac veniva fornito con PHP 5 installato. Questo causava il fastidio degli utenti perché non veniva fornito con PHP 7, quindi bisognava fare un lavoro extra per aggiornare da PHP 5 a PHP 7. Fortunatamente High Sierra ha già PHP 7.1!!!
- Apri il Terminale e digita
sudo nano /etc/apache2/httpd.conf
e premi invio - Premi Ctrl+W che farà apparire una ricerca
- Cerca php e premi invio. Vedrai quanto segue:
- Cancella il # da
#LoadModule php7_module libexec/apache2/libphp7.so
- Premi Ctrl+O seguito da Invio per salvare il cambiamento che hai appena fatto
- Premi Ctrl+X per uscire da nano
- Digita
sudo apachectl restart
e premi invio
Hai appena attivato PHP 7. Ottimo lavoro finora!
Crea la cartella Sites
- Clicca su Finder nell’angolo in basso a sinistra del tuo schermo e clicca su Go > Home nella barra di navigazione superiore. Questo ti porterà alla tua home directory, che sarà anche il nome del tuo computer; in questo caso è david.
- Crea una nuova cartella e chiamala Sites (L’icona di Safari mostrata sotto viene aggiunta automaticamente alla cartella Sites come mostrato qui sotto)
- Apri il tuo editor di testo preferito e crea un file chiamato index.php con il seguente codice:
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- Salva index.php nella cartella Sites che hai creato
- Torna al Terminale e inserisci
sudo nano /etc/apache2/httpd.conf
- Premi Ctrl+W per visualizzare la ricerca
- Cerca Library e premi invio. Dovresti vedere questo:
- Sostituisci entrambe le occorrenze di
/Library/WebServer/Documents
con/Users/david/Sites
(invece di david usa il tuo nome che può essere trovato in cima al tuo terminale vicino all’icona della casa) - Premi Ctrl+O seguito da Invio per salvare queste modifiche
- Premi Ctrl+X per uscire da nano
- Digita
sudo apachectl restart
e premi invio
Torna a Safari e aggiorna la pagina localhost e vedrai Hello From Sites Folder! con le informazioni su PHP che mostrano che viene usato PHP 7.
Installa MySQL
- Vai su https://dev.mysql.com/downloads/mysql
- Scorri in basso finché non vedi tre pulsanti di download e clicca su quello vicino a DMG Archive
- Scorri in basso e clicca No grazie, avvia il mio download
- Clicca sul file scaricato, fai doppio clic sul file pkg, e vai all’installazione che dovrebbe essere come questa:
- Una volta arrivati alla fine dell’installazione, vedrete un popup che vi darà il vostro nome utente MySQL (root) e la password (8hxKsiIh?YMt). La tua password sarà diversa. Copia la password in un file di testo (o fai uno screenshot) e premi ok. Fatelo ora, perché sarà difficile reimpostare la password se non la conoscete.
- Premete il logo Apple in alto a sinistra del vostro schermo e andate in Preferenze di Sistema
- Cliccate su MySQL e vedrete che è spento
- Premete Start MySQL Server per accenderlo e vedrete:
- Tornate al Terminale e digitate
sudo /usr/local/mysql/bin/mysql -u root -p
- Quando premete invio vi chiederà la vostra Password. Questa è la password che usi quando accedi al tuo Mac
- Poi ti dice Enter Password: che per me è 8hxKsiIh?YMt (dovresti usare la password che hai copiato prima invece di 8hxKsiIh?YMt). Vedrai questa schermata:
- Digita
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
e premi enter - Vai a https://www.sequelpro.com e scarica Sequel Pro. Questo è come phpMyAdmin, ma meglio perché è un’applicazione desktop.
- Vai all’installazione, apri Sequel Pro e inserisci 127.0.0.1 come Host. Inserisci root come nome utente e newpassword come password. Premi Connect
- Clicca Choose Database… in alto a sinistra seguito da Add Database…
- Dagli il nome mydb e premi enter
- Poi clicca il segno più in basso a sinistra per creare una nuova tabella. Nominate la tabella mytable e premete add
- Fate clic sul segno più proprio sopra la parola INDEXES e nominate il campo message. Imposta il tipo su VARCHAR e dagli una lunghezza di 200.
- Clicca su Content in alto.
- Clicca il segno più in basso (quello a sinistra del segno meno)
- Dai alla nuova voce un id di 1 e imposta il messaggio su MySQL funziona perfettamente!
- Apri index.php nella tua cartella Sites e cambia il codice in
<?php$con = new mysqli("127.0.0.1", "root", "newpassword", "mydb");$message = $con->query("SELECT message FROM myTable")->fetch_object()->message;$con->close();echo "$message <br/>";echo "Hello From Sites Folder!";phpinfo();
Ovviamente questo esempio è immune da SQL injection, poiché non ci sono valori inseriti dall’utente. Tuttavia, se non capite le istruzioni preparate di MySQLi come vorreste, date un’occhiata a questo post per un eccellente tutorial su come prevenire l’iniezione SQL 😉 . C’è anche una versione PDO, se la preferisci di più.
- Refresh localhost su Safari e dovresti vedere:
Grande! Ora hai MySQL funzionante, quindi puoi usare localhost per memorizzare informazioni nei database.
Fai funzionare gli URL SEO Friendly
Invece di andare a localhost/profile.php?user=david, è più carino se puoi andare a localhost/profile/david. Facciamolo funzionare abilitando mod_rewrite in modo da poter usare RewriteRules.
- Vai al Terminale e digita
sudo nano /etc/apache2/httpd.conf
seguito dalla pressione di enter - Premi Ctrl+W, digita rewrite, e premi enter
- Rimuovi il # in
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Premi Ctrl+O seguito da Enter per salvare
- Premi Ctrl+X per uscire da nano
- Tieni
sudo apachectl restart
Ora puoi usare URL amichevoli quando sviluppi usando localhost.
Fai funzionare .htaccess
Questo non è necessario per far funzionare i vanity URL, ma personalmente preferisco usare un file .htaccess, perché mi permette di controllare la versione.
- Vai al Terminale e digita
sudo nano /etc/apache2/httpd.conf
seguito dalla pressione di enter - Premi Ctrl+W, digita
AllowOverride controls
, e premi enter - Cambia
AllowOverride None
inAllowOverride All
- Premi Ctrl+O seguito da Invio per salvare
- Premi Ctrl+X per uscire da nano
- Tieni
sudo apachectl restart
Ora puoi aggiungere un file .htaccess nella cartella Sites e funzionerà bene.
Accendi SSL/HTTPS
Invece di accedere al tuo sito web attraverso localhost, potresti voler accedere al tuo sito web andando su https://localhost. Se attivi SSL, vedrai un lucchetto accanto a localhost nella barra dell’URL.
- Vai al Terminale e digita
sudo nano /etc/apache2/httpd.conf
seguito dalla pressione di enter - Premi Ctrl+W, digita socache_shmcb_module, e premi enter
- Cancella il # da
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- Premi Ctrl+W, scrivi mod_ssl, e premi enter
- Cancella il # da
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Premi Ctrl+W, digita httpd-ssl, e premi enter
- Cancella il # da
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Premi Ctrl+O seguito da Enter per salvare
- Premi Ctrl+X per uscire da nano
- Tieni
sudo nano /etc/apache2/extra/httpd-ssl.conf
e premi enter - Premi Ctrl+W, digita ServerName, e premi enter
- Sostituisci www.example.com:443 con localhost
- Poi vedrai
/Library/WebServer/Documents
. Sostituitelo con/Users/david/Sites
. (Usa il tuo nome al posto di david come hai fatto prima) - Destra sotto
<VirtualHost_default_:443>
aggiungi (ma assicurati di sostituire david con il tuo nome):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- Il tuo terminale dovrebbe ora apparire come questo:
- Premere Ctrl+O seguito da Invio per salvare
- Premere Ctrl+X per uscire da nano
- Digitare
sudo nano /etc/ssl/openssl.cnf
e premere invio - In fondo a openssl.cnf aggiungi questo:
subjectAltName = DNS:localhost
- Il tuo terminale dovrebbe assomigliare a questo:
- Premi Ctrl+O seguito da Invio per salvare
- Premi Ctrl+X per uscire da nano
- Type
sudo openssl req -extensions san -config /etc/ssl/openssl.cnf -x509 -nodes -newkey rsa:4096 -keyout /private/etc/apache2/server.key -out /private/etc/apache2/server.crt -days 365 -subj "/C=US/ST=Florida/L=Boca Raton/O=WebsiteBeaver/CN=localhost"
e premi invio. (Puoi usare le tue informazioni invece, ma non cambiare localhost)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
e premi enter
- Type
sudo apachectl
restart - Ora vai su https://localhost nel tuo browser, e vedrai un lucchetto accanto all’url che significa che hai finito di impostare SSL!