2016-08-09 71 views
0

Ich habe ein Projekt läuft unter PHP, aber ich habe einen Drittanbieter-Unterordner (Download-Ordner), die ich in das aktuelle Projekt hinzufügen möchte.Wie Unterordner mit Laravel in PHP-Rootfolder ausführen?

Bedeutung, Stammordner = testlaravel => www.testlaravel.com mit sub folder = testlaravel/download => www.testlaravel.com/download

Gibt es trotzdem kann ich das tun?

Antwort

0

Verwenden Sie Apache oder Nginx? Wenn Apache, müssen Sie Ihre vhost-Datei konfigurieren, um Laravel aus einem Unterordner zu bedienen. Insbesondere müssen Sie konfigurieren, dass, wenn testlaravel.com/download URI angefordert wird, sollte es mit /home/testlaravel/download/public Verzeichnis (im Grunde anders root/home Standort) bedient werden.
Sie müssen auch mod_rewrite verwenden, um Ihre URL-Anforderungen in den Unterordner von index.php von oben zu schreiben (und auch URLs zu verschönern).

ähnlich Ihre Konfiguration in vhost für Ihre Haupt-Website wird anders sein (so wird es zwei Konfigurationen sein, ein für Ihre Haupt-Website und eine für Laravel Anfragen)


Die oben sollte da gut funktionieren ihre getan gleiche Art und Weise in Nginx, für die ich ein volles Beispiel dafür, wie seine conf-Datei

Hier aussehen sollte enthalten sind, ist, wie ich ein Setup-ed mein location Block, der perfekt für mich funktioniert:

location ^~ /facebookschedule { 
alias /home/netcans/facebookschedule/public; 
try_files $uri $uri/ @foobar; 

location ~ \.php { 
fastcgi_pass unix:/var/run/php5-fpm.sock; 
fastcgi_split_path_info ^(.+\.php)(.*)$; 
include /etc/nginx/fastcgi_params; 
fastcgi_param SCRIPT_FILENAME /var/wwww/facebookschedule/public/index.php; 
} 
} 

location @foobar { 
rewrite /facebookschedule/(.*)$ /facebookschedule/index.php?/$1 last; 
} 

Quelle: http://shubhank.gaur.io/setup-laravel-5-in-subfolder-with-nginx/

0

ich die folgende Konfiguration verwenden, die einfacher als die meisten anderen veröffentlichten Lösungen ist, und welche erfordert keine Pfade/Ordner hartcodiert zu sein.

Wir stellen einfach alle Anfragen mit public/ voran und entfernen sie dann aus SCRIPT_NAME, damit die Anwendung ihre Umgebung automatisch erkennen kann.

location ~ /myproject/(.*) { 
    rewrite /myproject(.*) /myproject/public/$1 break; 
    try_files $uri /myproject/public/index.php$is_args$args; 

    location ~ /index\.php$ { 
     include /etc/nginx/fastcgi.conf; 
     fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
     fastcgi_param SCRIPT_NAME /myproject/index.php; 
    } 
}