【问题标题】:How correctly deploy a Laravel application from my local environment to my remote server?如何正确地将 Laravel 应用程序从本地环境部署到远程服务器?
【发布时间】:2017-04-13 09:44:12
【问题描述】:

我是 Laravel 的新手,我有以下疑问。

我必须将我开发的 Laravel 5.4 应用程序从本地环境迁移到远程服务器。

我可以通过以下方式吗?

  1. 获取包含我的本地应用程序的整个目录并将其上传到我的远程服务器的 /var/www/html 目录中。

  2. 导出我的本地数据库并导入我的远程数据库。

  3. 更改 .env 文件的内容。

现在应用程序应该可以在我的远程服务器上运行。这是正确的还是我错过了什么,我必须做其他事情?

【问题讨论】:

  • 试一试,你会发现:)
  • 它应该可以工作,你有什么错误吗?
  • 如果您缺少任何东西,它正在配置网络服务器,例如阿帕奇
  • 你的服务器..? window 还是 linux .?

标签: php laravel laravel-5 laravel-5.4


【解决方案1】:

步骤如下

在共享主机上安装

  • 解压主 zip 文件并上传您的 public_html 文件夹(也上传 vendor 文件夹)

  • 为 storage/ 和 bootstrap/ 文件夹赋予 777 递归权限

  • 在phpmyadmin中创建数据库并导入.sql文件

  • 在 .env 文件中设置数据库

  • 将所有 公共文件夹 文件移动到根文件夹(public_html 或您的网站文件夹)
  • 打开index.php

将这些行替换为

 require __DIR__."/../bootstrap/autoload.php";
 $app = require_once __DIR__."/../bootstrap/app.php";

require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';

添加这些行用于设置公共路径

$app->bind('path.public', function() { return __DIR__; }); (添加这个 index.php)

网站准备就绪

在 Linux 上安装

  • 解压主zip文件并上传你的html文件夹(没有vendor文件夹)

  • 授予 777 对 storage/ 和 bootstrap 文件夹的权限

  • 即(Linux:chmod -R 777 foldername

  • 运行 Linux 命令(composer install 或 composer update)
  • 在 phpmyadmin 中创建数据库并从 DB 文件夹中导入 .sql 文件
  • 在 .env 文件中设置数据库
  • 创建用于从 url 中删除公用文件夹的虚拟主机

完成

【讨论】:

  • 只是一个疑问...我必须将其上传到 VPS。我必须在我的远程服务器上创建一个虚拟主机吗?我正在使用我的 VPS 服务器的 IP 进行访问……所以……我认为这个虚拟主机将无法从外部访问。所以我可以在我的远程服务器上声明一个像(myvirtualhost.dev)这样的虚拟主机,但是我怎样才能到达这个虚拟主机呢?从外部我无法联系内部的“myvirtualhost.dev”。我能做什么?
【解决方案2】:

你可能需要更新远程服务器上的一些包,这样 Laravel 才能正常工作。 更多细节在这里:https://github.com/petehouston/laravel-deploy-on-shared-hosting/blob/master/README.md

【讨论】:

    猜你喜欢
    • 2014-03-07
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 2021-10-13
    • 2016-04-02
    相关资源
    最近更新 更多