Anbefaler at skifte til Docker
Jeg er endelig skiftet til at bruge Docker til lokal udvikling på macOS. Selv om den følgende vejledning virker til macOS Catalina, har den begrænsninger. Jeg anbefaler, at du følger min seneste vejledning om installation af Apache, MySQL og PHP på macOS ved hjælp af Docker.
Bemærk: Dette indlæg er for nye installationer. Hvis du har installeret Apache, PHP og MySQL til Mac OS Mojave, skal du læse mit indlæg om Opdatering af Apache, PHP og MySQL til macOS Catalina.
Jeg er bekendt med den webserversoftware, der er tilgængelig til macOS, især MAMP, samt pakkehåndteringsprogrammer som brew
. Disse får dig hurtigt i gang. Men de giver afkald på indlæringserfaring og kan, som de fleste udviklere rapporterer, blive vanskelige at administrere.
macOS kører oven på UNIX. Det meste UNIX-software kan nemt installeres på macOS. Derudover leveres Apache og PHP forudinstalleret med macOS. Så for at oprette en lokal webserver skal du blot konfigurere Apache og installere MySQL.
Kørsel af kommandoer
Først skal du åbne Terminal-appen og skifte til root
-brugeren, så du kan køre kommandoerne i dette indlæg uden problemer med tilladelser:
sudo su -
Aktiver Apache på macOS
apachectl start
Verificer Det virker! ved at få adgang til http://localhost
Aktiver PHP for Apache
Først skal du lave en sikkerhedskopi af standardkonfigurationen af Apache. Dette er god praksis og tjener som en sammenligning i forhold til fremtidige versioner af macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.Catalina
Rediger nu Apache-konfigurationen. Du er velkommen til at bruge en anden editor, hvis du ikke er fortrolig med vi.
vi httpd.conf
Ukommenter følgende linje (fjern #
):
LoadModule php7_module libexec/apache2/libphp7.so
Start Apache igen:
apachectl restart
Du kan verificere, at PHP er aktiveret ved at oprette en phpinfo()
side i din DocumentRoot
.
Den standard DocumentRoot
for macOS Catalina er /Library/WebServer/Documents
. Du kan verificere dette fra din Apache-konfiguration.
grep DocumentRoot httpd.conf
Opret nu phpinfo()
-siden i din DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Verificer PHP ved at få adgang til http://localhost/phpinfo.php
Installer MySQL på macOS Catalina
Download og installer den seneste generelt tilgængelige MySQL-udgave DMG for macOS. MySQL 8 er den nyeste version. Men ældre versioner er tilgængelige, hvis du har brug for at understøtte ældre programmer.
Når installationen er færdig, giver den dig en midlertidig adgangskode. Kopier denne adgangskode, inden du lukker installationsprogrammet. Du vil bruge det igen i et par trin.
L README foreslår at oprette aliaser for mysql
og mysqladmin
. Der er dog andre kommandoer, som er nyttige, f.eks. mysqldump
. I stedet kan du opdatere din sti til at inkludere /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
OBS: Du skal åbne et nyt Terminal-vindue eller køre kommandoen ovenfor for at få din sti opdateret.
Sidst skal du køre mysql_secure_installation
. Selv om dette ikke er nødvendigt, er det god praksis at sikre din database. Det er også her, du kan ændre det grimme midlertidige password til noget mere håndterbart til lokal udvikling.
Forbind PHP og MySQL
Du skal sikre dig, at PHP og MySQL kan kommunikere med hinanden. Der er flere muligheder for at gøre det. Jeg kan godt lide følgende, da den ikke kræver ændring af en masse konfiguration:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Udviderlig konfiguration (valgfri)
Den standardkonfiguration for Apache 2.4 på macOS virkede ret slank. For eksempel var almindelige moduler som mod_rewrite
deaktiveret. Du kan overveje at aktivere dette nu for at undgå at glemme, at de er deaktiveret i fremtiden.
Jeg redigerede min Apache-konfiguration:
vi /etc/apache2/httpd.conf
Jeg udkommenterede følgende linjer (fjern #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Hvis du udvikler flere projekter og gerne vil have, at hvert projekt har en unik url, kan du konfigurere Apache VirtualHosts for macOS.
Hvis du ønsker at installere PHPMyAdmin, skal du vende tilbage til mit oprindelige indlæg om installation af Apache, PHP og MySQL på macOS.
Finder du dette interessant? Lad os fortsætte samtalen på Twitter.