Wie verwandelt man Mac OS X Lion in einen Webserver?

Nachdem ich MAMP seit Ewigkeiten verwendet hatte, fand ich heraus, dass ich tatsächlich den integrierten Apache-Server von Snow Leopard verwenden konnte. Jetzt, wo ich auf Lion aktualisiert habe, habe ich keine Ahnung mehr, wie ich das machen soll.

Wissen Sie, wie ich meinen Mac OS X Lion in einen Webserver umwandeln kann, damit ich problemlos die neueste Version von PHP und MySQL darauf ausführen kann? Wie lege ich auch die Aliase "localhost" fest? Ich erinnere mich, dass es eine httpd.conf-Datei war – etwas, das ich bei Lion nicht mehr zu finden scheine.

Nur eine kleine Hilfe für Liebhaber von GUI-Editoren: Um TextMate als Standard-Editor von Terminal zu verwenden, können Sie ihn als mate. sudo mate /etc/apache2/httpd.conf Es ist eine gute Idee, es zu diesem Zweck vor der ersten Verwendung in ~/.bash_profile zu registrieren: export EDITOR='mate -w' Und erstellen Sie einen Symlink in Ihrem Ordner ~/bin: ln -s /Applications/TextMate.app/Contents/Resources/mate ~/bin/mate *Die obigen Informationen gelten für Benutzer von Mac OS X

Antworten (3)

Sie müssen zuerst Apache im Freigabe-Prefpane aktivieren. Aktivieren Sie „Webfreigabe“ und Ihr Webserver läuft.

Beachten Sie, dass Web Sharing seit Mountain Lion aus dem Einstellungsfenster „Sharing“ entfernt wurde, aber Apache ist immer noch enthalten. Sehen Sie sich diese Antwort an, um Apache in Mountain Lion zu steuern.

Aktivieren Sie die Webfreigabe

Um PHP zu aktivieren, müssen Sie /etc/apache2/httpd.confin Terminal.app bearbeiten. Dies erfordert Root-Anmeldeinformationen. nanoist ein sehr zugänglicher Befehlszeilen-Editor, wenn Sie sich mit vim.

sudo nano /etc/apache2/httpd.conf

ctrlSuchen Sie die Zeile (Sie können + drücken W, um die Suche in zu starten nano):

#LoadModule php5_module libexec/apache2/libphp5.so

und kommentieren Sie es aus. Als nächstes finden Sie die Zeile

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

und kommentieren Sie auch das aus, um die Unterstützung virtueller Hosts zu aktivieren.

Speichern Sie die Datei und verlassen Sie sie, indem Sie + nanodrücken , und bestätigen Sie die Änderungen, indem Sie (es) und dann drücken .ctrlXYenter

Sie können nun Ihre virtuellen Hosts in der Datei bearbeiten/etc/apache2/extra/httpd-vhosts.conf

sudo nano /etc/apache2/extra/httpd-vhosts.conf

Wichtig zu beachten ist, dass der erste definierte Host der Standardhost für nicht qualifizierte Hostnamen ist. Zum Auflösen zusätzlicher Hostnamen localhostempfehle ich, sie in /etc/hosts.

Um MySQL zu installieren, laden Sie das Installationsprogramm von der MySQL-Website herunter (64-Bit-Installationsprogramm sollte in Ordnung sein). Folgen Sie den Anweisungen, um es zu installieren.

Um schließlich PHP für MySQL zu konfigurieren, kopieren Sie den Standardwert php.ini:

sudo cp /etc/php.ini.default /etc/php.ini

Jetzt können Sie bearbeiten /etc/php.ini(erneut Root-Zugriff erforderlich) und jeden Verweis auf ersetzen /var/mysql/mysql.sockdurch /tmp/mysql.sock(den Standardspeicherort des MySQL-Sockets nach dem Ausführen des Installationsprogramms). Es gibt wahrscheinlich ungefähr 3 Verweise auf diesen Pfad.

Starten Sie abschließend Apache neu, damit die neue Konfiguration wirksam wird:

sudo apachectl restart

Alternativ können Sie Apache neu starten, indem Sie ihn im Prefpane „Sharing“ aus- und wieder einschalten.

Erledigt.

Ich würde Ihnen raten, niemals irgendeine Art von Terminal-Texteditor vorzuschlagen, verwenden Sie einfach textedit.app im Befehl anstelle von nano, weil Terminal-Texteditoren einfach barbarisch sind.
Nano ist ziemlich benutzerfreundlich, IMO, und es ist wirklich ärgerlich zu versuchen, etwas mit Root-Rechten von der GUI aus zu bearbeiten.
@XAleXOwnZX: Es tut mir leid, aber das ist nur ein schlechter Rat. Wenn überhaupt, werden Sie es aufgrund fehlender Berechtigungen fast unmöglich finden, diese Dateien in TextEdit.app zu bearbeiten, wie NReilingh auch betonte. Außerdem ist es nicht unvernünftig, von jedem (aufstrebenden) Webentwickler eine gewisse Bekanntschaft mit der Konsole zu erwarten.
funktioniert im Allgemeinen, wenn Sie es sudo
Hast du das ausprobiert @XAleXOwnZX?
Ja, aber es könnte daran liegen, dass ich meinem Konto Root-Berechtigungen gegeben habe xD, ich werde es später versuchen
@XAleXOwnZX: Bei allem Respekt, das ist wohl der schlechteste Ratschlag, den ich je auf einer Stack Exchange-Eigenschaft gesehen habe. Ich stimme zu, dass ein GUI-Texteditor wahrscheinlich ein besserer Ansatz für Leute ist, die keine Programmierer sind oder nicht viel Unix-Erfahrung haben, aber TextEdit ist die falsche Anwendung, die man empfehlen sollte, einfach weil sie standardmäßig eine Schriftart mit variabler Breite und Rich verwendet Text. Dies kann alle Arten von Problemen verursachen (über den einfachen Usability-Albtraum hinaus, Code in variabler Breite zu schreiben), die für diese Person extrem schwierig oder unmöglich zu debuggen sind.
Nun, obv, Sie würden in den Nur-Text-Modus wechseln ... (wenn dies nicht bereits der Fall war, da textedit beim Öffnen von regulären .txts auf Nur-Text umschaltet)
Ich glaube, das ist in Lion Server viel einfacher. Heutzutage ist der Preis sogar für Hobbyprojekte angemessen.
@ThorbjørnRavnAndersen hängt vom Zweck ab. Für eine Web-Dev-Box finde ich OS X Server übertrieben, und Sie müssten sich trotzdem mit Konfigurationsdateien befassen, um alles zu erreichen.
In welchem ​​​​Universum ist ein Terminal-Editor "barbarisch", imho ist TextEdit.app barbarisch. Ich würde (augenzwinkernd) ein paar schlaue Hosen vi(m) oder sed-Antworten erwarten, ich würde nur TextEdit von einem Windows-Benutzer erwarten.

Nur fürs Protokoll, eine Alternative zu MAMP ist WebStart , das es einfach macht, einen professionellen Apache 2-Webserver unter Mac OS X 10.7 Lion zu verwalten.

Hier finden Sie ein gutes Tutorial , um auch phpmyadmin und dergleichen zu aktivieren, ohne mamp zu verwenden

Antworten auf Ask Different müssen mehr als nur ein Link sein. Es ist in Ordnung, einen Link einzufügen, aber bitte fassen Sie ihn in der Antwort zusammen oder fassen Sie ihn aus. Die Idee ist, die Antwort allein stehen zu lassen.