php - gcloud,代码在哪里?如何手动更新已部署的代码?

标签 php google-app-engine

我使用 gcloud 命令部署了一个本地项目,因为一切正常。我在浏览器中收到 500 错误,但仍有数百个问题。代码在哪里?当我进行部署时,gcloud 在幕后做什么?为什么我只部署了一个项目却看到了 3 个实例?

我对我看到的三个计算实例中的每一个都进行了 SSH,但找不到代码。我想做一些非常愚蠢和简单的事情,只需转到 index.php 文件并执行 echo '1';die; 来检查我可以使用哪些代码来使我的项目在 Google 上运行平台。

因为我对此一无所知,所以一开始我无法完美地调整我的项目以使其在 Google Cloud 上运行,所以这可能很愚蠢,但却是必须的!

我当前且唯一的配置文件:

runtime: php
vm: true

runtime_config:
  document_root: public

最佳答案

您正在使用 AppEngine 灵活环境(以前称为托管虚拟机)。此环境使用 Docker 从应用程序代码构建镜像并在容器中运行它。

请参阅Additional Debugging有关如何在计算机上进行调试的更多信息,请参阅托管 VM PHP 教程的一部分。通过 SSH 连接到实例后,您就位于主机上,但您仍然需要运行其他命令来访问容器,这是您的应用程序代码运行的位置。以下命令将使您进入您的计算机:

sudo docker exec -t -i gaeapp /bin/bash

到达那里后,您可以通过运行以下命令来编辑正在运行的应用程序

apt-get update
apt-get install vim       # or your editor of choice
vi /app/public/index.php  # I am assuming this is where your file is

是的,您必须在容器上安装 vim,因为默认情况下不会安装 vim,因为这是您的生产镜像。

另外请务必检查开发者控制台中的“日志记录”页面,因为这是将记录 500 错误消息的位置,而且它比执行这些步骤要容易得多!

关于php - gcloud,代码在哪里?如何手动更新已部署的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37666132/

相关文章:

php - 上传时在数据库中插入文件名而不是 CakePHP 中的数组

php - 行已删除,但PHP并未真正从数据库中删除+没有错误消息

php - 从 Web 应用程序运行控制台时,Yii2 header 发送两次

python 谷歌应用程序引擎编程

php - 从 MYSQL 表中选择包含周末的两列之间的日期的行

php - 如何阻止 MySQL 十进制字段被四舍五入?

php - 为无限的类别深度构建面包屑 - PHP + SQL

java - 第二个 GAE 应用程序可以访问主应用程序的数据存储吗?

google-app-engine - 本地 GAE 数据存储在计算机关闭后不保留数据

java - AppEngine 应用停止更新 Firebase,没有错误