Recommend switching to Docker
Ik ben eindelijk overgestapt op het gebruik van Docker voor lokale ontwikkeling op macOS. Hoewel de volgende tutorial werkt voor macOS Mojave, zal deze niet werken voor toekomstige versies van macOS. 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 je Apache, PHP, en MySQL hebt geïnstalleerd voor Mac OS Sierra, lees dan mijn post over het updaten van Apache, PHP, en MySQL voor macOS Mojave.
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.
Het ding is dat macOS boven op UNIX draait. Dus de meeste UNIX software installeert gemakkelijk op macOS. Bovendien worden Apache en PHP met macOS voorgeïnstalleerd. 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 -
Appache inschakelen op macOS
apachectl start
Verifieer 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.mojave
Nu bewerkt u de Apache-configuratie. Gebruik gerust een andere editor als u niet bekend bent met vi.
vi httpd.conf
Verwijder 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 aan te maken in uw DocumentRoot
.
De standaard DocumentRoot
voor macOS Mojave is /Library/WebServer/Documents
. U kunt dit controleren aan de hand van uw Apache-configuratie.
grep DocumentRoot httpd.conf
Maak nu 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 Mojave
Download en installeer de nieuwste MySQL algemeen beschikbare release DMG voor macOS. Hoewel MySQL 8 de nieuwste versie is, gebruiken veel van mijn projecten nog steeds MySQL 5.7. Dus ik geef nog steeds de voorkeur aan het installeren van de oudere versie.
Wanneer de installatie is voltooid zal het u een tijdelijk wachtwoord geven. Kopieer dit wachtwoord voordat u de installer afsluit. U zult het weer gebruiken in een paar stappen.
De README suggereert om aliassen 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 om /usr/local/mysql/bin
op te nemen.
export PATH=/usr/local/mysql/bin:$PATH
Note: U moet een nieuw Terminal venster openen of het bovenstaande commando uitvoeren om uw pad bij te werken.
Ten slotte 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.
Sluit PHP en MySQL aan
U moet ervoor zorgen dat PHP en MySQL met elkaar kunnen communiceren. Er zijn verschillende opties om dat 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 behoorlijk 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 u wilt dat elk project een unieke url heeft, kunt u Apache VirtualHosts configureren voor macOS.
Als je PHPMyAdmin wilt installeren, ga dan terug naar mijn oorspronkelijke post over het installeren van Apache, PHP, en MySQL op macOS.
Vind je dit interessant? Laten we het gesprek voortzetten op Twitter.