将Laravel 5上传到服务器子文件夹

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

将它上传到服务器的方法是什么?任何人都可以帮助我,因为我尝试了很多选项.

Don*_*ash 9

将整个laravel项目上传到public_html(public)文件夹中并不是一个好主意.公用文件夹中的文件具有不受限制的访问权限.

如果您不得不考虑将laravel项目上传到public_html文件夹,因为您想要上传到共享主机,则没有必要这样做.
而是尝试这样做:
1.在与public_html文件夹相同的级别上创建一个名为laravel(或任何你喜欢的东西)的文件夹.

Eg:  
/
 |--var  
    |---www
        |----laravel
        |----public_html  
Run Code Online (Sandbox Code Playgroud)

2. publiclaravel文件夹(在服务器主机上)的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文件权限,您可以阅读此内容