• In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Welches Bild soll mehr Schokolade bekommen? Hier geht es lang zur Abstimmung für den Monat März --> Klick

MAMP und VirtualHost (Leopard, Basisinfo)

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Einige von euch setzen sicherlich MAMP ein um komplexere Seiten auf dem eigenen Rechner zu entwickeln.

Mich hat schon immer gestört, dass man die Seiten nur mit einem Aufruf der IP erreichen konnte. In meinem Fall hieß das: http://192.168.1.2:8888

Das sieht nicht nur unschön aus, es ist auch recht unpraktisch. :(

Ich habe mich auf die Suche begeben und eine Lösung gefunden und den Weg mag ich nun hier schildern. :)


Folgendes braucht ihr:
  • Mac OS X Leopard
  • MAMP 1.7
  • Terminal
  • TextMate (oder nen anderen Editor)
  • Safari (oder nen anderen Browser)


Als erstes einmal müssen die Ports, die standardmäßig von MAMP genutzt werden, geändert werden.
Dazu öffnet ihr die MAMP.app (im Ordner Programme/MAMP/)

Dort findet ihr in den Einstellungen den Reiter 'Ports'. Dort klickt ihr auf die oberste Schaltfläche und die Ports ändern sich von 8888 und 8889 auf 80 und 3306.
Nach einem Klick auf OK schliesst sich das Fenster, der Server startet neu und ihr werdet ggf. nach eurem Kennwort befragt.

Als nächstes muss eine Datei per Terminal.app bearbeitet werden. Startet dazu 'Terminal' (am einfachsten über Spotlight, ansonsten /Programme/Dienstprogramme/Terminal).

Tippt folgendes ein:

sudo vi /etc/hosts

Ihr werdet nach eurem root-Kennwort gefragt, gebt es ein denn sonst ist die Datei nicht beschreibbar.
Der Befehl öffnet die Datei 'hosts' im Editor 'Vi' (vi - Wikipedia, the free encyclopedia).

Nun seht ihr eine Auflistung von IP-Adressen:
Bild 1.png
Die ersten Zeilen bleiben unangetastet!


Um eine Änderung an der Datei zu machen müsst ihr 'i' drücken. Danach könnt ihr euch mit den Cursortasten im Dokument umher bewegen und Änderungen vornehmen.
Auf meinem Screenshot erkennt ihr, dass ich 2 Einträge hinzugefügt habe.

127.0.0.1 ist ganz offensichtlich die IP-Adresse. Diese solltet ihr für euch übernehmen.
Mit dev und kalender wird festlegt wie die neue Url später lauten wird (z.B. http://kalender/ oder http://dev/ ). Merkt euch den oder die vergebenen Namen für die spätere Änderung in der httpd.conf!


Nachdem ihr eure Änderungen gemacht habt, drückt ihr die ESC-Taste. Nun müsst ihr Vi nur wieder beenden und ich hab einige Zeit gebraucht bis ich das herausgefunden hatte. :D
Es funktioniert in dem ihr 2x hintereinander Shift+1 drückt, dann erscheint irgendwann ganz unten :.!
Dann müsst ihr '.!' weglöschen (mit der Backspace-Taste), dann tippt ihr ein 'x' ein und drückt Enter. Nun beendet sich Vi (verzeiht wenn es auch anders geht! :D).

Da Leopard die Einträge dieser Datei zwischenspeichert müsst ihr diesen Speicher aktualisieren. Dafür tippt ihr ein:

dscacheutil -flushcache

Nachdem das geschehen ist könnt ihr Terminal beenden.


Nun sucht ihr euch die httpd.conf - diese liegt im Ordner /Programme/MAMP/conf/apache/.

Öffnet sie mit einem Texteditor (ich nutze TextMate). Ganz am Ende der Datei fügt ihr folgendes ein:


NameVirtualHost *
<Virtualhost *>
DocumentRoot /Applications/MAMP/htdocs
Servername dev
</Virtualhost>

Dann ersetzt ihr, sofern vorhanden, die Zeile

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

mit

#Include /private/etc/apache2/extra/httpd-vhosts.conf
(damit wird sie auskommentiert)


Aber kommen wir zu den Änderungen in der httpd.conf:
DocumentRoot - gibt an auf welchen Ordner verwiesen werden soll. Der Pfad aus dem Beispiel stellt die Standardkonfiguration von MAMP dar.
Servername - erinnert euch an die ersten Änderungen in der /etc/hosts die wir gemacht haben, dort stand eine IP mit einem Namen dahinter. Dieser Name wird nun hier erneut verwendet.


Wenn ihr in der /etc/hosts beispielsweise den Namen 'entwicklung' gewählt habt, dann lautet die Veränderung in der httpd.conf:

NameVirtualHost *
<Virtualhost *>
DocumentRoot /Applications/MAMP/htdocs
Servername entwicklung
</Virtualhost>




Mein Beispiel von weiter oben wo ich dev und kalender verwendete benötigt folgende Änderung:

NameVirtualHost *
<Virtualhost *>
DocumentRoot /Applications/MAMP/htdocs
Servername dev
</Virtualhost>
<Virtualhost *>
DocumentRoot /Applications/MAMP/htdocs/kalender
Servername kalender
</Virtualhost>

Dort habe ich den Pfad geändert auf dem bei einem Aufruf von http://kalender/ verwiesen wird. In diesem Fall ist es ein spezieller Unterordner. :)

Startet nun den Apachen neu (über das MAMP Widget oder über die MAMP.app) und dann müsste eigentlich alles durch die Eingabe von http://dev/ oder http://kalender/ funktionieren.


Auch wenn die Anleitung alles andere als komplett ist gibt sie euch doch einen kleinen Einblick in die Sache. Ich hoffe es hat euch geholfen. :)
 

stk

Grünapfel
Registriert
05.01.04
Beiträge
7.141
Moin,

die Portnummern von MAMP haben ein klares Ziel: auf keinen Fall mit Standardinstallationen ins Gehege zu kommen. Darum: wer sich wie oben beschrieben die Portnummer von MAMP verbiegt sollte tunlichst darauf achten, das weder der interne Apache (Sharing -> Websharing) jemals startet, noch sich eine MySQL auf den Rechner verirrt. Alles gegenteilige dürfte ein paar fatale Folgen haben!

Und noch eines: wer so tief in die MAMP-Installation eingreift, braucht sie eigentlich schon gar nicht mehr :oops:.

Gruß Stefan
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Hallo Stefan,

Der interne Apache arbeitet auf dem Port 80, das ist korrekt. Allerdings war ich davon ausgegangen, dass jemand der MAMP aktiviert hat nicht gleichzeitig das Web-Sharing aktiviert hat. :)

Ich habe es allerdings vor dem veröffentlichen probiert: Wenn man MAMP aktiviert und dann das Web-Sharing aktiviert dann bekommt dieses den Vorzug und MAMP funktioniert nicht mehr. Andere Dinge konnte ich nicht feststellen. :)
Wenn das Web-Sharing wieder deaktiviert wird, dann läuft MAMP einfach weiter wie bisher.


Magst du mir erklären was du mit der Warnung vor einer MySQL-Verirrung meinst? :)
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Die mySQL Verwirrung bezieht sich wohl auf Probleme mit mehreren mySQL Installationen und einander gegenseitig überschreibenden Sockets oder anderen Grausamkeiten.

Meiner Meinung nach ist MAMP ein "lustiges" Spielzeug aber in seiner Implementation und Konfiguration eine riesige Sicherheitslücke die sogar zur Entwicklung als gemeingefährlich einzustufen ist. hinzu kommt, daß die MAMP Entwickler inzwischen mehrfach gegen die entsprechenden OpenSource Lizenzen verstoßen und kommerziell verkaufen was sie entgegen der Bedingungen der Lizenzen nicht im Quellcode veröffentlichen. Jegliche Anfragen im MAMP Forum werden entweder gelöscht oder ad infinituum ignoriert. Meiner Meinung nach keine Verhaltensweise die man unterstützen sollte.

Die vorgeschlagene Methode hat übrigens einen kleinen gefährlichen Nachteil. Wer einen kleinen Fehler dabei macht, sorgt dafür, daß localhost bzw. die IPv4 127.0.0.1 nicht mehr korrekt aufgelöst werden können und somit im schlimmsten Fall das komplette System im Eimer ist.

Die bereits genannten Schönheitsfehler, wie Erreichbarkeit nur per IP und mit Port haben den einzig positiven Aspekt von MAMP zugrunde um sich eben nicht mit dem System zu beissen. Dabei sollte man es auch belassen und am besten die Finger ganz davon lassen. Wer so weit in einer Apache Konfig rumbastelt hat MAMP nicht mehr nötig, sollte aber doch noch ein wenig über saubere httpd.conf Implementation lernen. Der angegebene Weg ist mehr als Quick-and-Dirty-Hack anzusehen. Auf Sicherheit wird überhaupt nicht eingegangen...
Gruß Pepi
 

JOKER

Damasonrenette
Registriert
04.12.04
Beiträge
494
Die mySQL Verwirrung bezieht sich wohl auf Probleme mit mehreren mySQL Installationen und einander gegenseitig überschreibenden Sockets oder anderen Grausamkeiten.

Die vorgeschlagene Methode hat übrigens einen kleinen gefährlichen Nachteil. Wer einen kleinen Fehler dabei macht, sorgt dafür, daß localhost bzw. die IPv4 127.0.0.1 nicht mehr korrekt aufgelöst werden können und somit im schlimmsten Fall das komplette System im Eimer ist.

o.k. dann hab ich wohl die Lösung / Ursache für mein Problem gefunden :mad:
Wenn ich WebSharing aktiviere kann ich localhost nicht mehr erreichen, MAMP hingegen funktioniert :oops:
Kann man das irgendwie wieder gerade biegen (ausser Neuinstallation) ?

JOKER