在Google App Engine环境中运行Laravel

Laravel

Laravel是一个PHP开发人员的开源Web框架,鼓励使用模型 - 视图 - 控制器(MVC)模式。

您可以在Google Cloud Platform(GCP)上查看PHP以获得PHP的概述,并学习如何在GCP上运行PHP应用程序。

先决条件

  1. 在Google云端平台控制台中创建一个项目。

  2. 为您的项目启用结算。

  3. 安装Google Cloud SDK。

准备

请按照官方文档 从laravel.com 安装 Laravel。

开始

  1. 使用以下命令运行应用程序:

    php artisan serve
  2. 访问http:// localhost:8000查看Laravel欢迎页面。

部署

  1. app.yaml使用以下内容创建一个文件:

    runtime: phpenv: flexruntime_config:
     document_root: public# Ensure we skip ".env", which is only for local developmentskip_files:
     - .envenv_variables:
     # Put production environment variables here.
     APP_LOG: errorlog
     APP_KEY: YOUR_APP_KEY
     STORAGE_DIR: /tmp

替换YOUR_APP_KEY
app.yaml与你用下面的命令生成一个应用程序键:

  1. php artisan key:generate --show

如果您在Linux或MacOS上,以下命令将自动更新您的app.yaml

  1. sed -i '' "s#YOUR_APP_KEY#$(php artisan key:generate --show --no-ansi)#" app.yaml

添加以下下scripts
composer.json

  1. "post-install-cmd": [
     "chmod -R 755 bootstrap/cache",
     "php artisan cache:clear"]

在Google App Engine环境中运行Laravel

  1. 运行以下命令来部署您的应用程序:

    gcloud app deploy
  2. 访问http://YOUR_PROJECT_ID.appspot.com以查看Laravel欢迎页面。用YOUR_PROJECT_ID 您的GCP项目的ID 替换。

设置数据库会话

注意:本节仅适用于Laravel 5.4.16。要使用早期版本的Laravel,您需要手动将DB_SOCKET值添加到 config/database.php(请参阅#4178)

  1. 按照说明为MySQL设置 Google Cloud SQL第二代实例。

  2. 按照说明 在本地计算机上安装Cloud SQL代理客户端。Cloud SQL代理用于在本地运行时连接到您的Cloud SQL实例。

  3. 从命令行使用Cloud SDK运行以下命令。复制connectionName下一步的值。用YOUR_INSTANCE_NAME您的实例的名称替换:

    gcloud sql instances describe YOUR_INSTANCE_NAME
  4. 启动Cloud SQL代理,并YOUR_INSTANCE_CONNECTION_NAME使用您在上一步中检索到的连接名称进行替换:

    cloud_sql_proxy -instances=YOUR_INSTANCE_CONNECTION_NAME=tcp:3306
  5. 使用MySQL客户端或类似的程序连接到您的实例,并为应用程序创建一个数据库。出现提示时,使用您配置的根密码。

    mysql -h 127.0.0.1 -u root -p -e "CREATE DATABASE laravel;"
  6. 运行Laravel的数据库迁移。这可以通过设置参数.env
    或通过将其作为环境变量传入来在本地完成。请务必YOUR_DB_PASSWORD
    使用您配置的根密码替换下面的内容:

    # create a migration for the session tablephp artisan session:tableDB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=YOUR_DB_PASSWORD php artisan migrate --force
  7. app.yaml使用以下内容修改您的文件:

    runtime: phpenv: flexruntime_config:
     document_root: public# Ensure we skip ".env", which is only for local developmentskip_files:
     - .envenv_variables:
     # Put production environment variables here.
     APP_LOG: errorlog
     APP_KEY: YOUR_APP_KEY
     STORAGE_DIR: /tmp
     CACHE_DRIVER: database
     SESSION_DRIVER: database
     ## Set these environment variables according to your CloudSQL configuration.
     DB_HOST: localhost
     DB_DATABASE: laravel
     DB_USERNAME: root
     DB_PASSWORD: YOUR_DB_PASSWORD
     DB_SOCKET: "/cloudsql/YOUR_CLOUDSQL_CONNECTION_NAME"beta_settings:
     # for Cloud SQL, set this value to the Cloud SQL connection name,
     # e.g. "project:region:cloudsql-instance"
     cloud_sql_instances: "YOUR_CLOUDSQL_CONNECTION_NAME"
  8. 更换的每个实例YOUR_DB_PASSWORD,并YOUR_CLOUDSQL_CONNECTION_NAME 与您的Cloud SQL执行上面创建的值。

相关推荐