【问题标题】:Deploying Laravel PHP site on shared host using GitHub使用 GitHub 在共享主机上部署 Laravel PHP 站点
【发布时间】:2021-05-05 20:14:15
【问题描述】:

我已经在本地构建了一个 Laravel 站点,一切运行良好——但是当我尝试将它部署到我的共享主机 (Hostinger) 时,我无法复制或正确设置所有内容。明显的问题是 Hostinger 将面向公众的代码放在了 public_html 文件夹中,而我的 Laravel 设置没有(它有 public)。

另外,我正在使用 GitHub 进行版本控制和(希望如此)部署。我可以直接在 Hostinger 中连接我的 GitHub 存储库,但问题是,它将我的代码拉入 public_html 而不是根目录。

如果这个问题/问题很愚蠢,我真的很抱歉;这些天我更像是一名网页设计师而不是开发人员,我只需要一个该死的投资组合网站并运行。 :)

本地目录结构:

root
--app
--bootstrap
--config
--database
--node_modules
--public
--resources
--routes
--storage
--tests
--vendor

我已经阅读了各种文章和帖子,关于在上传代码后将public的内容复制到public_html,然后在index.php中更改__DIR__后缀;或在本地预先将public 更改为public_html 的方法...但前者不起作用,而后者让我害怕,因为我的Laravel 工作流程中有很多使用npm run 和诸如此类的东西使用public 目录。

我也不想让我的远程和本地不同步。我想要的工作流程:

code locally     <---
     |               |
npm run dev/watch  --
     |
npm run prod
     |
push to GitHub
     |
deploy to host
     |
enjoy fresh website without any changes to remote files on host :)

【问题讨论】:

    标签: php laravel github


    【解决方案1】:

    您不想将public 的内容移动到根目录并从根目录提供您的应用程序,因为您将暴露重要的配置文件,例如.env

    在你的根目录中创建另一个.htaccess,内容如下:

    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>
    

    这会将您的所有网址重写到公共目录。这应该在本地和生产环境中工作。

    【讨论】:

    • 我不会从 root 服务,但我会从 public_html 服务。这会改变你的答案吗?而且我的根目录已经有一个 .htaccess 文件;我会添加你的代码吗?最后,这是假设我上面的文件夹结构都嵌套在主机的public_html 文件夹下吗? (所以会有一个public 文件夹 public_html 文件夹下?)
    • 您的项目的根目录应该直接位于public_html,正如我认为您在上面所描述的那样。您基本上不希望您的 index.php 位于项目的根目录中(或在本例中为 public_html)。您的index.php 应位于public_html->public。您将在public_html 中直接拥有一个.htaccess,其中包含我上面在答案中列出的内容,您还将在public_html->public 中拥有另一个.htaccess 文件,其中您的index.php 文件就是这样是用你的项目创建的(我没有修改我的)
    • 现在我的根文件夹(本地)在创建该 .htaccess 文件后似乎被禁止(403)......
    • 是否工作 不确定您的根文件夹是“禁止”的确切含义,您不希望能够公开访问根目录中的文件。您的意思是当您尝试访问您网站的索引时?您可以访问任何页面吗?
    【解决方案2】:

    您是否尝试过更改 Laravel 中的公共路径: See answer here也许这是一个解决方案。

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 2013-07-27
      • 1970-01-01
      • 2020-03-23
      • 2018-06-07
      • 1970-01-01
      • 2014-09-25
      • 2020-11-29
      • 2014-11-01
      相关资源
      最近更新 更多