Apache auf macOS

Apache ist schon seit immer dabei, bloß irgendwann ist in den System Preferences das Häkchen zum einschalten verschwunden..

Ab ins Terminal, es reicht ein:

sudo apachectl start

stop, restart und configtest sind auch wichtig!

Unter http://localhost sollte nun der It works! Text stehen.

DocumentRoot:/Library/WebServer/Documents/
UserLevelRoot:/Users/User/Sites

User-Directories

Für die User-Directories muss man noch ein bisschen basteln:

Es braucht erst einen Sites Ordner:

mkdir /Users/User/Sites
chmod 644 /Users/User/Sites

Dann eine /etc/apache2/users/user.conf erstellen:

<Directory "/Users/User/Sites/">
    AllowOverride All
    Options Indexes MultiViews FollowSymLinks
    Require all granted
</Directory>

Und in der /etc/apache2/httpd.conf noch ein paar Module einschalten, sowie die extra/httpd-userdir.conf einbinden lassen:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Include /private/etc/apache2/extra/httpd-userdir.conf

Damit die oben erstellte user.conf geladen wird, in der /etc/apache2/extra/httpd-userdir.conf den Kommentar von dieser Zeile entfernen:

Include /private/etc/apache2/users/*.conf

Fertig! Nach einem apachectl restart sieht man nun unter http://localhost/~user den Inhalt von /Users/User/Sites

PHP and Dynamite

Man kommt leider immer noch nicht drum rum, manchmal braucht man wirklich noch PHP..

Kommt in ganz moderner 5er Version beim Mac mit..

In der /etc/apache2/httpd.conf muss man dazu den Kommentar von dieser Zeile entfernen:

LoadModule php5_module libexec/apache2/libphp5.so

apachectl restart, und schon sollte eine info.php lustige Sachen ausgeben:

<?php phpinfo(); ?>