将整个 Laravel 项目上传到 public_html(公共)文件夹中并不是一个好主意。public 文件夹中的文件可以被任意访问。
如果你因为要上传到共享主机而被限制只能考虑将 Laravel 项目上传到 public_html 文件夹中,那么这并非必须。
可以尝试以下操作:
1. 在与 public_html 文件夹同级别创建一个名为 laravel(或其他你喜欢的名称)的文件夹。
Eg:
/
|
|
|
|
2. 从您的 Laravel 项目中除了 public
文件夹之外,复制所有内容到服务器主机上的 laravel
文件夹中。
3. 打开您的 Laravel 项目的 public 文件夹,复制全部内容并粘贴到服务器主机上的 public_html
文件夹中。
4. 现在打开 public_html
文件夹中的 index.php
文件,并:
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应用程序应该与在本地主机上运行的一样工作。
注意:config/app
中的'url'=>'someurl'
被Artisan即CLI使用,对您的Web服务器URL没有任何影响。
希望这有所帮助。
编辑
完成上述操作后,如果在尝试访问URL时出现空白页,则递归设置存储文件夹的写权限,即存储和其子文件夹中的所有文件夹都应将权限775
设置为Web服务器所有者和组具有写权限。
如果您不打算在存储文件夹中存储任何敏感信息,也可以将权限设置为777
以使所有人都具有存储文件夹的读、写和执行访问权限。
在Linux中要小心文件权限,它们就像双刃剑,如果使用不正确,可能会使您的应用程序易受攻击。要了解Linux文件权限,请阅读这里。
public_html/project/public
。您不需要更改其他任何内容。 - Jilson Thomas