将整个 laravel 项目上传到 public_html (public) 文件夹不是一个好主意。公用文件夹中的文件具有不受限制的访问权限。
如果您因为想上传到共享主机而被限制考虑将 laravel 项目上传到 public_html 文件夹,那么没有必要这样做。
试试这个:
1. 在 public_html 文件夹的同一级别上创建一个名为 laravel(或任何你喜欢的东西)的文件夹。
Eg:
/
|--var
|---www
|----laravel
|----public_html
2。从您的 laravel 项目中的 laravel 文件夹(在服务器主机上)中复制除 public 文件夹之外的所有内容。
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 应用程序应该可以像在 localhost 上一样工作。
注意:config/app 中的 'url'=>'someurl' 由 artisan 即 cli 使用,它对您的网络服务器 URL 没有任何影响。
希望能帮助到你。
编辑
完成上述操作后,如果您在尝试访问 url 时出现空白页面,请递归设置存储文件夹的写入权限。即存储中的所有文件夹及其子文件夹应具有权限 775 为网络服务器所有者和组设置有写权限。
如果您不打算在存储文件夹中存储任何敏感信息,您还可以将权限设置为777,以授予对存储文件夹的所有读取、写入和执行权限。
注意 linux 中的文件权限,它们就像一把双刃剑,如果使用不当,可能会使您的应用容易受到攻击。要了解 Linux 文件权限,您可以阅读 this