K M*_*ary 4 upload subdirectory laravel server
我正在尝试将Laravel 5项目上传到子文件夹:
的public_html /项目/
我在index.php中已经改变了
require __DIR__.'/../project/bootstrap/autoload.php';
$app = require_once __DIR__.'/../project/bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)
在config/app.php中
'url' => 'http://example.com/project',
Run Code Online (Sandbox Code Playgroud)
当我尝试url时:http: //example.com/project/public它被定向到 http://example.com/public
将它上传到服务器的方法是什么?任何人都可以帮助我,因为我尝试了很多选项.
将整个laravel项目上传到public_html(public)文件夹中并不是一个好主意.公用文件夹中的文件具有不受限制的访问权限.
如果您不得不考虑将laravel项目上传到public_html文件夹,因为您想要上传到共享主机,则没有必要这样做.
而是尝试这样做:
1.在与public_html文件夹相同的级别上创建一个名为laravel(或任何你喜欢的东西)的文件夹.
Eg:
/
|--var
|---www
|----laravel
|----public_html
Run Code Online (Sandbox Code Playgroud)
2. public从laravel文件夹(在服务器主机上)的laravel项目中复制除文件夹之外的所有内容.
3.打开laravel项目的公用文件夹,复制所有内容并粘贴到public_html文件夹中(在服务器主机上)
4.现在打开index.php文件public_html夹中的文件,然后:
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.
Run Code Online (Sandbox Code Playgroud)
5.现在转到laravel文件夹并打开server.php文件
Change:
require_once __DIR__.'/public/index.php';
To:
require_once __DIR__.'../public_html/index.php';
Save and close.
Run Code Online (Sandbox Code Playgroud)
现在,当您访问使用服务器配置为域的URL时,您的laravel应用程序应该像在localhost上一样工作.
注意:'url'=>'someurl' 在config/app使用由工匠即CLI,它不会对您的Web服务器的URL任何影响.
希望能帮助到你.
编辑
完成上述操作后如果在尝试访问URL时获取空白页面,请递归设置存储文件夹的写入权限.存储中的所有文件夹及其子文件夹应具有775为Web服务器所有者和组设置的权限允许.
777如果您不打算在存储文件夹中存储任何敏感信息,还可以将权限设置为对存储文件夹的所有内容授予读,写和执行权限.
小心linux中的文件权限,它们就像双刃剑,如果使用不当,它们可能会使你的应用容易受到攻击.要了解Linux文件权限,您可以阅读此内容