本教程介绍如何将小型 WordPress 网站部署到 App Engine 柔性环境。
目标
- 创建一个 Cloud SQL 第二代实例。
- 配置一个 WordPress 示例网站。
- 将示例 WordPress 网站部署到 App Engine 柔性环境。
费用
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init - 按照以下步骤创建凭据:
在 Google Cloud 控制台中,前往凭证页面。
- 点击创建凭据,然后选择服务账号密钥。
- 选择服务账号 > App Engine 默认服务账号。
- 点击创建。
- 将下载的密钥保存在安全的地方。
- 安装 PHP 和 Composer。
-
下载 Cloud SQL 代理并使其可以执行。此外,将 Cloud SQL 代理可执行文件的位置添加到
PATH环境变量中。 -
安装 MySQL 客户端并验证
mysql可执行文件的位置是否存储在PATH环境变量中。
创建和配置 Cloud SQL 第二代实例
创建一个 Cloud SQL 第二代实例:
gcloud sql instances create tutorial-sql-instance \ --activation-policy=ALWAYS \ --tier=db-n1-standard-1 \ --region=us-central1设置您的实例的 root 密码:
gcloud sql users set-password root --instance tutorial-sql-instance \ --password [YOUR_SQL_ROOT_PASSWORD] \ --host %其中,
[YOUR_SQL_ROOT_PASSWORD]是您选择的安全密码。下载并运行 Cloud SQL 代理:
./cloud-sql-proxy \ -dir /tmp/cloudsql \ -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance \ -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
其中
[YOUR_PROJECT_ID]是 Google Cloud 项目 ID。[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]是指向您之前下载的服务账号 JSON 文件的路径。
以下输出表明代理已准备好用于新连接:
Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance Ready for new connections在另一个终端窗口中,创建一个新数据库和一个用户:
mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD] mysql> create database tutorialdb; mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]'; mysql> grant all on tutorialdb.* to 'tutorial-user'@'%'; mysql> exit
其中:
[YOUR_SQL_ROOT_PASSWORD]是您的 Cloud SQL 实例的 root 密码。[YOUR_DATABASE_PASSWORD]是您选择的安全密码。
设置 WordPress 项目
克隆示例代码库:
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git转到包含示例代码的目录:
cd php-docs-samples/appengine/flexible/wordpress安装依赖项:
composer install运行帮助程序脚本:
php wordpress.php setup -n \ --dir=./wordpress-project \ --db_instance=tutorial-sql-instance \ --db_name=tutorialdb \ --db_user=tutorial-user \ --project_id=[YOUR_PROJECT_ID] \ --db_password=[YOUR_DATABASE_PASSWORD]
其中:
[YOUR_PROJECT_ID]是您的项目 ID。[YOUR_DATABASE_PASSWORD]是您的数据库密码。
-dir参数指定您的 WordPress 项目的位置。帮助程序脚本会将信息写入
wordpress-project/wordpress/wp-config.php。检查wp-config.php的内容,以确认您的姓名、项目 ID 和数据库密码正确无误。if ($onGae) { /** Production environment */ define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance'); /** The name of the database for WordPress */ define('DB_NAME', 'tutorialdb'); /** MySQL database username */ define('DB_USER', 'tutorial-user'); /** MySQL database password */ define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]'); } else { /** Local environment */ define('DB_HOST', '127.0.0.1'); /** The name of the database for WordPress */ define('DB_NAME', 'tutorialdb'); /** MySQL database username */ define('DB_USER', 'tutorial-user'); /** MySQL database password */ define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]'); }
将 WordPress 项目部署到 App Engine 柔性环境
转到您的 WordPress 项目目录:
cd wordpress-project部署 WordPress 项目:
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yaml在浏览器中,输入以下网址:
https://PROJECT_ID.REGION_ID.r.appspot.com替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 ID。REGION_ID:App Engine 分配给您的应用的代码
更新 WordPress、插件和主题背景
确保 WordPress、插件和主题背景保持最新很重要。您可以使用 wp 工具持续更新这些内容。更新之后,您需要重新部署 WordPress 项目。
更新 WordPress 本身:
vendor/bin/wp core update --path=wordpress更新插件:
vendor/bin/wp plugin update --all --path=wordpress # Just in case it updates any of the dropins, copy the files: cp wordpress/wp-content/plugins/batcache/advanced-cache.php \ wordpress/wp-content/plugins/memcached/object-cache.php \ wordpress/wp-content更新主题背景:
vendor/bin/wp theme update --all --path=wordpress再次部署项目:
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yaml
清除数据
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
删除项目
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
要删除项目,请执行以下操作:
- 在 Google Cloud 控制台中,前往管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。
删除应用的非默认版本
如果您不想删除项目,可以通过删除应用的非默认版本来降低费用。
要删除应用版本,请执行以下操作:
- 在 Google Cloud 控制台中,前往 App Engine 的版本页面。
- 选中要删除的非默认应用版本对应的复选框。
- 如需删除应用版本,请点击删除。
删除 Cloud SQL 实例
要删除 Cloud SQL 实例,请执行以下操作:
- 在 Google Cloud 控制台中,前往实例页面。
- 点击要删除的 SQL 实例的名称。
- 如需删除实例,请点击删除,然后按照说明操作。
后续步骤
了解 WordPress。
探索有关 Google Cloud 的参考架构、图表和最佳做法。查看我们的 Cloud 架构中心。