这在共享主机上非常容易。
第 1 步:了解您的文件夹结构。您的共享主机的布局通常应如下所示:
/
username
home
public_html
subdomain-name
laravel-files (optional)
...other folders etc
如您所知,您网站的所有公共文件都将位于您的 public_html 文件夹中。
注意:有时子域会在 public_html 文件夹中。没关系,但我建议在根目录上方创建您的子域文件夹以获得额外的安全性。您可以在 cPanel 中轻松完成此操作,但在创建子域时更改子域的路径。
第 2 步:上传您的 Laravel 文件到根目录上方(public_html 上方)或子文件夹中(如果您希望它更干净)。
对于一个小项目,我通常将文件上传到上面的“主”文件夹中。但是为了更简洁的结构,您可能希望在该“主”文件夹中创建一个名为“laravel-files”的文件夹。
接下来是如何在“laravel-files”文件夹中执行此操作。如果您将它们上传到“home”,那么您需要做的就是删除下面对“/laravel-files”的所有引用。
第 3 步:编辑您的 public/index.php 和 bootstrap/paths.php 文件:
在paths.php
改变
'app' => __DIR__.'/../app',
至:
'app' => __DIR__.'/../laravel-files/app',
改变:
'public' => __DIR__.'/../public',
至:
'public' => __DIR__,
改变:
'base' => __DIR__.'/..',
至:
'base' => __DIR__.'/../laravel-files',
改变:
'storage' => __DIR__.'/../app/storage',
至:
'storage' => __DIR__.'/../laravel-files/app/storage',
在 index.php 中
改变:
require __DIR__.'/../bootstrap/autoload.php';
至:
require __DIR__.'/../laravel-files/bootstrap/autoload.php';
改变:
$app = require_once __DIR__.'/../bootstrap/start.php';
至:
$app = require_once __DIR__.'/../laravel-files/bootstrap/start.php';
现在您需要做的是,正如我所说,将您的 laravel 项目上传到您的“laravel 文件”文件夹。
您唯一不会上传的内容是您的 laravel“公共”文件夹的内容,而应该将其上传到您的“子域名”文件夹(这包括您的 index.php 和所有 css js 文件等)。
希望这可以帮助!
请注意我的回答是基于这个问题:How to install Laravel 4 to a web host subfolder without public exposing /app/ folder? 但根据您的情况量身定制。