如何在Google云上运行单个php文件?

时间:2016-08-16 16:17:15

标签: php google-app-engine google-cloud-platform

我想创建保存数据库中信息的php文件。此信息使用POST URL以JSON格式提供。

如果是PhpMyAdmin,我们会按照以下方式完成:

<?php
   $con = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);
   if(mysqli_connect_errno()){
       echo "Error connecting to database";
   }else{
       $json = file_get_contents('php://input');
       $obj = json_decode($json);
       $x = $obj->{'x'};
       $y = $obj->{'y'};
       $z = $obj->{'z'};

       $query = "INSERT INTO table_name VALUES('$x', '$y', '$z')";
       $result = $con->query($query);
       if(!$result){
            die("Data base error");
       }
   }

要运行上面的php文件,我们会获取网址,如果您将数据传递给该网址,则会执行所需的操作。 URL将是这样的,我们可以从任何地方访问它:

&#34; HTTP://****server_name*****/****file_name****.php"

现在,我想使用Google Cloud做同样的事情。我在Cloud SQL中创建了数据库。但是,我没有在哪里创建PHP文件,如何访问此PHP文件中的数据库以及URL是什么。

有人可以帮助我,因为我不熟悉Google Cloud。谢谢!!!

2 个答案:

答案 0 :(得分:1)

一种选择是为它编写一个Google App Engine (GAE) PHP应用程序并在GAE上部署/运行它(GAE为您处理所有的基础设施)。更简单的恕我直言,可能免费(取决于您的应用程序使用情况)。

另一种选择是使用Google Compute Engine (GCE) VM并自行管理/运行您的应用(以及所有必需的内容)。

GAE和GCE都是Google Cloud产品。

答案 1 :(得分:0)

您可以毫不费力地在GAE中部署代码。

您只需在项目文件夹中定义app.yaml并部署到GAE即可。

app.yaml中,您可以定义连接详细信息。

runtime: php55
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: index.php

# [START env]
env_variables:
  # Replace project, instance, database, user and password with the values obtained
  # when configuring your Cloud SQL instance.
  MYSQL_DSN: mysql:unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME;dbname=DATABASE
  MYSQL_USER: root
  MYSQL_PASSWORD: ''
# [END env]

您可以在代码本身上定义连接详细信息(但不要);或者如上所述在app.yaml中定义,并将代码中的值调用为getenv('MYSQL_PASSWORD');

有关在GAE Standard env here

上使用Google Cloud SQL的文档

(我建议你使用Flexible Environment而不是Standard Environment,这不需要你做很多工作。 这是我为getting started on GAE Flexible env with Php

上的会话所做的一个小幻灯片集