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

时间:2016-02-17 15:44:35

标签: laravel upload server subdirectory

我正在尝试将Laravel 5项目上传到子文件夹:

  
    

的public_html /项目/

  

我在index.php中已经改变了

require __DIR__.'/../project/bootstrap/autoload.php';
$app = require_once __DIR__.'/../project/bootstrap/app.php';

在config / app.php

'url' => 'http://example.com/project',

当我尝试url时: http://example.com/project/public它是针对的 http://example.com/public

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

4 个答案:

答案 0 :(得分:9)

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

如果您因为要上传到共享主机而无法考虑将laravel项目上传到public_html文件夹,则无需这样做。
相反,试试这个:
1.在与public_html文件夹相同的级别上创建一个名为laravel(或任何您喜欢的文件夹)的文件夹。

Eg:  
/
 |--var  
    |---www
        |----laravel
        |----public_html  

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.  

5。现在转到laravel文件夹并打开server.php文件

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

现在,当您访问使用服务器配置为域的URL时,您的laravel应用程序应该像在localhost上一样工作。

注意:'url'=>'someurl'中的config/app由工匠使用,即cli,它对您的网络服务器网址没有任何影响。
希望能帮助到你。

修改
完成上述操作后,如果在尝试访问URL时获取空白页面,请递归设置存储文件夹的写入权限。存储中的所有文件夹及其子文件夹应具有为Web服务器所有者设置的权限775和组具有写入权限。

如果您不打算在存储文件夹中存储任何敏感信息,还可以将权限设置为777,以便为存储文件夹的所有权限提供读取,写入和执行访问权限。

小心linux中的文件权限,它们就像双刃剑,如果使用不当,它们可能会使你的应用容易受到攻击。要了解Linux文件权限,您可以阅读this

答案 1 :(得分:1)

完成上述步骤后。对于少数人来说,请检查读/写权限(即应该是777):

存储,供应商和引导程序>缓存

检查.htaccess文件是否在public_html文件夹中,或从公共文件夹中复制。

最后检查php的版本应该高于5.5

它对我有用。干杯!!

答案 2 :(得分:1)

问题已解决:-

转到laravelFolder / bootstrap / cache,然后重命名config.php 例如。 config.php_old并重新加载您的网站。

答案 3 :(得分:0)

我确实喜欢这个。 (我的版本是laravel 5.2)

  1. 将server.php文件的名称更改为' index.php'。
  2. 将.htaccess文件从公共文件夹复制到主目录(创建的子文件夹)
  3. RewriteEngine On 之后的内部.htaccess,我们必须添加 RewriteBase / yoursubfolder /