我正在尝试将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
将其上传到服务器的方法是什么。任何人都可以帮助我,因为我尝试了很多选择。
答案 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)