Frage

Ich habe von den Screencasts für Rails beeindruckt, die die integrierten Web-Server zu demonstrieren, und Datenbank-Entwicklung und Tests zu ermöglichen, auf der lokalen Maschine auftreten. Wie kann ich eine Instanz von Apache ein Projektverzeichnis als DocumentRoot auszuführen, und vielleicht die Dateien auf Port 8080 dienen (oder etwas ähnliches)?

Der Grund, warum ich gefragt bin, weil ich versuche, aus CodeIgniter werden werde, und ich möchte es für mehrere Projekte verwenden. Ich möchte nicht meine Maschine DocumentRoot mit jedem vollstopfen. Vorschläge, wie Datenbankmigrationen zu tun sind auch willkommen.


Vielen Dank für Ihre Antworten so weit. Ich möchte klarstellen, dass ich unter Mac OS X bin es wie WAMP aussieht, ist nur für Windows. Auch sieht XAMPP wie eine gute Möglichkeit, Apache und viele anderen Web-Tools zu installieren, aber ich weiß nicht, einen Weg Laden bis eine Instanz servieren ein Projektverzeichnis sehen. Mac OS X hat sowohl Apache und PHP installiert. - Ich bin nur für einen Weg, es zu erhalten, ein Projekt auf einem Nicht-Standard-Port zu dienen

Ich habe gerade MAMP Pro was tut, was ich will, aber ein minimalistischer Ansatz wäre besser, wenn es möglich ist. Hat jemand eine httpd.conf-Datei, die bearbeitet werden kann und in eine Projektverzeichnis?

Auch, sorry, dass ich in dieser Datenbank Migration Frage nur warf. Was ich hoffe, zu finden ist etwas, das mir erlauben wird, Schemaänderungen auf einen Live-Server zu schieben, ohne die vorhandenen Daten zu verlieren. Ich vermute, dass dies schwierig und stark abhängig von Umweltfaktoren.

War es hilfreich?

Lösung

Ihr Mac kommt sowohl mit einem Apache Web Server und ein Build von PHP. Es ist einer der großen Gründe, die Plattform auch durch Web-Entwickler geliebt wird.

Da Sie Code Igniter verwenden, sollten Sie PHP 5, die die Standard-Version von PHP mit 10.5 ausgeliefert ist. Wenn Sie auf einer früheren Version des Betriebssystems sind hop auf mehr als auf entropy.ch und installieren vorgesehen PHP5-Paket.

Als Nächstes werden Sie wollen Apache einzuschalten. In der Freigabeeinstellungen Panel, schalten Sie persönliche Web-Sharing. Dies wird Apache auf Ihrem lokalen Rechner starten.

Als Nächstes werden Sie einige gefälschte Entwicklung URLs einrichten möchten für Ihre Websites verwenden. Langjährige Tradition war, dass wir die gefälschte TLD .dev für dieses (ex. Stackoverflow.dev) verwenden würden. Allerdings ist .dev jetzt eine tatsächliche TLD so dass Sie wahrscheinlich dies nicht tun wollen - .localhost scheint wie eine Schwelle Defacto-Standard. Bearbeiten Sie Ihre Datei / etc / hosts-Datei und fügen Sie die folgenden Zeilen

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

Dies weist die oben URLs auf Ihrem lokalen Rechner. Der letzte Schritt ist die Konfiguration von Apache. Insbesondere virtuelles Hosting namens aktivieren, damit PHP und ein paar virtuellen Hosts einrichten. Wenn Sie die Entropie PHP-Paket verwendet, so dass PHP bereits geschehen. Wenn nicht, müssen Sie Ihre Datei http.conf wie hier bearbeiten. Grundsätzlich Sie uncommenting die Zeilen, die das PHP-Modul geladen werden.

Wenn Sie eine Änderung an Ihrer Apache-Konfiguration vornehmen, müssen Sie Apache neu starten müssen, damit die Änderungen wirksam werden. An einem Terminal-Fenster, geben Sie den folgenden Befehl

sudo apachectl graceful

Dies wird graziös Apache neu starten. Wenn Sie einen Syntaxfehler in der Konfigurationsdatei Apache gemacht haben, werden nicht neu gestartet. Sie können mit Konfigurationsprobleme hervorheben

sudo apachectl configtest

Also, mit PHP aktiviert ist, werden Sie auf NamedVirtualHosts machen wollen. Dies wird Apache reagieren auf mehrere URLs lassen. Achten Sie auf die folgende (oder ähnliche) Zeile in der Datei http.conf und Kommentar- es.

#NameVirtualHost *  

Schließlich müssen Sie Apache sagen, wo es für die Dateien für den neuen virtuellen Hosts aussehen sollte. Sie können, indem Sie folgende in Ihrer http.conf Datei so tun. HINWEIS: Ich finde, es ist ein guter Best-Practice-Config-Regeln zu brechen, wie dies in eine separate Datei und verwenden Sie die Direktive enthält, um die Änderungen aufzunehmen. Dadurch werden alle automatischen Updates von auszulöschen, um die Änderungen zu stoppen.

<VirtualHost *>
    DocumentRoot /Users/username/Sites/example.localhost
    ServerName example.localhost
    ServerAlias www.example.localhost
</VirtualHost>

Sie einen beliebigen Ordner als DocumentRoot angeben können, aber ich finde es bequem Ihren persönlichen Ordner Sites zu verwenden, da es bereits mit den richtigen Berechtigungen konfiguriert ist zum Einbinden von Dateien.

Andere Tipps

Leider Kyle, ich habe nicht genug cred müssen direkt auf Ihren Kommentar zu antworten. Aber wenn Sie jedes Projekt auf einem anderen Port serviert haben wollen, versuchen Sie Ihre virtuelle Host-Konfigurations Einrichtung genau wie Kellys oben (minus den dns Sachen), außer anstelle von 80, gibt jeden Virtualhost seine eigene Port-Nummer, unter der Annahme, dass Sie haben diesen Port zu Ihrer ports.conf Datei hinzugefügt.

NameVirtualHost *

<virtualhost *:80>
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:81>
DocumentRoot /site2/documentroot
</virtualhost>

<virtualhost *:82>
DocumentRoot /site3/documentroot
</virtualhost>

<virtualhost *:83>
DocumentRoot /site4/documentroot
</virtualhost>

Ich hoffe, das hilft: /

ich herunterladen auch die neuesten Binärdateien für jeden und setzen sie manuell auf. Ich habe es gefunden schmerzlos Prozess zu sein, solange Sie ein wenig über die Konfiguration von Apache wissen.

Auf meiner Entwicklung Maschine habe ich Apache-Setup mit namensbasierte Virtual Hosting . Ich habe auch ein dyndns.org Konto, die meine Entwicklung Domain zu meinem lokalen Rechner abbildet. DynDNS bietet eine Wildcard Domain und damit virtuelle Hosts auf Basis unter Verwendung von Namen kann ich einfach so viele Seiten erstellen (mit separatem dokumentieren Wurzeln) für so viele Entwicklungsdomänen, wie ich will, alle eine Apache-Instanz ausgeführt wird.

z. Apache-Konfiguration für die virtuellen Hosts könnte sein, so etwas wie

NameVirtualHost *:80

<virtualhost *:80>
ServerName site1.mydyndns.dyndns.org
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:80>
ServerName site2.mydyndns.dyndns.org
DocumentRoot /site2/documentroot
</virtualhost>

Das war der schnellste und einfachste Weg für mich leicht viele Entwicklungsstandorte auf meinem lokalen Rechner aufrechtzuerhalten.

Ich hoffe, das macht Sinn.

Cheers, Kelly.


Ich verwende Macos nicht, aber ich Apache verwenden. In meinem Apache-Konfigurationsdatei (auf seine in der Regel bei /etc/apache2/apache2.conf Linux), suchen Sie nach einem Verweis auf eine Datei mit dem Namen ports.conf. Finden Sie diese Datei und fügen Sie die Zeile

Listen 8080

Dann den Apache-Prozess neu starten. Danach sollten Sie im Geschäft. Ich im Voraus entschuldigen, wenn dies nicht auf einem Mac funktioniert:)

Sie können einen niedrigen vorne Setup-Paket verwenden, wie zum Beispiel XAMPP und führen Sie es als separate Instanz. Es gibt viele andere ähnliche Projekte auch.

Für PHP haben Sie mehrere hochwertige Pakete für die Bereitstellung von Apache + MySQL + PHP, wie WAMP und XAMPP . Persönlich lade ich die neuesten Binärdateien von jedem und manuell installieren mehr feinkörnige Kontrolle zu haben. Es gibt viele Online-Tutorials auf, wie das zu handhaben.

Datenbank Migrationen sollte einfach sein - Dump die Datenbank auf dem Server, entweder in der Befehlszeile oder über eine Schnittstelle wie PHPMyAdmin , und exportieren es wieder auf ähnliche Weise (phpMyAdmin ist empfehlenswert, wenn Sie noch keine Erfahrung mit der Mysql Befehlszeile haben).

Sie können mit MAMP Pro aber die kostenlose Version ist auch eine sehr gute Wahl. Holen Sie sich hier: http://www.mamp.info/en/mamp.html

ich empfehlen könnte eine separate LAMP virtuelle Appliance für jede Entwicklungsumgebung mit denen Sie experimentieren möchten. Führen Sie sie auf VMware Server oder VirtualBox.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top