2016-08-09 70 views
0

我有一個項目運行在PHP下,但我有一個第三方子文件夾(下載文件夾),我想要添加到當前項目。如何在php rootfolder中使用laravel運行子文件夾?

意義,根文件夾= testlaravel => www.testlaravel.com 與子文件夾= testlaravel /下載=> www.testlaravel.com/download

反正我能做到這一點?

回答

0

你使用的是Apache還是Nginx?如果是Apache,你需要配置你的vhost文件來從一個子文件夾爲Laravel服務。特別是,您需要配置當請求testlaravel.com/download URI時,它應該使用/home/testlaravel/download/public目錄(基本上不同的根/本地位置)提供服務。
您還需要使用mod_rewrite將您的URL請求重寫爲從上面位置index.php供應的子文件夾(並且還需要對URL進行美化)。

同樣,在虛擬主機配置爲您的主要網站將是不同的(所以會有兩種配置,一個是你的主要網站,另一個laravel請求)


上面應該工作,因爲只是罰款它做同樣的方式在Nginx的,爲此,我已包括其的conf文件應該如何看一個完整的例子

下面是我設置-ED我location塊這是完全爲我工作:

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; 
} 

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

0

我使用下面的配置,它比大多數其它解決方案公佈簡單,並且不需要任何路徑/文件夾進行硬編碼。

我們只需以public/爲前綴,然後將其從SCRIPT_NAME中刪除,以便應用程序可以正確自動檢測其環境。

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; 
    } 
}