2016-02-17 69 views
2

我試圖上傳Laravel 5項目到子文件夾爲:上傳Laravel 5到服務器的子文件夾

的public_html /項目/

我在index.php文件

改變
require __DIR__.'/../project/bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../project/bootstrap/app.php'; 

in config/app.php

'url' => 'http://example.com/project', 

當我嘗試網址爲: http://example.com/project/public它是針對 http://example.com/public

是什麼把它上傳到服務器的方式。任何人都可以幫助我,因爲我嘗試了很多選擇。

+0

更改項目的根目錄'的public_html /項目/ public'。你不需要改變別的東西。 –

回答

6

在public_html(public)文件夾中上傳整個laravel項目並不是一個好主意。公用文件夾中的文件具有不受限制的訪問權限。

如果您不想考慮將laravel項目上載到public_html文件夾,因爲您想上傳到共享主機,則不需要這樣做。
請改爲嘗試此操作:
1.在與public_html文件夾相同的級別上創建一個名爲laravel(或其他任何您喜歡的文件夾)的文件夾。

Eg: 
/
|--var 
    |---www 
     |----laravel 
     |----public_html 

2.複製,除了從您的laravel項目在laravel文件夾中的文件夾public(服務器主機上)的每一件事情。
3.打開laravel項目的公共文件夾,所有內容複製並粘貼在public_html文件夾(在服務器主機上)
4.現在在public_html文件夾中打開文件index.php和:

Change: 
require __DIR__.'/../bootstrap/autoload.php'; 
To: 
requrie require __DIR__.'/../laravel/bootstrap/autoload.php'; 
And 
Change: 
$app = require_once __DIR__.'/../bootstrap/app.php'; 
To: 
$app = require_once __DIR__.'/../laravel/bootstrap/app.php'; 
Save and close. 

5。現在去laravel文件夾,打開server.php文件

Change: 
require_once __DIR__.'/public/index.php'; 
To: 
require_once __DIR__.'../public_html/index.php'; 
Save and close. 

現在,當你訪問你配置爲您的服務器的域的網址,您laravel應用程序應該工作就像它在你的本地主機上一樣。

注意:config/app中的'url'=>'someurl'被工匠使用,即cli,它對您的web服務器url沒有任何影響。
希望它有幫助。

編輯
完成上述之後,如果你得到一個空白頁,當您試圖訪問的URL,設置寫入權限的存儲文件夾遞歸.IE存儲中的所有文件夾及其子文件夾應該有權限775集爲Web服務器所有者和組提供寫入權限。

如果您不打算將任何敏感信息存儲在存儲文件夾中,您還可以將權限設置爲777,以爲存儲文件夾提供對所有存儲文件夾的讀取,寫入和執行訪問權限。

要小心linux中的文件權限,它們就像是雙刃劍,如果使用不當,可能會讓你的應用程序容易受到攻擊。爲了解Linux文件權限,您可以閱讀this

+0

謝謝。我照你所說的做了,但現在我正在變得空白。我已經對存儲,供應商和引導程序>緩存進行了讀/寫訪問。這將是錯誤。 –

+0

這通常是由於缺少對存儲的寫入權限而發生的。請確保存儲文件夾中的每個文件夾及其所有子文件夾都具有針對Web服務器組或用戶的寫入權限。有時可以很容易地忘記遞歸設置寫權限,即存儲文件夾本身具有寫權限,但其子文件夾不具有寫權限。校驗。另外,如果你使用devtools,它會顯示任何錯誤? – Donkarnash

+0

這對我有效。但是我使用的是Laravel 5.5.13,但我沒有意識到這一點,但我必須設置(1)PHP>> = 7.0 &&(2)確保爲數據庫授予MySQL數據庫用戶權限&&(3)確保做一個手動的php遷移(從本地導出並導入到遠程)。我沒有必要將權限設置爲777。 – Noitidart

0

完成上述步驟之後。做讀/寫權限檢查(即它應該是777)爲少數folcers:

存儲,供應商和引導>緩存

檢查.htaccess文件,如果它的存在在的public_html文件夾或複製公用文件夾。

終於檢查php的版本應該高於5.5

它對我很有用。乾杯!!

0

我的確如此。 (我的版本是laravel 5.2)

  1. 將server.php文件的名稱更改爲'index.php'。
  2. 從公共文件夾複製.htaccess文件到主目錄(創建子文件夾)
  3. 而且裏面的.htaccess後RewriteEngine敘述在我們必須添加 RewriteBase/yoursubfolder/
相關問題