2013-10-09 40 views
2

我將在共享Web主機上將laravel 4部署到一個子域中,我對要做什麼感到困惑。我在一個hostpapa帳戶上工作,但不滿意測試環境的配置和交換提供商。在子域中部署laravel 4應用程序

我創建下列文件夾:

域/私營/安裝MyApps/golfmanager

我放在這裏的所有文件和文件夾除公用文件夾

我有那麼放在公共文件夾的內容到這個文件夾:

域/子域/ golfmanager/httpddocs

我不知道是什麼現在就做!我知道我需要更改bootstrap/path.php中的路徑

有人可以提供一些有關此文件夾設置需要更改的指針。不想破壞它!

感謝

+0

我沒有得到一件事。爲什麼不能在公用文件夾(服務器)上放置公用文件夾內容(laravel)。你不需要爲主域和子域設置不同的設置。一個核心laravel可以處理這兩者。 – itachi

回答

1

我不知道這是要走的路,因爲,因爲你的文件夾是完全不同的,它是可行的,但你可能會需要創建符號鏈接這個工作這種方式。

Laravel應該有hiearchy您在應用程序查看該文件夾,你應該有

domain/subdomains/golfmanager/httpddocs/app 
domain/subdomains/golfmanager/httpddocs/bootstrap 
domain/subdomains/golfmanager/httpddocs/public 
domain/subdomains/golfmanager/httpddocs/vendor 

所以,我認爲你可以這樣做是爲了把一切都放到

domain/subdomains/golfmanager/httpddocs 

然後問您的域管理員將您的應用程序的文檔根設置爲

domain/subdomains/golfmanager/httpddocs/public 

這樣,當您將瀏覽器指向

http://golfmanager.yourdomain.com 

它會訪問該索引文件:

domain/subdomains/golfmanager/httpddocs/public/index.php 

這是Laravel是如何工作的。

6

這是超級簡單的共享託管。

步驟1:瞭解您的文件夾結構。您的共享主機的佈局總體上應該是這個樣子:

/ 
username 
    home 
    public_html 
    subdomain-name 
    laravel-files (optional) 
    ...other folders etc 

如你希望知道,爲您的網站所有公開的文件將在您的public_html文件夾中。

注意:有時一個子域將在public_html文件夾內。這沒關係,但我建議在根上創建你的子域名文件夾以獲得一點額外的安全性。您可以在cPanel中輕鬆地完成此操作,但是在創建子路徑時更改路徑。

第2步:如果您希望它更清潔,請將您的Laravel文件上傳到根目錄(位於public_html上方)或子文件夾中。

對於一個小項目,我通常會將文件上傳到上面的「home」文件夾中。但是對於更清潔的結構,您可能需要在名爲「laravel-files」的「home」文件夾中創建一個文件夾。

接下來的是如何在「laravel-files」文件夾中完成它。如果你把它們上傳到「home」,那麼你所要做的就是擺脫下面對「/ laravel-files」的所有引用。

第3步:編輯您的公共/ index.php文件和引導文件/文件paths.php:

在paths.php

變化

'app' => __DIR__.'/../app', 

到:

'app' => __DIR__.'/../laravel-files/app', 

變化:

'public' => __DIR__.'/../public', 

到:

'public' => __DIR__, 

變化:

'base' => __DIR__.'/..', 

到:

'base' => __DIR__.'/../laravel-files', 

變化:

'storage' => __DIR__.'/../app/storage', 

到:

'storage' => __DIR__.'/../laravel-files/app/storage', 

在的index.php

變化:

require __DIR__.'/../bootstrap/autoload.php'; 

到:

require __DIR__.'/../laravel-files/bootstrap/autoload.php'; 

變化:

$app = require_once __DIR__.'/../bootstrap/start.php'; 

到:

$app = require_once __DIR__.'/../laravel-files/bootstrap/start.php'; 

現在,你需要做的是,正如我所說上傳laravel項目,你的「laravel文件」文件夾中。

你不會上傳的唯一東西是你的laravel「public」文件夾的內容,它應該被上傳到你的「subdomain-name」文件夾(這包括你的index.php和所有的css js文件等) 。

希望這會有所幫助!

請注意我的回答是基於這個問題:How to install Laravel 4 to a web host subfolder without publicly exposing /app/ folder?但是爲您的情況量身定製。

+0

嗨=很好的答案謝謝。我跟隨我的服務提供商完成了這項工作,我無法像使用服務器一樣使用您的方法。我需要將所有內容放在子域文件夾中並修改.htaccess。我會很快發佈解決方案到我的問題 – Ray

+0

@Ray不用擔心,如果你沒有任何運氣,那麼嘗試使用共享主機,使用cPanel - 你可以得到一個幾乎沒有這些天,你可以使用FileZilla通過ftp進行連接,你不會擔心我的方法。所有最大的共享託管公司都使用cPanel類型的設置:) – Josh

+0

我只需在index.php中進行更改,並在paths.php中對公共進行更改,而不是其餘部分。但是,這確實幫助我解決了這個問題。 – Matt

1

喬希的答案是非常有幫助的,但它沒有工作或沒有匹配我的情況。 我會調整我的解決辦法像他的人,所以每個人都可以很容易地遵循:

第1步:我選擇的文件夾結構:

/ 
home 
    username 
    public_html 
     subdomain-name 
    laravel-files 
    ...other folders etc 

注:我的子域是的public_html文件夾內。

第2步:上傳我的Laravel文件的根目錄(以上/出的public_html)的子文件夾上面:laravel-文件(//首頁/用戶名/ laravel文件)

第3步:編輯你的公開/ index.php文件和引導文件/文件paths.php:

在paths.php

不要改變:

'app' => __DIR__.'/../app', 

到:

'app' => __DIR__.'/../../laravel-files/app', 

,因爲它是無用的 - 它會評估以下路徑:

"/home/username/laravel-files/bootstrap/../../laravel-files/app" 

所以默認是不夠的,只是走出引導並進入應用程序。

相反,變化:

'public' => __DIR__.'/../public', 

到:

'public' => __DIR__.'/../../public_html/subdomain-name', 

另外,不改變: '基地'=>DIR '/ ..', 「存儲。 '=>DIR。'/ ../app/storage',

in index.php

變化:

require __DIR__.'/../bootstrap/autoload.php'; 

到:

require __DIR__.'/../../laravel-files/bootstrap/autoload.php'; 

和變化:

$app = require_once __DIR__.'/../bootstrap/start.php'; 

到:

$app = require_once __DIR__.'/../../laravel-files/bootstrap/start.php'; 

上傳LA ravel項目到「laravel-files」文件夾,公用文件夾除外。 「公共」文件夾的內容應改爲上傳到「子域名」文件夾。

+0

工程像魅力。 –

相關問題