2016-02-17 114 views
0

我想將Laravel 5應用程序部署到我的Web服務器根目錄的子目錄(在這種情況下,因爲我們使用的是Apache,所以公共根目錄爲/public_html)。 Web服務器在根公用文件夾中已經有一個非Laravel站點。在公共根目錄的子目錄中部署Laravel 5項目

有關此主題的大多數問題歸結爲使用子域而不是子目錄,但是由於我們使用的組織SSL證書沒有子域覆蓋,因此我們無法執行此操作。

我意識到我們仍然可以將public_html以上的非公開資源,一個子目錄中的公共資源,然後破解所需的路徑,但我還沒有找到任何具體的指導如何實現這一目標。這個用例是否有標準方法?

+0

這對laravel 4,但是這可能會幫助您:http://stackoverflow.com/questions/19923091/avoid-public-folder-of-laravel-and-open-directly-the-root-in -網絡服務器 – AntoineB

回答

0

您可以創建一個子文件夾爲public_html/new_project(或根據您的編碼約定給出的任何名稱)。併爲非公共資源創建與public_html相同級別的另一個文件夾,例如:new_project_resources

  1. 現在從您的laravel project複製所有的一切,除了public文件夾,並把它上傳到new_project_resources folder (on server)
  2. 打開laravel projectpublic文件夾並複製所有內容並將其上傳到public_html/new_project文件夾(在服務器上)。
  3. 現在打開index.phppublic_html/new_project文件和

    Change: 
    require __DIR__.'/../bootstrap/autoload.php'; 
    To: 
    require __DIR__.'/../../new_project_resources/bootstrap/autoload.php'; 
    And 
    Change: 
    $app = require_once __DIR__.'/../bootstrap/app.php'; 
    To: 
    $app = require_once __DIR__.'/../../new_project_resources/bootstrap/app.php'; 
    Save and Close. 
    
  4. 現在去new_project_resources文件夾,打開server.php文件

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

    事情應該從現在的子文件夾的工作。 跳它有幫助。