Martin Kausche

Apache und PHP in macOS einrichten

12 Dec 2016

macOS bringt bereits recht aktuelle Versionen vom Apache Webserver und PHP mit, eine Installation aus externen Quellen ist also nicht notwendig.

~ % httpd -v
Server version: Apache/2.4.23 (Unix)  
Server built:   Aug  8 2016 16:31:34  
~ % php -v
PHP 5.6.25 (cli) (built: Sep 19 2016 15:45:41)  
Copyright (c) 1997-2016 The PHP Group  
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies  
~ %

grundlegende Befehle

  • sudo apachectl start zum starten des Webservers
  • sudo apachectl stop zum beenden des Webservers
  • sudo apachectl restart zum neu starten des Webservers

Nutzerverzeichnisse einrichten

Es bietet sich an individuelle Nutzerverzeichnisse für die eigenen HTML bzw. PHP Projekte zu verwenden, auf diese Weise muss nicht dauerhaft mit root-Rechten im /Library/WebServer/Documents/ geschrieben werden.

Dazu wird zunächst ein Verzeichnis Sites für den aktuellen Nutzer erstellt und anschließend eine entsprechende conf-Datei angelegt

~ % mkdir Sites
~ % whoami
martin  
~ % sudo vim /etc/apache2/users/martin.conf

Hier dann folgendes eintragen

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

Anschließend noch die gewünschten Module bzw. Includes aktivieren (# davor entfernen):

~ % sudo vim /etc/apache2/httpd.conf

Ich habe folgende Module aktiviert (insbesondere PHP) und das userdir-conf entkommentiert:

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  
LoadModule php5_module libexec/apache2/libphp5.so

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

in eben dieser /private/etc/apache2/extra/httpd-userdir.conf dann noch folgendes unkommentieren:

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

und den Apachen neu starten

~ % apachectl restart

Ab jetzt sollten Dateien aus ~/Sites unter http://localhost/~martin/ erreichbar sein.

Sollte der Webserver bzw. PHP schreibend auf angelegte Dateien zugreifen müssen, dann müssen entsprechende Verzeichnisse noch der Gruppe _wwwzugewiesen werden, und der Gruppe Schreibrechte gegeben werden.

~/Sites % sudo chgrp -R _www ./TEST
~/Sites % chmod -R g+w TEST

Tags:  macOS PHP Apache