2013-06-16 7 views
12

Nach viel faffing über habe ich Laravel mit XAMPP arbeiten. Ich kann jedoch nicht auf Verzeichnisse im Ordner htdocs über localhost zugreifen. Versuch, auf eine Datei zuzugreifen, gibt Object not found! zusammen mit The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.XAMPP localhost gibt das Objekt nicht gefunden nach der Installation von Laravel

Die Änderungen, die ich vorgenommen habe, um Laravel arbeiten, scheint jetzt wie eine Unschärfe. Die einzige Sache, an die ich mich erinnere, ist die Bearbeitung der hosts Datei, um den virtuellen Host zu aktivieren, indem man 127.0.0.1 laravel.dev in der hosts Datei hinzufügt (mit einem Mac btw). Ich habe der Datei httpd-vhost.conf auch einen virtuellen Host hinzugefügt.

Ich habe die obigen Änderungen rückgängig gemacht, aber es machte keinen Unterschied.

Irgendwelche Gedanken darüber, was schief gelaufen ist?

Danke.

Zerstreuung Verwirrung Nur dachte ich würde klären, was meine Erfahrung ist. Vor der Installation Laravel 4 konnte ich auf alle meine Projekte mit localhost/someProjectName zugreifen, aber jetzt schlägt es fehl.

Ich versuche zu identifizieren, welche Änderung dieses Verhalten verursacht hat. keine Probleme beim Zugriff auf mein Laravel Projekt (mein Mapping ermöglicht es mir, den Zugriff darauf über laravel.dev)

+0

@asipiringCodeArtisan Ich erlebe auch exakt die gleichen Fehler. Ich habe Laravel mit Composer installiert und die Laravel-basierte Seite mit 'artisan serve' bedient. Seitdem funktionieren meine existierenden (nicht Laravel) Projekte nicht mehr wie beabsichtigt in Vhosts. Hast du das am Ende behoben? – nickspiel

+0

@nickspiel: Ich vermute, das hat etwas mit der virtuellen Host-Konfiguration zu tun. Ich habe keine Lösung, ich weiß nur, wo das Problem liegt. – kaizenCoder

+0

Yeah du warst richtig, es stellte sich heraus, dass ich einen Tippfehler in einem Pfad für meine Protokolldateien hatte. - Schülerfehler. – nickspiel

Antwort

2

In Ihrem Apache http.conf, finden die DocumentRoot Zeile und fügen Sie das Unterverzeichnis /public am Ende Btw, ich habe.

Sobald dies geschehen ist und Sie Apache neu gestartet haben, können Sie auf alles zugreifen, was in Ihrem htdocs/public-Ordner (einschließlich Unterverzeichnissen dieses Ordners) enthalten ist, zusammen mit allen Routen, die Sie in Laravel definiert haben.

Laravel wurde so eingerichtet, dass der Code und die Dateien geschützt werden, indem sie nicht in dem Ordner gespeichert werden, der im Web bereitgestellt wird.

+0

hey da, ich versuche tatsächlich, auf meine nicht von Laravel getriebenen Projekte zuzugreifen. Ich kann erfolgreich auf mein Laravel-Projekt zugreifen, aber andere scheinen zu scheitern. – kaizenCoder

1

Ich weiß nicht, ob Sie L4 oder L3 laufen. Allerdings Start CLI und

cd $ ./path/to/project

Dann für L4:

$ php artisan serve 

Für L3:

$ php -S localhost:8000 -t public 

Jetzt können Sie Gehen Sie zu localhost:8000 und sehen Sie Ihre Anwendung.

+0

Dies funktioniert nur mit PHP> = 5.4 –

15

Schauen Sie in Ihre /etc/httpd.conf Datei und sehen Sie, ob Sie virtuelle Hosts aktiviert haben.

Wenn ja, überprüfen Sie Ihre etc/extra/httpd-vhosts.conf Datei. Möglicherweise haben Sie bereits einen VirtualHost eingerichtet.

EDIT: Ich habe festgestellt, dass, sobald Sie auf Virtual Hosts aktivieren, muss XAMPP eine Standard-Virtualhost für Ihre grundlegenden htdocs Dateien eine Standardvirtualhost (am Ende der Datei) wie so

Versuchen Zugabe:

<VirtualHost *:80> 
ServerName localhost 
DocumentRoot "/Applications/XAMPP/htdocs" 
<Directory "/Applications/XAMPP/htdocs"> 
Options Indexes FollowSymLinks Includes execCGI 
AllowOverride All 
Order Allow,Deny 
Allow From All 
</Directory> 
</VirtualHost> 
+3

Sie sollten vielleicht versuchen zu erklären, was Sie hier tun, anstatt einfach Anweisungen zu geben - so kann der Benutzer, der die Frage stellte, auch lernen: –

+0

Ich muss hinzufügen diese Zeile: "Erfordern alle gewährt" nach "Erlauben von allen" – Phuong

3

Es klingt für mich wie es ein Problem mit der Art ist, wie Ihre Verzeichnisse konfiguriert sind. Stellen Sie sicher, dass Sie einen virtuellen Host erstellen (wenn Sie Apache verwenden), der auf den Ordner public in Ihrem Anwendungsverzeichnis verweist.

Zum Beispiel, wenn Ihr Laravel Projekt ist unter/Applications/XAMPP/htdocs/Laravel dann einen virtuellen Host wie folgt aufgebaut:

<VirtualHost *:80> 
    DocumentRoot /Applications/XAMPP/htdocs/Laravel/public 

    # Other directives here 
</VirtualHost> 

Additionaly, wenn Sie mit PHP> = 5.4 arbeiten, SSH in den Anwendungsordner und führen Sie

(Stellen Sie sicher, dass Ihre PHP-ausführbare Datei in Ihrer PATH-Variable ist). Dann gehen Sie zu localhost: 8000 und Sie sollten Ihre Anwendung laufen lassen. Wenn Sie diesen Befehl ausführen, wird der integrierte PHP-Webserver ausgeführt und Sie müssen nicht mehr an den virtuellen Hosts arbeiten.

1

Sie haben ein Problem, weil das Objekt wirklich nicht in Ihrem Verzeichnis htdocs existiert. Sie müssen xampp nach localhost oder 127.0.0.1 nicht anhängen, weil xampp es als ein Objekt oder einen Ordner unter htdocs behandeln wird.

, wenn Sie Ihr Blog zugreifen, stellen Sie sicher, dass Sie einen Blog-Ordner unter htdocs haben und setzen in Ihrer URL localhost/blog

Verwandte Themen