- Del ett i en tvådelad serie om hur man installerar en Apache/PHP-utvecklingsmiljö på macOS
- Hämta de senaste OS-uppdateringarna
- Installera Xcode
- Install Homebrew
- Skapa kataloger för Apaches loggfiler
- Installera och konfigurera Apache
- Change the Listening Port
- Enable Useful Apache Modules
- Ändra inställningar för Apache-användare och -grupper
- Set Apache Server Admin and Server Name
- Ändra dokumentroten, katalogen och överordningarna
- Set Apache Error Log Location
- Skapa en Sites-mapp
- Starta om Apache
Del ett i en tvådelad serie om hur man installerar en Apache/PHP-utvecklingsmiljö på macOS
Den här artikeln riktar sig till webbutvecklare som vill ha en installation av Apache-webbservern som en del av sin utvecklingsmiljö på sin Mac.
Om du är en PHP-utvecklare är den här artikeln en förutsättning för nästa artikel som kommer att hjälpa dig att installera PHP med hjälp av Homebrew och PECL. En länk till den artikeln finns längst ner på den här sidan.
Som utvecklare brukade jag förlita mig på den version av Apache som var förinstallerad med operativsystemet på min MacBook Pro. Med de ständigt förändrade säkerhetsreglerna i macOS har jag bestämt mig för att ändra hela mitt tillvägagångssätt och istället inaktivera den distribuerade versionen av Apache och använda en installation helt och hållet från Homebrew. Detta nya tillvägagångssätt ger mer flexibilitet för versionering och kommer att fortsätta att fungera i alla macOS-versioner.
Dessa instruktioner fungerar på samma sätt för macOS 10.13 High Sierra och 10.14 Mojave. Jag har inte testat på tidigare versioner av macOS, men det bör fungera på samma sätt. Du behöver inte heller börja med en ny OS-installation för att använda den här artikeln, men jag har sett några konstiga saker hända när du uppgraderar till Mojave jämfört med en ny installation (t.ex. att mod_deflate.so-modultilläggsfilen helt saknas efter uppgraderingen). Jag rekommenderar en nyinstallation, men om du trotsar en uppgradering i stället, var beredd på att jaga efter en del filer och sökvägar.
Vi sätter igång!
Hämta de senaste OS-uppdateringarna
Om du precis har gjort en ny OS-installation behöver du förmodligen inte göra det här.
Installera Xcode
Om du inte är intresserad av att installera hela Xcode-appen går det bra, kommandot Homebrew install kommer att installera de grundläggande Xcode Command Line Tools som behövs. Jag rekommenderar dock den fullständiga installationen, särskilt om du kör Mojave. För att göra detta kan du köra följande kommando från terminalen:
xcode-select --install
Install Homebrew
Följande kommando kommer att installera Homebrew.
(Observera att följande kommando är en enda rad som har lindats in på grund av begränsning av sidbredden i Medium. Se till att kopiera hela raden).
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Skapa kataloger för Apaches loggfiler
Apache är förkonfigurerad med sina egna loggkataloger, men vi ska skapa vår egen mapp ”/usr/local/log/” så att de är lätta att hitta när vi behöver. Om du går vidare till nästa artikel för att installera PHP kommer vi att använda samma loggfilplats för PHP-loggarna också och ha alla loggar på ett och samma ställe.
Följ dessa steg för att skapa lämpliga kataloger och ställa in deras behörigheter. Strunta i eventuella ”finns redan”-meddelanden som du kan få.
$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/
Installera och konfigurera Apache
macOS 10.13 High Sierra och 10.14 Mojave levereras med Apache förinstallerad. Men istället för att använda den levererade versionen ska vi installera Apache via Homebrew och sedan konfigurera den så att den körs på port 80.
Om du redan har den förinstallerade Apache igång måste den först stängas av och alla skript för automatisk laddning tas bort. Det skadar inte att köra båda följande kommandon, även vid en nyinstallation.
(Observera att det andra kommandot är en enda rad som är omslagen på grund av begränsad sidbredd i Medium. Se till att kopiera hela raden).
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
Installera nu den nya versionen av Apache som tillhandahålls av Homebrew.
$ brew install httpd
När det är klart, kör följande kommando för att starta Apache-tjänsten och se till att den startas om automatiskt vid inloggning.
$ brew services start httpd
Du har nu installerat Homebrews version av Apache och konfigurerat den så att den startar automatiskt vid omstart. Den borde redan vara igång, så du borde kunna peka din webbläsare på http://localhost:8080 och se en enkel rubrik som säger: ”Det fungerar!”.
Notera att vi för närvarande pekar på port 8080. Vi kommer att ändra det i följande steg. Nu när vi har en fungerande webbserver vill vi göra några konfigurationsändringar så att den fungerar mer enligt våra önskemål … eller egentligen bara enligt mina önskemål ;-).
Låt oss öppna konfigurationsfilen för Apache:
$ open -e /usr/local/etc/httpd/httpd.conf
Change the Listening Port
Rulla ner och leta upp raden där det står ”Listen 8080” och ändra den till;
Listen 80
Enable Useful Apache Modules
Nästan kan du aktivera följande två praktiska Apache-moduler. Du kan söka efter följande två rader och avkommentera dem genom att ta bort den inledande hashtaggen ”#”.
Hänvisning: deflate-linjen finns i mitten av avsnittet LoadModule och rewrite-linjen finns längst ner i avsnittet LoadModule.
LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Ändra inställningar för Apache-användare och -grupper
Som standard körs Apache med användaren _www och gruppen _www. Om en stund kommer vi att ställa in vår standarddokumentkatalog till en ”Sites”-katalog i vår hemmapp, och dessa användar- och gruppinställningar kommer att ge dig behörighetsproblem när du försöker komma åt filer i din hemmapp.
Skrolla ungefär en tredjedel nedåt i din httpd.conf-fil så hittar du två rader som ställer in användaren och gruppen som Apache ska köras under. Ändra dessa så att de stämmer överens med ditt användarkonto. Ersätt your_username med ditt MacBook-användarnamn och använd gruppnamnet staff.
User your_username
Group staff
Set Apache Server Admin and Server Name
Hitta raden ”ServerAdmin” och aktivera den genom att ta bort den inledande hashtaggen ”#” (om nödvändigt) och ändra sedan e-postadressen till din egen:
ServerAdmin [email protected]
Aktivera Apache-servernamnet i konfigurationen genom att ta bort den ledande hashtaggen ”#” och ändra den till localhost:
ServerName localhost
Ändra dokumentroten, katalogen och överordningarna
Nästan ska vi ändra dokumentroten för Apache. Detta är den mapp där Apache letar efter att servera filer från. Som standard är dokumentroten konfigurerad som /usr/local/var/www. Eftersom vi skapar en utvecklingsmiljö och vill undvika så många problem med mappbehörighet som möjligt, ändrar vi dokumentroten till en mapp i vår hemkatalog (som vi skapar inom kort).
Fortsätt att bläddra nedåt och hitta raden DocumentRoot. Ändra den till följande:
DocumentRoot "/Users/your_username/Sites"
Nästan måste du också ändra taggreferensen precis under DocumentRoot-linjen. Denna ska också ändras så att den pekar på din nya dokumentrot:
<Directory "/Users/your_username/Sites">;
I samma block hittar du en AllowOverride-inställning. Denna bör ändras från None till att tillåta ”All” overrides:
AllowOverride All
Set Apache Error Log Location
Slutligen kommer vi att ställa in Apache error log location till den mapp vi skapade tidigare. Scrolla ner lite längre och hitta raden för ”ErrorLog” och ändra den till följande:
Spara och avsluta textredigeraren.
Skapa en Sites-mapp
Använd följande två rader för att skapa en ”Sites”-mapp och lägga till ett index.html-filen för att komma igång:
(Observera att det andra kommandot är en enda rad som har omslagits på grund av begränsningen av sidbredden i Medium. Se till att kopiera hela raden).
$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html
Starta om Apache
Nu startar vi om för att se till att våra konfigurationsinställningar är korrekta:
$ sudo apachectl -k restart
Prova att surfa till ditt localhost på dess nya plats: http://localhost
Om detta fungerar och du ser meddelandet ”It Works in my Sites Folder” så gratulerar vi! Du har fått en ny webbserverinstans som körs på port 80.
Om du får ett fel kan en trolig orsak vara de dubbla citattecken som används runt katalogposter i filen httpd.conf. Ibland konverterar textredigerare dessa till citationstecken av typen latinska tecken. Dessa citationstecken är valfria och kan tas bort. Försök att ta bort de dubbla citattecken och starta om Apache igen.