我正在尝试找到将我的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类,但遗憾的是没有工作!
答案 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
│