在子域中部署laravel 4应用程序

在子域中部署laravel 4应用程序,laravel,subdomain,laravel-4,Laravel,Subdomain,Laravel 4,我将要在共享web主机上将Laravel4部署到一个子域中,我对该做什么感到有点困惑。我在hostpapa帐户上运行它,但对测试环境的配置和交换提供程序不满意 我已创建以下文件夹: 域/专用/myApps/golfmanager 除了公用文件夹,我把所有的文件和文件夹都放在这里了 然后,我将公用文件夹的内容放入此文件夹: 域/子域/高尔夫管理器/httpddocs 我不知道现在该怎么办!我知道我需要在bootstrap/path.php中更改路径 是否有人可以提供一些关于此文件夹设置需要更改的内

我将要在共享web主机上将Laravel4部署到一个子域中,我对该做什么感到有点困惑。我在hostpapa帐户上运行它,但对测试环境的配置和交换提供程序不满意

我已创建以下文件夹:

域/专用/myApps/golfmanager

除了公用文件夹,我把所有的文件和文件夹都放在这里了

然后,我将公用文件夹的内容放入此文件夹:

域/子域/高尔夫管理器/httpddocs

我不知道现在该怎么办!我知道我需要在bootstrap/path.php中更改路径

是否有人可以提供一些关于此文件夹设置需要更改的内容的指针。我不想打破它


谢谢

我不确定这是不是一种方法,因为,由于您的文件夹完全不同,这是可行的,但您可能需要为此创建符号链接才能以这种方式工作

Laravel应该有你在应用程序中看到的文件夹层次结构,你应该有

domain/subdomains/golfmanager/httpddocs/app
domain/subdomains/golfmanager/httpddocs/bootstrap
domain/subdomains/golfmanager/httpddocs/public
domain/subdomains/golfmanager/httpddocs/vendor
那么,我认为你能做什么来穿上所有的衣服呢

domain/subdomains/golfmanager/httpddocs
并要求域管理员将应用程序的文档根目录设置为

domain/subdomains/golfmanager/httpddocs/public
这样,当您将浏览器指向

http://golfmanager.yourdomain.com
它将访问此索引文件:

domain/subdomains/golfmanager/httpddocs/public/index.php

这就是Laravel的工作原理。

这在共享主机上非常容易

第1步:了解文件夹结构。共享主机的布局通常应如下所示:

/
 username
   home
     public_html
     subdomain-name
     laravel-files (optional)
     ...other folders etc
如您所知,您网站的所有公共文件都将位于您的公共html文件夹中

注意:有时子域将位于公共html文件夹中。这没关系,但我建议在根目录上方创建子域文件夹,以增加一点安全性。在cPanel中可以很容易地做到这一点,但是在创建子域时可以更改子域的路径

第2步:将您的Laravel文件上传到根目录(public_html)上方或子文件夹中(如果您希望它更干净)

对于一个小项目,我通常会将文件上传到上面的“home”文件夹中。但对于更干净的结构,您可能希望在“主”文件夹中创建一个名为“laravel文件”的文件夹

下面是如何在“laravel文件”文件夹中执行此操作。如果您将它们上传到“home”,那么您所需要做的就是删除下面对“/laravel文件”的所有引用

第3步:编辑public/index.php和bootstrap/path.php文件:

在path.php中

改变

'app' => __DIR__.'/../app',
'app' => __DIR__.'/../app',
致:

更改:

'public' => __DIR__.'/../public',
'storage' => __DIR__.'/../app/storage',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
'public' => __DIR__.'/../public',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
致:

更改:

'base' => __DIR__.'/..',
致:

更改:

'public' => __DIR__.'/../public',
'storage' => __DIR__.'/../app/storage',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
'public' => __DIR__.'/../public',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
致:

在index.php中

更改:

'public' => __DIR__.'/../public',
'storage' => __DIR__.'/../app/storage',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
'public' => __DIR__.'/../public',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
致:

更改:

'public' => __DIR__.'/../public',
'storage' => __DIR__.'/../app/storage',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
'public' => __DIR__.'/../public',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
致:

现在您需要做的是,正如我所说的,将您的laravel项目上载到“laravel文件”文件夹

你唯一不会上传的是你的laravel“public”文件夹的内容,它应该上传到你的“subdomain name”文件夹(包括index.php和所有css js文件等)

希望这有帮助


请注意,我的回答是基于这个问题的:但适合您的情况。

Josh的回答非常有用,但不起作用或与我的情况不符。 我将像他的解决方案那样定制我的解决方案,以便每个人都能轻松遵循:

步骤1:我选择的文件夹结构:

/
 home
   username
     public_html
       subdomain-name
     laravel-files
     ...other folders etc
注意:我的子域位于public_html文件夹中

步骤2:将my Laravel文件上载到子文件夹中根目录上方(在public_html上方/之外):Laravel文件(//home/username/Laravel文件)

步骤3:编辑public/index.php和bootstrap/path.php文件:

在path.php中

不要改变:

致:

因为它是无用的-它将按照以下路径计算:

"/home/username/laravel-files/bootstrap/../../laravel-files/app"
因此,默认设置足以让您脱离引导并进入应用程序

相反,改变:

致:

另外,不要改变: 'base'=>DIR'/..', “存储”=>DIR“/../app/storage”

在index.php中

更改:

'public' => __DIR__.'/../public',
'storage' => __DIR__.'/../app/storage',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
'public' => __DIR__.'/../public',
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
致:

和变化:

致:

将您的laravel项目上载到“laravel文件”文件夹(公用文件夹除外)。
“public”文件夹的内容应该上传到“subdomain name”文件夹。

我没有得到任何东西。为什么不能将(laravel的)公用文件夹内容放置在(服务器的)公用文件夹上。主域和子域不需要不同的设置。一个核心laravel可以同时处理这两个问题。嗨=很好的答案谢谢。我和我的服务提供商一起完成了这项工作,但我无法按照服务器的设置方式使用您的方法。我需要将所有内容都放在子域文件夹中,然后修改.htaccess。我会把问题的解决办法贴出来shortly@Ray不用担心,如果你在这方面运气不好,那么尝试使用使用cPanel的共享主机-现在你几乎可以免费获得一个,你可以使用FileZilla通过ftp连接,你就不用担心我的方法了。所有最大的共享主机公司都使用cPanel类型的设置:)我只需要在index.php中进行更改,在path.php中对public进行更改,而不是其他。然而,这确实帮助我修复了这个问题。