本教程介绍如何将小型 WordPress 网站部署到 App Engine 柔性环境。
目标
- 创建一个 Cloud SQL 第二代实例。
- 配置一个 WordPress 示例网站。
- 将示例 WordPress 网站部署到 App Engine 柔性环境。
费用
您可使用价格计算器根据您的预计使用情况来估算费用。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用所需的 API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用所需的 API。
- 安装 Google Cloud 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 代理:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy cloud_sql_proxy \ -dir /tmp/cloudsql \ -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \ -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 项目 IDREGION_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 Architecture Center。