Ansätt Apache
- Öppna Terminal genom att klicka på förstoringsglaset i övre högra hörnet av skärmen och söka efter Terminal
- Typ
sudo apachectl start
och tryck på enter - Öppna Safari (eller valfri webbläsare), skriv localhost i adressfältet och tryck på enter
Trodde du inte att det är så enkelt? Det är det! Du bör nu se Det fungerar! i webbläsaren.
Sätt på PHP
Mac innehåller redan PHP, så du behöver inte installera det från PHP.net. Före High Sierra (version 10.13) hade Mac PHP 5 installerat. Detta ledde till att användarna blev irriterade eftersom det inte fanns PHP 7 med, så du måste gå igenom extra arbete för att uppgradera från PHP 5 till PHP 7. Tack och lov kommer High Sierra redan med PHP 7.1!!!
- Öppna Terminal och skriv
sudo nano /etc/apache2/httpd.conf
och tryck på enter - Tryck på Ctrl+W vilket ger dig en sökning
- Sök efter php och tryck på enter. Du kommer att se följande:
- Släpp # från
#LoadModule php7_module libexec/apache2/libphp7.so
- Tryck Ctrl+O följt av Enter för att spara ändringen du just gjort
- Tryck Ctrl+X för att avsluta nano
- Tryck
sudo apachectl restart
och tryck på enter
Du har just slagit på PHP 7. Bra jobbat hittills!
Skapa mapp för webbplatser
- Klicka på Finder i det nedre vänstra hörnet av skärmen och klicka på Go > Home i det övre navigeringsfältet. Detta tar dig till din hemkatalog, som också kommer att vara vad din dator heter; i det här fallet är det david.
- Skapa en ny mapp och namnge den Sites (Safari-ikonen som visas nedan läggs automatiskt till i Sites-mappen enligt nedan)
- Öppna din favorittextredigerare och skapa en fil som heter index.php med följande kod:
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- Spara index.php i mappen Sites som du har skapat
- Gå tillbaka till Terminal och skriv in
sudo nano /etc/apache2/httpd.conf
- Tryck på Ctrl+W för att få fram sök
- Sök efter Library och tryck på enter. Du bör se detta:
- Ersätt båda förekomsterna av
/Library/WebServer/Documents
med/Users/david/Sites
(i stället för david använd ditt namn som finns högst upp i terminalen bredvid hemikonen) - Tryck Ctrl+O följt av Enter för att spara ändringarna
- Press Ctrl+X för att avsluta nano
- Typ
sudo apachectl restart
och tryck Enter
Gå tillbaka till Safari och uppdatera sidan localhost och du kommer att se Hello From Sites Folder! med PHP-information som visar att PHP 7 används.
Installera MySQL
- Gå till https://dev.mysql.com/downloads/mysql
- Rulla ner tills du ser tre nedladdningsknappar och klicka på den bredvid DMG Archive
- Rulla ner och klicka på Nej tack, starta bara min nedladdning
- Klicka på den nedladdade filen, dubbelklicka på pkg-filen och gå igenom installationen som ska se ut så här:
- När du kommer till slutet av installationen kommer du att se ett popup-fönster som ger dig ditt MySQL-användarnamn (root) och lösenord (8hxKsiIh?YMt). Ditt lösenord kommer att vara annorlunda. Kopiera lösenordet till en textfil (eller ta en skärmdump) och tryck på okej. Gör detta nu, eftersom det kommer att vara svårt att återställa lösenordet om du inte känner till det.
- Dryck på Apple-logotypen uppe till vänster på skärmen och gå till Systeminställningar
- Klicka på MySQL och du ser att den är avstängd
- Dryck på Starta MySQL Server för att aktivera den och du ser:
- Gå tillbaka till Terminalen och skriv
sudo /usr/local/mysql/bin/mysql -u root -p
- När du trycker på enter kommer den att fråga dig efter ditt lösenord. Detta är det lösenord som du använder när du loggar in på din Mac
- Sedan står det Enter Password: vilket är 8hxKsiIh?YMt för mig (du bör använda det lösenord som du kopierade tidigare istället för 8hxKsiIh?YMt). Du får se den här skärmen:
- Typ
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
och tryck på enter - Gå till https://www.sequelpro.com och ladda ner Sequel Pro. Detta är som phpMyAdmin, men bättre eftersom det är en skrivbordsapplikation.
- Gå igenom installationen, öppna Sequel Pro och ange 127.0.0.0.1 som värd. Ange root som användarnamn och newpassword som lösenord. Tryck på Connect
- Klicka på Choose Database… uppe till vänster följt av Add Database…
- Giv den namnet mydb och tryck på enter
- Klicka sedan på plustecknet nere till vänster för att skapa en ny tabell. Ge tabellen namnet mytable och tryck på add
- Klicka på plustecknet precis ovanför ordet INDEXES och namnge fältet message. Ställ in typen till VARCHAR och ge det en längd på 200.
- Klicka på Content högst upp.
- Klicka på plustecknet längst ner (det till vänster om minustecknet)
- Giv den nya posten ett id på 1 och ställ in meddelandet till MySQL fungerar perfekt!
- Öppna index.php i mappen Sites och ändra koden till
<?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();
Oppenbarligen är det här exemplet immunt mot SQL-injektion, eftersom det inte finns några värden som användaren matar in. Men om du inte förstår MySQLi prepared statements så bra som du skulle vilja, kolla in det här inlägget för en utmärkt handledning om hur man förhindrar SQL-injektion 😉. Det finns även en PDO-version, om du föredrar det mer.
- Refresh localhost på Safari och du bör se:
Great! Nu fungerar MySQL, så du kan använda localhost för att lagra information i databaser.
För att SEO-vänliga webbadresser ska fungera
Istället för att gå till localhost/profile.php?user=david ser det snyggare ut när du kan gå till localhost/profile/david. Låt oss få detta att fungera genom att aktivera mod_rewrite så att du kan använda RewriteRules.
- Gå till Terminal och skriv
sudo nano /etc/apache2/httpd.conf
följt av att trycka på enter - Tryck Ctrl+W, skriv rewrite, och tryck på enter
- Ta bort # i
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Tryck Ctrl+O följt av Enter för att spara
- Tryck Ctrl+X för att avsluta nano
- Typ
sudo apachectl restart
Nu kan du använda användarvänliga URL:er när du utvecklar med localhost.
För att .htaccess ska fungera
Detta är inte nödvändigt för att få vanity URL:er att fungera, men personligen föredrar jag att använda en .htaccess-fil, eftersom det gör det möjligt för mig att versionskontrollera den.
- Gå till Terminal och skriv
sudo nano /etc/apache2/httpd.conf
följt av att trycka på enter - Tryck Ctrl+W, skriv
AllowOverride controls
, och tryck Enter - Ändra
AllowOverride None
tillAllowOverride All
- Tryck Ctrl+O följt av Enter för att spara
- Tryck Ctrl+X för att avsluta nano
- Typ
sudo apachectl restart
Nu kan du lägga till en .htaccess-fil i mappen Sites och det kommer att fungera bra.
Sätt på SSL/HTTPS
Istället för att komma åt din webbplats via localhost kanske du vill komma åt din webbplats genom att gå till https://localhost. Om du aktiverar SSL kommer du att se ett hänglås bredvid localhost i URL-fältet.
- Gå till Terminal och skriv
sudo nano /etc/apache2/httpd.conf
och tryck sedan på enter - Tryck Ctrl+W, skriv socache_shmcb_module, och tryck på enter
- Släpp # från
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- Tryck Ctrl+W, skriv mod_ssl och tryck på enter
- Släpp # från
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Tryck Ctrl+W, skriv httpd-ssl och tryck på enter
- Släpp # från
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Tryck Ctrl+O följt av Enter för att spara
- Tryck Ctrl+X för att avsluta nano
- Tryck
sudo nano /etc/apache2/extra/httpd-ssl.conf
och tryck på enter - Tryck Ctrl+W, skriv ServerName och tryck på enter
- Ersätt www.example.com:443 med localhost
- Högst ovanför ser du
/Library/WebServer/Documents
. Ersätt det med/Users/david/Sites
. (Använd ditt namn istället för david precis som du gjorde tidigare) - Högre under
<VirtualHost_default_:443>
lägg till (men se till att ersätta david med ditt namn):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- Din terminal bör nu se ut så här:
- Tryck Ctrl+O följt av Enter för att spara
- Tryck Ctrl+X för att avsluta nano
- Typ
sudo nano /etc/ssl/openssl.cnf
och tryck Enter - Underst i openssl.cnf lägg till detta:
subjectAltName = DNS:localhost
- Din terminal bör se ut så här:
- Tryck Ctrl+O följt av Enter för att spara
- Tryck Ctrl+X för att avsluta nano
- Typ
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"
och tryck på enter. (Du kan använda din information istället, men ändra inte localhost)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
och tryck på enter
- Type
sudo apachectl
restart - Gå nu till https://localhost i webbläsaren och du kommer att se ett hänglås bredvid url:en, vilket betyder att du är klar med att ställa in SSL!