【问题标题】:Deploy Laravel 5.1 on a cloud hosting在云主机上部署 Laravel 5.1
【发布时间】:2015-12-09 09:13:43
【问题描述】:

我在 wamp 上开发了我的 laravel 应用程序。我终于完成并租用了具有 CPanel 界面的云托管服务器。我在公共 html 上上传了所有文件并尝试访问该站点。它应该进入登录页面但无法正常工作。

我曾经部署经典的html文件,这是我第一次部署PHP laravel站点。我已经成功导入了我的 MySQL 数据库,所以它已经准备好了。我只是对配置等一无所知。

【问题讨论】:

  • 任何有关发生情况的信息也很有用。就像您收到错误消息一样?日志中有消息吗?您需要检查的可能事项: - .env 配置文件和值 - /storage 文件夹是否可写 - 是否指向 /public 的 docroot - 是否已安装和配置 php
  • 你的 php/Laravel 日志是否包含任何内容?
  • 您还应该指定托管它的位置,例如在 digitalocean 上等等。因为 laravel 需要托管在 linux 服务器上。 DigitalOcean 将是一个不错的选择。
  • 好吧,现在看起来我的主页只有显示 laravel 文件夹的目录,例如应用程序、资源等。我只是不知道如何使它工作。
  • 看起来您的虚拟主机指向项目根目录,而不是公共目录。这是基于 cpanel 的主机的常见问题。您需要转到 cpanel 上的域部分并将根更改为 /public_html/public 或类似的东西。谷歌搜索“cpanel 更改域根目录”将为您提供帮助

标签: php laravel-5.1


【解决方案1】:

我将引导您完成这些步骤。由于您提到了public_html 文件夹,我认为此解决方案对您有用。请按照步骤将myapp 更改为您的应用名称。

  • 将项目的public 文件夹复制到public_html 文件夹并重命名(比如myapp_public
  • 您将在public_html 文件夹中看到一个.htaccess 文件。编辑该文件的内容,如下所示: RewriteEngine On RewriteCond %{REQUEST_URI} !^myapp_public RewriteRule ^(.*)$ myapp_public/$1 [L]

  • 将根目录中的其他文件夹复制到另一个目录中,例如myapp

  • 现在您需要做的最后一件事是编辑路径public_html/myapp_public/index.php 处的index.php 文件(如果您按照我上面写的步骤操作)。修改require声明如下

require声明修改如下:

require __DIR__.'/../../myapp/bootstrap/autoload.php';

改变$app变量如下:

$app = require_once __DIR__.'/../../myapp/bootstrap/app.php';

应该这样做。为方便绘制简单的目录结构。

~
|__ myapp
|     |____ .env
|     |____ app
|     |____ artisan
|     |____ .........so on
|
|__ public_html
          |_____ .htaccess (this is the file to edit)
          |_____ myapp_public
                     |________ .htaccess
                     |________ index.php (this is the file to edit)
                     |________ robots.txt ...... so on

如果你不明白这里发生了什么,我会详细解释。

编辑

确保您已经通过cURL 安装了composer,因为apt-get 无法在共享主机上运行。完成后,如果您按照上述步骤操作,请从项目的根目录运行 composer install,即 myapp

【讨论】:

  • 我正在听从您的建议,但在 public_html 文件夹中没有看到任何 .htaccess 文件。
  • 它仍然无法正常工作。首先,我假设 public_html 下的 .htaccess 存在或自动生成,但事实并非如此。所以我将 .htaccess 从 myapp_public 复制到 public_html 目录。还是不行
  • 应该有。我没有在 public_html 中看到没有该文件的任何付费共享主机。您可能应该考虑与服务提供商交谈
  • 我尝试将 index.php 复制到 public_html 文件夹并收到服务器错误 500。可能是因为我将我的应用程序名称与 composer 更改为另一个名称?还是可能与文件权限有关?
  • 尝试先运行一个小型应用程序。也许是最初的 laravel 页面。如果你得到 500,错误日志会说什么?
【解决方案2】:

最后我明白了,Vishal 的回答确实有帮助,但在查看错误日志并谷歌搜索错误后,我需要将我的 PHP 版本设置更改为 5.5 或更高版本。再次感谢维沙尔。我仍然有数据库连接的问题,但我想我可以从这里处理它。

【讨论】:

  • 然而,我的回答遭到了反对:) 很高兴我能提供帮助。
猜你喜欢
  • 1970-01-01
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 2023-04-07
  • 2023-01-12
  • 2020-11-29
  • 2021-09-03
相关资源
最近更新 更多