Rekommenderar att byta till Docker
Jag har äntligen bytt till Docker för lokal utveckling på macOS. Följande handledning fungerar för macOS Catalina, men den har begränsningar. Jag rekommenderar att du följer min senaste handledning om installation av Apache, MySQL och PHP på macOS med hjälp av Docker.
Anmärkning: Det här inlägget gäller nya installationer. Om du har installerat Apache, PHP och MySQL för Mac OS Mojave kan du läsa mitt inlägg om Uppdatering av Apache, PHP och MySQL för macOS Catalina.
Jag är medveten om de webbserverprogram som finns tillgängliga för macOS, särskilt MAMP, samt pakethanterare som brew
. Med dessa kommer man snabbt igång. Men de ger avkall på inlärningsupplevelsen och kan, som de flesta utvecklare rapporterar, bli svåra att hantera.
macOS körs ovanpå UNIX. De flesta UNIX-programvaror installeras lätt på macOS. Dessutom är Apache och PHP förinstallerade i macOS. Så för att skapa en lokal webbserver behöver du bara konfigurera Apache och installera MySQL.
Körning av kommandon
Först öppnar du appen Terminal och byter till användaren root
så att du kan köra kommandona i det här inlägget utan problem med behörigheter:
sudo su -
Aktivera Apache på macOS
apachectl start
Verifiera Det fungerar! genom att komma åt http://localhost
Aktivera PHP för Apache
Först gör du en säkerhetskopia av standardkonfigurationen för Apache. Detta är god praxis och fungerar som en jämförelse mot framtida versioner av macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.Catalina
Redigera nu Apache-konfigurationen. Använd gärna en annan editor om du inte är bekant med vi.
vi httpd.conf
Unkommentera följande rad (ta bort #
):
LoadModule php7_module libexec/apache2/libphp7.so
Starta om Apache:
apachectl restart
Du kan verifiera att PHP är aktiverat genom att skapa en phpinfo()
sida i din DocumentRoot
.
Standardinställningen för DocumentRoot
för macOS Catalina är /Library/WebServer/Documents
. Du kan kontrollera detta från din Apache-konfiguration.
grep DocumentRoot httpd.conf
Skapa nu phpinfo()
-sidan i din DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Verifiera PHP genom att komma åt http://localhost/phpinfo.php
Installera MySQL på macOS Catalina
Ladda ner och installera den senaste generellt tillgängliga versionen av MySQL DMG för macOS. MySQL 8 är den senaste versionen. Men äldre versioner finns tillgängliga om du behöver stöd för äldre program.
När installationen är klar får du ett tillfälligt lösenord. Kopiera detta lösenord innan du stänger installationsprogrammet. Du kommer att använda det igen i några steg.
I README föreslås att man skapar alias för mysql
och mysqladmin
. Det finns dock andra kommandon som är användbara, till exempel mysqldump
. Istället kan du uppdatera din sökväg så att den inkluderar /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Notera: Du måste öppna ett nytt Terminalfönster eller köra kommandot ovan för att din sökväg ska uppdateras.
Slutligt bör du köra mysql_secure_installation
. Även om detta inte är nödvändigt är det god praxis att säkra din databas. Det är också här du kan ändra det otäcka tillfälliga lösenordet till något mer hanterbart för lokal utveckling.
Koppla ihop PHP och MySQL
Du måste se till att PHP och MySQL kan kommunicera med varandra. Det finns flera alternativ för att göra det. Jag gillar följande eftersom det inte kräver att man ändrar många konfigurationer:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Övrig konfiguration (valfritt)
Standardkonfigurationen för Apache 2.4 på macOS verkade ganska mager. Till exempel var vanliga moduler som mod_rewrite
inaktiverade. Du kan överväga att aktivera detta nu för att undvika att glömma att de är inaktiverade i framtiden.
Jag redigerade min Apache-konfiguration:
vi /etc/apache2/httpd.conf
Jag avkommenterade följande rader (ta bort #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Om du utvecklar flera projekt och vill att vart och ett av dem ska ha en unik webbadress, kan du konfigurera Apache VirtualHosts för macOS.
Om du vill installera PHPMyAdmin återgår du till mitt ursprungliga inlägg om installation av Apache, PHP och MySQL på macOS.
Finns detta intressant? Låt oss fortsätta samtalet på Twitter.