当谷歌应用引擎项目的根文件夹在composer.json目录之外时,如何安装composer依赖项



我正在使用谷歌应用程序引擎来部署一个PHP项目。我使用以下文件结构。

public/project_files_here_composer.json_here_too
private/some_private_files
app.yaml

在app.yaml中,我将公共文件夹设置为包含index.php的web根目录。当我使用google app deploy部署它时,我的composer依赖项不会安装。

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

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

所做的工作是用以下命令在应用程序的根文件夹中创建一个硬链接:

ln public/composer.json composer.json

无论如何,当我制作gcloud app deploy命令时,它说它正在上传0个文件(这有点正确(,但当我从控制台查看源代码时,文件就在那里,并且安装了依赖项,所以它可以工作。

如果你不想创建硬链接,你只需要创建一个脚本来复制、部署和删除文件

#!/bin/bash
cp public/composer.json .
gcloud app deploy
rm composer.json

如果这些都不适用,您应该将composer.json移到应用程序的根目录中。

最新更新