Wir basteln uns mal eben eine lokale Webentwicklungsumgebung auf unserem Mac. Hierzu benötigen wir einen Webserver, ein Datenbanksystem und ein bisschen drumherum.
Vorab, dies ist kein HowTo Do it the right way, sondern my way.
Da wir die meisten Schritte als root durchführen, schnappt Euch einen Terminal und mutiert zu root.
1 |
sudo su - |
Als Nächstes startet Ihr den Webserver
1 |
apachectl start |
Gleich einmal testen ob das funktioniert hat http://localhost
Apache2 Konfiguration sichern, bearbeiten, php usw. freischalten
1 2 |
cd /etc/apache2/ cp httpd.conf httpd.conf.bak |
In der httpd.conf, von der wir soeben eine Sicherung erstellt haben, entfernen wir nun bei den folgenden Zeilen das Kommentarzeichen “#“
1 2 3 4 |
LoadModule php5_module libexec/apache2/libphp5.so LoadModule deflate_module libexec/apache2/mod_deflate.so LoadModule expires_module libexec/apache2/mod_expires.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so |
php testen durch anlegen der guten alten phpinfo() Datei
In OS X El Capitan ist das DocumentRoot standardmäßig in /Library/WebServer/Documents
1 |
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php |
Gleich einmal testen ob php ausgeliefert wird http://localhost/phpinfo.php
MySQL Server Installation und Anpassung der Umgebungsvariablen
Ladet Euch das dmg Paket von oracle Webseite runter: http://dev.mysql.com/downloads/mysql/ und installiert das Paket im Anschluss.
* MySQL server is now installed, but it is not loaded (or started) by default. Use either launchctl from the command line, or start MySQL by clicking “Start” using the MySQL preference pane. For additional information, see Section 2.4.3, “Installing a MySQL Launch Daemon”, and Section 2.4.4, “Installing and Using the MySQL Preference Pane”. Use launchd to configure MySQL to automatically start at bootup.
Socket für mysql und php bereitstellen
1 2 3 4 |
cd /var mkdir mysql cd mysql ln -s /tmp/mysql.sock mysql.sock |
Sofern Ihr Euch noch in dem Terminal als root befindet, öffnet ein neues Terminal und setzt schon einmal die Umgebungsvariablen.
1 |
export PATH=/usr/local/mysql/bin:$PATH |
Startet nun den MySQL Server
1 |
sudo launchctl load /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist |
Oder einfach über das GUI
Läuft er denn?
1 |
sudo launchctl list|grep mysql |
Zum Abschluss lassen wir noch mysql_secure_installation durchlaufen, ich hoffe Ihr habt Euch das root Kennwort gemerkt, welches bei der Installation des MySQL Servers ausgeworfen wurde. In dem Terminal, in welchem Ihr die Umgebungsvariablen gesetzt habt, führt Ihr nun das folgende Skript aus.
1 |
mysql_secure_installation |
Vhosts bereitstellen
In der httpd.conf fügt Ihr noch diese Zeile hinzu, am besten unterhalb von #Include /private/etc/apache2/extra/httpd-vhosts.conf
1 |
Include /private/etc/apache2/vhosts/*.conf |
Dann erstellen wir noch eben die Verzeichnisse für die vhosts Konfigs und ändern in der Apache httpd.conf noch eben den User und die Group für den Webserver. Da ich davon ausgehe, das es sich hierbei um Eure Webentwicklungsumgebung handelt und wir ganz einfach dem 403 Forbidden Problem nicht begegnen wollen…
1 2 |
mkdir /etc/apache2/vhosts cd /etc/apache2/vhosts |
Hier legen wir gleich einmal eine default vhost Konfiguration ab, für den Fall das eine vhost Konfiguration nicht gefunden wird, dann greift Apache auf diese _default.conf zurück.
1 |
vim _default.conf |
Mit diesem Inhalt
1 2 3 |
<VirtualHost *:80> DocumentRoot "/Library/WebServer/Documents" </VirtualHost> |
Jetzt basteln wir uns eine Eigene, in meinem Beispiel tuxclouds.conf
1 |
vim /etc/apache2/vhosts/tuxclouds.conf |
Beispiel
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:80> DocumentRoot "/Users/Odenthal/Documents/workspace/tuxclouds.org/htdocs" ServerName tuxclouds.local ErrorLog "/private/var/log/apache2/tuxclouds.local-error_log" CustomLog "/private/var/log/apache2/tuxclouds.local-access_log" common <Directory "/Users/Odenthal/Documents/workspace/tuxclouds.org/htdocs"> AllowOverride All Require all granted </Directory> </VirtualHost> |
Vorlage
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:80> DocumentRoot "/Users/<Euer Benutzername>/Documents/<Euere Verzeichnisstruktur>" ServerName <projektname>.local ErrorLog "/private/var/log/apache2/<projektname>.local-error_log" CustomLog "/private/var/log/apache2/<projektname>.local-access_log" common <Directory "/Users/<Euer Benutzername>/Documents/<Euere Verzeichnisstruktur>"> AllowOverride All Require all granted </Directory> </VirtualHost> |
Benutzer und Gruppe des Webservers ändern, ungefähr so, wobei Ihr Euren Benutzernamen einsetzt, die Gruppe aber ebenfalls auf “staff” ändert.
httpd.conf
1 2 3 4 |
#User _www #Group _www User odenthal Group staff |
Nun legt doch einfach mal eine Datei z.B. eine index.html in Eure DocumentRoot und startet den Webserver nochmal durch.
1 |
apachectl restart |
Jetzt müssen wir noch die Namensauflösung dazu bringen, auch auf unsere virtuelle Domäne zu antworten. Hierzu editieren wir die Datei /etc/hosts
1 |
vim /etc/hosts |
Am Ende fügen wir dann die folgende Zeile hinzu, logischerweise an Eure Umgebung angepasst.
1 |
127.0.0.1 tuxclouds.local |
Und machen das ipconfig /flushdns der OS X Welt
1 |
dscacheutil -flushcache |
Zukünftig müsst Ihr also lediglich
- eine weitere vhost Konfiguration erstellen
- einen weiteren Eintrag in Eure /etc/hosts Datei hinzufügen.