Beveel aan om over te schakelen naar Docker
Ik ben eindelijk overgestapt op het gebruik van Docker voor lokale ontwikkeling op macOS. Hoewel de volgende tutorial werkt voor macOS Catalina, heeft het beperkingen. Ik raad aan mijn laatste tutorial te volgen over het installeren van Apache, MySQL, en PHP op macOS met Docker.
Note: Deze post is voor nieuwe installaties. Als u Apache, PHP, en MySQL voor Mac OS Mojave hebt geïnstalleerd, lees dan mijn post over het bijwerken van Apache, PHP, en MySQL voor macOS Catalina.
Ik ben me bewust van de webserver-software die beschikbaar is voor macOS, met name MAMP, evenals pakketbeheerders zoals brew
. Deze helpen je snel op weg. Maar ze gaan voorbij aan de leerervaring en, zoals de meeste ontwikkelaars melden, kunnen moeilijk te beheren worden.
macOS draait boven op UNIX. De meeste UNIX-software installeert gemakkelijk op macOS. Bovendien zijn Apache en PHP al voorgeïnstalleerd op macOS. Dus om een lokale webserver te maken, hoeft u alleen maar Apache te configureren en MySQL te installeren.
Commando’s uitvoeren
Open eerst de Terminal app en schakel over naar de root
gebruiker, zodat u de commando’s in deze post kunt uitvoeren zonder toestemmingsproblemen:
sudo su -
Sluit Apache in op macOS
apachectl start
Verkifieer of het werkt! door http://localhost
PHP inschakelen voor Apache
Maak eerst een back-up van de standaardconfiguratie van Apache. Dit is een goede gewoonte en dient als vergelijkingsmateriaal voor toekomstige versies van macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.Catalina
Nu bewerkt u de Apache-configuratie. Gebruik gerust een andere editor als u niet bekend bent met vi.
vi httpd.conf
Verwijder het commentaar op de volgende regel (verwijder #
):
LoadModule php7_module libexec/apache2/libphp7.so
Herstart Apache:
apachectl restart
U kunt controleren of PHP is ingeschakeld door een phpinfo()
pagina in uw DocumentRoot
aan te maken.
De standaard DocumentRoot
voor macOS Catalina is /Library/WebServer/Documents
. U kunt dit controleren via uw Apache-configuratie.
grep DocumentRoot httpd.conf
Nu maakt u de phpinfo()
pagina in uw DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Verifieer PHP door http://localhost/phpinfo.php
Installeer MySQL op macOS Catalina
Download en installeer de nieuwste MySQL algemeen beschikbare release DMG voor macOS. MySQL 8 is de nieuwste versie. Maar oudere versies zijn beschikbaar als u oudere toepassingen wilt ondersteunen.
Wanneer de installatie is voltooid, krijgt u een tijdelijk wachtwoord. Kopieer dit wachtwoord voordat u het installatieprogramma afsluit. U zult het in een paar stappen weer gebruiken.
De README suggereert om aliassen aan te maken voor mysql
en mysqladmin
. Er zijn echter andere commando’s die nuttig zijn, zoals mysqldump
. In plaats daarvan kunt u uw pad bijwerken met /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Noot: U moet een nieuw Terminal-venster openen of het bovenstaande commando uitvoeren om uw pad bij te werken.
Tot slot moet u mysql_secure_installation
uitvoeren. Hoewel dit niet noodzakelijk is, is het een goede gewoonte om uw database te beveiligen. Dit is ook de plaats waar u dat vervelende tijdelijke wachtwoord kunt veranderen in iets dat beter te beheren is voor lokale ontwikkeling.
Connect PHP and MySQL
U moet ervoor zorgen dat PHP en MySQL met elkaar kunnen communiceren. Er zijn verschillende opties om dit te doen. Ik vind de volgende goed omdat er niet veel configuratie hoeft te worden gewijzigd:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Aanvullende configuratie (optioneel)
De standaardconfiguratie voor Apache 2.4 op macOS lijkt vrij mager. Veelgebruikte modules zoals mod_rewrite
waren bijvoorbeeld uitgeschakeld. U kunt overwegen om dit nu in te schakelen om te voorkomen dat u in de toekomst vergeet dat ze zijn uitgeschakeld.
Ik heb mijn Apache Configuratie bewerkt:
vi /etc/apache2/httpd.conf
Ik heb de volgende regels uitgecommentarieerd (verwijder #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Als u meerdere projecten ontwikkelt en elk project een unieke url wilt geven, kunt u Apache VirtualHosts configureren voor macOS.
Als u PHPMyAdmin wilt installeren, ga dan terug naar mijn oorspronkelijke post over het installeren van Apache, PHP en MySQL op macOS.
Vindt u dit interessant? Laten we het gesprek voortzetten op Twitter.