Tænd Apache
- Åbn Terminal ved at klikke på forstørrelsesglasset øverst til højre på skærmen og søge efter Terminal
- Typ
sudo apachectl start
og tryk på enter - Åbn Safari (eller en anden browser efter eget valg), skriv localhost i adresselinjen, og tryk på enter
Tænk, at det er så nemt? Det er det! Du skulle nu se Det virker! i browseren.
Tænd for PHP
Mac leveres allerede med PHP, så du behøver ikke at installere det fra PHP.net. Før High Sierra (version 10.13) blev Mac leveret med PHP 5 installeret. Det fik brugerne til at blive irriterede, fordi den ikke kom med PHP 7, så man skulle gøre sig ekstra umage for at opgradere fra PHP 5 til PHP 7. Heldigvis leveres High Sierra allerede med PHP 7.1!!!
- Åbn Terminal og skriv
sudo nano /etc/apache2/httpd.conf
og tryk på enter - Dryk på Ctrl+W, hvilket vil få en søgning frem
- Søg efter php og tryk på enter. Du vil se følgende:
- Slet # fra
#LoadModule php7_module libexec/apache2/libphp7.so
- Tryk Ctrl+O efterfulgt af Enter for at gemme den ændring, du lige har foretaget
- Tryk Ctrl+X for at afslutte nano
- Typ
sudo apachectl restart
og tryk på enter
Du har lige slået PHP 7 til. Godt arbejde indtil videre!
Opret mappe til websteder
- Klik på Finder i nederste venstre hjørne af skærmen, og klik på Gå > Hjemme i den øverste navigationslinje. Dette fører dig til din hjemmemappe, som også vil være det, som din computer hedder; i dette tilfælde er det david.
- Opret en ny mappe, og giv den navnet Sites (Safari-ikonet, der er vist nedenfor, bliver automatisk tilføjet til Sites-mappen som vist nedenfor)
- Åbn din foretrukne teksteditor, og opret en fil med navnet index.php med følgende kode:
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- Spar index.php i den mappe Sites, du har oprettet
- Gå tilbage til Terminal, og indtast
sudo nano /etc/apache2/httpd.conf
- Tryk på Ctrl+W for at få vist søgning
- Søg efter Library, og tryk på enter. Du skulle se dette:
- Erstat begge forekomster af
/Library/WebServer/Documents
med/Users/david/Sites
(i stedet for david skal du bruge dit navn, som du kan finde øverst i din terminal ved siden af home-ikonet) - Tryk på Ctrl+O efterfulgt af Enter for at gemme disse ændringer
- Tryk Ctrl+X for at afslutte nano
- Typ
sudo apachectl restart
og tryk på enter
Gå tilbage til Safari og opdater localhost-siden, og du vil se Hello From Sites Folder! med PHP-info, der viser, at der bruges PHP 7.
Installer MySQL
- Gå til https://dev.mysql.com/downloads/mysql
- Rul ned, indtil du ser tre download-knapper, og klik på den ved siden af DMG Archive
- Rul ned, og klik på Nej tak, bare start min download
- Klik på den downloadede fil, dobbeltklik på pkg-filen, og gå igennem installationen, som skal se sådan her ud:
- Når du når til slutningen af installationen, vil du se en popup-meddelelse, der giver dig dit MySQL-brugernavn (root) og din adgangskode (8hxKsiIh?YMt). Dit password vil være anderledes. Kopier adgangskoden til en tekstfil (eller tag et skærmbillede), og tryk på okay. Gør det nu, da det vil være besværligt at nulstille kodeordet, hvis du ikke kender det.
- Tryk på Apple-logoet øverst til venstre på skærmen, og gå til Systemindstillinger
- Klik på MySQL, og du vil se, at den er slået fra
- Tryk på Start MySQL Server for at tænde den, og du vil se:
- Gå tilbage til Terminal, og skriv
sudo /usr/local/mysql/bin/mysql -u root -p
- Når du trykker på enter, vil den bede dig om dit Password. Dette er den adgangskode, du bruger, når du logger ind på din Mac
- Så står der Enter Password: hvilket er 8hxKsiIh?YMt for mig (du bør bruge den adgangskode, du kopierede tidligere i stedet for 8hxKsiIh?YMt). Du vil se dette skærmbillede:
- Typ
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
og tryk på enter - Gå til https://www.sequelpro.com og download Sequel Pro. Det er ligesom phpMyAdmin, men bedre, fordi det er en skrivebordsapplikation.
- Gå gennem installationen, åbn Sequel Pro, og indtast 127.0.0.0.1 som vært. Indtast root som brugernavn og newpassword som adgangskode. Tryk på Connect
- Klik på Choose Database… øverst til venstre efterfulgt af Add Database…
- Giv den navnet mydb, og tryk på enter
- Klik derefter på plustegnet nederst til venstre for at oprette en ny tabel. Navngiv tabellen mytable, og tryk på tilføj
- Klik på plustegnet lige over ordet INDEXES, og giv feltet besked et navn. Indstil typen til VARCHAR og giv det en længde på 200.
- Klik på Content øverst.
- Klik på plustegnet nederst (det til venstre for minustegnet)
- Giv den nye post et id på 1 og indstil message til MySQL virker perfekt!
- Åbn index.php i din mappe Sites og ændr koden til
<?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();
Dette eksempel er naturligvis immun over for SQL-injektion, da der ikke er nogen værdier, der er indtastet af brugeren. Men hvis du ikke forstår MySQLi prepared statements så godt som du gerne vil, kan du tjekke dette indlæg for en fremragende tutorial om hvordan du forhindrer SQL-injektion 😉. Der er endda en PDO-version, hvis du foretrækker det mere.
- Refresh localhost på Safari, og du skulle se:
Great! Du har nu fået MySQL til at fungere, så du kan bruge localhost til at gemme oplysninger i databaser.
Få SEO-venlige URL’er til at fungere
I stedet for at gå til localhost/profile.php?user=david, ser det pænere ud, når du kan gå til localhost/profile/david. Lad os få dette til at fungere ved at aktivere mod_rewrite, så du kan bruge RewriteRules.
- Gå til Terminal og skriv
sudo nano /etc/apache2/httpd.conf
efterfulgt af at trykke enter - Tryk Ctrl+W, skriv rewrite, og tryk på Enter
- Fjern # i
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Druk på Ctrl+O efterfulgt af Enter for at gemme
- Druk på Ctrl+X for at afslutte nano
- Typ
sudo apachectl restart
Nu kan du bruge venlige URL’er, når du udvikler med localhost.
Få .htaccess til at fungere
Dette er ikke nødvendigt for at få vanity-URL’er til at fungere, men jeg foretrækker personligt at bruge en .htaccess-fil, da det giver mig mulighed for at versionskontrollere den.
- Gå til Terminal, og skriv
sudo nano /etc/apache2/httpd.conf
efterfulgt af at trykke enter - Tryk Ctrl+W, skriv
AllowOverride controls
, og tryk på Enter - Forstil
AllowOverride None
tilAllowOverride All
- Tryk Ctrl+O efterfulgt af Enter for at gemme
- Tryk Ctrl+X for at afslutte nano
- Tryk
sudo apachectl restart
Nu kan du tilføje en .htaccess-fil i mappen Sites, og det vil fungere godt.
Tænd for SSL/HTTPS
I stedet for at få adgang til dit websted via localhost, vil du måske få adgang til dit websted ved at gå til https://localhost. Hvis du slår SSL til, vil du se en hængelås ud for localhost i URL-linjen.
- Gå til Terminal, og skriv
sudo nano /etc/apache2/httpd.conf
efterfulgt af enter - Tryk Ctrl+W, skriv socache_shmcb_module, og tryk på enter
- Slet # fra
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- Tryk på Ctrl+W, skriv mod_ssl, og tryk på enter
- Slet # fra
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Tryk på Ctrl+W, skriv httpd-ssl, og tryk på enter
- Slet # fra
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Skift Ctrl+O efterfulgt af Enter for at gemme
- Skift Ctrl+X for at afslutte nano
- Skift
sudo nano /etc/apache2/extra/httpd-ssl.conf
, og tryk på enter - Skift Ctrl+W, skriv ServerName, og tryk på enter
- Sæt www.example.com:443 med localhost
- Højst ovenfor vises
/Library/WebServer/Documents
. Udskift det med/Users/david/Sites
. (Brug dit navn i stedet for david, ligesom du gjorde tidligere) - Højre under
<VirtualHost_default_:443>
tilføj (men sørg for at erstatte david med dit navn):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- Din terminal skal nu se sådan ud:
- Tryk Ctrl+O efterfulgt af Enter for at gemme
- Tryk Ctrl+X for at afslutte nano
- Typ
sudo nano /etc/ssl/openssl.cnf
og tryk på enter - I bunden af openssl.cnf tilføjes dette:
subjectAltName = DNS:localhost
- Din terminal skal se således ud:
- Tryk Ctrl+O efterfulgt af Enter for at gemme
- Tryk Ctrl+X for at afslutte 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"
og tryk på enter. (Du kan bruge dine oplysninger i stedet, men lad være med at ændre localhost)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
og tryk på enter
- Type
sudo apachectl
restart - Gå nu til https://localhost i din browser, og du vil se en hængelås ud for url’en, hvilket betyder, at du er færdig med at opsætte SSL!