在本地安装LARAVEL 5与共享主机目录相同(部署L5共享主机解决方案)

时间:2015-11-13 10:31:45

标签: laravel-5 artisan

我正在尝试找到将我的Laravel应用程序组织为共享托管目录的方法。

内部示例" 服务器"夹

1.安装新的laravel应用

composer create-project laravel/laravel main-app --prefer-dist

2.Move" Public"目录上和main-app文件夹旁边。重命名为public_html

3.Inside public_html文件夹还可以创建新的" app"保存所有文件的文件夹,如index.php

摘要

server │
└───main-app │ │ app │ │ bootstrap │ │ ...... │ └───public_html │ app │ │─── index.php │

这就是我需要做的。但我无法做到这一点! 每次我尝试运行工匠我都

  

chdir()没有这样的文件或目录(错误2)

使用Laravel 4,我能够编辑path.php,就是这样。但是L5看起来就像退后一步!

我已经尝试过扩展Application.php类,但遗憾的是没有工作!

1 个答案:

答案 0 :(得分:1)

以下是解决方案!

1.在app文件夹中创建MyApp.php类以扩展Applicaton.php类

<?php 
namespace App;

class MyApp  extends \Illuminate\Foundation\Application
{
    public function publicPath()
    {
        return $this->basePath.DIRECTORY_SEPARATOR.'/../public_html/app';
    }
}

2.Inside bootsrap / app使用自己的类

确保注释掉旧的! ,你不再需要了

// $app = new Illuminate\Foundation\Application(
//     realpath(__DIR__.'/../')
// );

$app = new App\MyApp(
realpath(__DIR__.'/../')
);

3.将server.php内的更改设为target index.php

if ($uri !== '/' && file_exists(__DIR__.'/../public_html/app'.$uri)) {
      return false;
}


require_once __DIR__.'/../public_html/app/index.php';

4.在index.php中进行更改

require __DIR__.'/../../main-app/bootstrap/autoload.php';

$app = require_once __DIR__.'/../../main-app/bootstrap/app.php';

完成

现在工匠和Index.php和共享主机一样生活!

server │
└───main-app │ │ app │ │ bootstrap │ │ ...... │ └───public_html │ app │ │─── index.php │