我正在使用谷歌应用程序引擎来部署一个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移到应用程序的根目录中。