【问题标题】:deploy laravel 4 app in a subdomain在子域中部署 laravel 4 应用程序
【发布时间】:2013-10-17 11:14:58
【问题描述】:

我即将在共享网络主机上将 laravel 4 部署到子域中,但我对该怎么做有点困惑。我在 hostpapa 帐户上运行它,但对测试环境的配置和切换提供商不满意。

我创建了以下文件夹:

域/私人/myApps/golfmanager

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

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

域/子域/golfmanager/httpddocs

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

谁能提供一些关于此文件夹设置需要更改的指针。不想破坏它!!

谢谢

【问题讨论】:

  • 我没有得到任何东西。为什么不能将公用文件夹内容(laravel)放在(服务器)的公用文件夹上。您不需要对主域和子域进行不同的设置。一个核心 laravel 可以同时处理这两者。

标签: laravel subdomain laravel-4


【解决方案1】:

这在共享主机上非常简单。

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

/
 username
   home
     public_html
     subdomain-name
     laravel-files (optional)
     ...other folders etc

如您所知,您网站的所有公共文件都将位于您的 public_html 文件夹中。

注意:有时子域会位于 public_html 文件夹中。没关系,但我建议在根目录上方创建您的子域文件夹以获得额外的安全性。您可以在 cPanel 中轻松完成此操作,但在创建子域时更改子域的路径。

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

对于一个小项目,我通常将文件上传到上面的“home”文件夹中。但为了更简洁的结构,您可能需要在“主”文件夹中创建一个名为“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 publicly exposing /app/ folder?,但根据您的情况量身定制。

【讨论】:

  • 嗨 = 很好的答案,谢谢。我与我的服务提供商一起完成了这项工作,但我无法按照服务器设置的方式使用您的方法。我需要将所有内容放在子域文件夹中并修改.htaccess。我会尽快发布我的问题的解决方案
  • @Ray 不用担心,如果您没有任何运气,那么请尝试使用使用 cPanel 的共享主机 - 这些天您几乎可以免费获得一台,您可以使用 FileZilla通过 ftp 连接,您将无需担心我的方法。所有最大的共享托管公司都使用 cPanel 类型的设置:)
  • 我只需要在 index.php 中进行更改,并在 paths.php 中对公众进行更改,而不是其余部分。但是,这确实帮助我解决了这个问题。
【解决方案2】:

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

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 的工作方式。

【讨论】:

    【解决方案3】:

    乔希的回答非常有帮助,但它不起作用或不符合我的情况。 我会像他一样定制我的解决方案,这样每个人都可以轻松地遵循:

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

    /
     home
       username
         public_html
           subdomain-name
         laravel-files
         ...other folders etc
    

    注意:我的子域位于 public_html 文件夹中。

    第 2 步:将我的 Laravel 文件上传到根目录(public_html 之上/之外)的子文件夹中:laravel-files (//home/username/laravel-files)

    第 3 步:编辑您的 public/index.php 和 bootstrap/paths.php 文件:

    在paths.php中

    不要改变:

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

    到:

    'app' => __DIR__.'/../../laravel-files/app',
    

    因为它没用 - 它将评估为以下路径:

    "/home/username/laravel-files/bootstrap/../../laravel-files/app"
    

    所以默认就足够了,只需退出引导程序并进入应用程序。

    改为:

    'public' => __DIR__.'/../public',
    

    到:

    'public' => __DIR__.'/../../public_html/subdomain-name',
    

    另外,不要更改: 'base' => DIR.'/..', 'storage' => DIR.'/../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-files”文件夹,public 文件夹除外。 “public”文件夹的内容,应该上传到“subdomain-name”文件夹。

    【讨论】:

      猜你喜欢
      • 2013-08-05
      • 2013-02-01
      • 1970-01-01
      • 2021-11-09
      • 2022-11-05
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      相关资源
      最近更新 更多