【问题标题】:How to install composer dependencies when the root folder of the Google App Engine project is outside the composer.json directory?当 Google App Engine 项目的根文件夹在 composer.json 目录之外时,如何安装 composer 依赖项?
【发布时间】:2020-07-24 18:56:51
【问题描述】:

我正在使用 Google App 引擎来部署一个 PHP 项目。 我正在使用以下文件结构。

public/project_files_here_composer.json_here_too
private/some_private_files
app.yaml

在 app.yaml 中,我将 public 文件夹设置为包含 index.php 的 Web 根目录。 当我使用 google app deploy 部署它时,我的作曲家依赖项没有安装。

如何告诉 Google App Engine 将我的依赖项安装在 public/ 文件夹中(使用 public 文件夹中的 composer.json)?

【问题讨论】:

  • 为什么你的依赖没有安装?你有什么办法解决这个问题?
  • 我需要在外部目录上运行 gcloud app install 以便它将我的公共和私人文件夹复制到生产环境,但我的 composer.json 文件位于公共文件夹内。所以问题是当我尝试部署应用程序时,Google 应用程序引擎没有运行 composer install,并且我无法将 composer.json 移到公共目录之外。那么如何让 Google app engine cd 到 public 文件夹然后运行 ​​composer install 呢?

标签: php google-app-engine composer-php


【解决方案1】:

我一直在搜索gcloud app deploy 操作和app.yaml 文件的文档,但没有找到任何关于您打算做什么的参考。试图重现您的场景,我所做的是在应用程序的根目录中创建一个指向另一个文件夹中的作曲家文件的软链接,但它不起作用。

起作用的是使用以下命令在应用的根文件夹中创建硬链接:

ln public/composer.json composer.json

不管怎样,当我发出 gcloud app deploy 命令时,它说它正在上传 0 个文件(这有点正确),但是当我从控制台查看源时,文件在那里并且安装了依赖项,所以它起作用了。

如果您不想创建硬链接,您应该只创建一个脚本来复制文件、部署和删除它。类似于:

#!/bin/bash

cp public/composer.json .
gcloud app deploy
rm composer.json

如果这些都不适合你,你应该把 composer.json 移到应用的根目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-27
    • 2015-02-24
    • 2015-07-14
    • 2015-01-13
    • 1970-01-01
    • 2015-08-29
    • 2013-02-08
    • 1970-01-01
    相关资源
    最近更新 更多