用 CDB 实现高可用数据存储

腾讯云
入门
0 个任务
剩余 0 个名额

你还可以 创建 或者 使用已有 云主机不限时上机

实验内容

-

首次可免费使用云主机 20 分钟 ,到期后云主机将被重置并退库,若想保留成果请及时留用。

实验资源

云服务器

软件环境

-

目录

# 用 CDB 实现高可用数据存储 ## 准备 LNMP 环境 > <time>30min ~ 60min</time> LNMP 是 Linux、Nginx、MySQL 和 PHP 的缩写,是 WordPress 博客系统依赖的基础运行环境。我们先来准备 LNMP 环境,本次实验所用Linux发行版为 CentOS7.2 版本,各系统版本安装方式均有不同,请严格选择该发行版进行实验,确保实验成功。 ### 安装 Nginx 使用 `yum` 安装 Nginx: ``` yum install nginx -y ``` 查看 [/etc/nginx/nginx.conf][edit-default],具体配置含义可见如下注释(无需操作): ```conf /// <example verb="edit" file="/etc/nginx/nginx.conf" /> listen 服务监听端口 server_name 服务名称,一般为域名; root 网站文件路径; include 引用配置文件; location 重写规则填写; error_page 错误页跳转; ``` 启动 Nginx: ``` nginx ``` 此时,可访问实验机器外网 HTTP 服务([http://${runtime.vars.cvmIpAddress}][])来确认是否已经安装成功。 将 Nginx 设置为开机自动启动: ``` systemctl enable nginx ``` > <locate for="edit-default" path="/etc/nginx/nginx.conf" hint="查看 Nginx 配置" /> > <checker type="output-contains" command="ls /etc/nginx/" hint="Nginx 未安装"> > <keyword regex="nginx.conf" /> > </checker> > <checker type="output-contains" command="netstat -nltp" hint="Nginx 未启动"> > <keyword regex="LISTEN" /> > <keyword regex="80" /> > </checker> ### 配置 云数据库 MySQL [ 点击购买 ](https://buy.cloud.tencent.com/cdb) 云数据 for MySQL,购买及注意事项如下图: ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/ohbz13yl4z/image.png) 购买完成后,[进入控制台初始化 ](https://console.cloud.tencent.com/cdb) MySQL 服务: > <webpage for="mysql" url="https://console.cloud.tencent.com/cdb"></webpage> ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/daqwdq0bhk/image.png) ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/u56hbs2ld4/image.png) 初始化完成后,即可拿到 云数据 Mysql 关键参数: ``` 1.数据库内网地址 2.数据库 root 账号及密码 ``` 数据库内网地址如图: ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/lv33ajv3sa/image.png) > <bubble for="password"> > 下面命令中的密码是教程为您自动生成的,为了方便实验的进行,不建议使用其它密码。如果设置其它密码,请把密码记住,在后续的步骤会使用到。 > </bubble> ### 安装 PHP 使用 `yum` 安装 PHP:[:question][php] ``` yum install php-fpm php-mysql -y ``` 安装之后,启动 PHP-FPM 进程: ``` systemctl start php-fpm ``` 启动之后,可以使用下面的命令查看 PHP-FPM 进程监听哪个端口 [:question][port] ``` netstat -nlpt | grep php-fpm ``` 把 PHP-FPM 也设置成开机自动启动: ``` systemctl enable php-fpm ``` > <bubble for="php"> > CentOs 6 默认已经安装了 PHP-FPM 及 PHP-MYSQL,下面命令执行的可能会提示已经安装。 > </bubble> > <bubble for="port"> > PHP-FPM 默认监听 9000 端口 > </bubble> > <checker type="output-contains" command="netstat -nlpt" hint="PHP-FPM 进程未启动"> > <keyword regex="php-fpm" /> > </checker> ### 安装 WordPress 使用 `wget` 安装中文版:[:question][wpinstall] ``` mkdir /usr/share/wordpress/ cd /usr/share/wordpress/ wget https://cn.wordpress.org/wordpress-5.0.3-zh_CN.zip unzip wordpress-5.0.3-zh_CN.zip mv wordpress/* /usr/share/wordpress/ ``` > <bubble for="wpinstall"> > 也可以自行下载最新中文版 wordpress,上传到相应目录即可 > https://cn.wordpress.org/ > </bubble> 安装完成后,就可以在 [/usr/share/wordpress][wp-path] 看到 WordPress 的源代码了。 > <locate for="wp-path" path="/usr/share/wordpress" hint="WordPress 源码在此" /> > <checker type="output-contains" command="ls /usr/share/wordpress" hint="WordPress 尚未安装"> > <keyword regex="index.php" /> > </checker> ### 配置数据库 进入 云数据 MySQL [DMC控制台][https://gz-dmc.cloud.tencent.com/v2/qcloudLogin/login?dbType=mysql]: 1.填写数据库连接信息进入 ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/npoiq6i441/image.png) 2.选择新建,新建库 ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/u58tnxmcob/image.png) 3.新建 wordpress 数据库 ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/s7vwygdge7/image.png) 创建 Wordpress 配置文件: ``` cp /usr/share/wordpress/wp-config-sample.php /usr/share/wordpress/wp-config.php ``` 把上述的 DB 配置[同步到 WordPress 的配置][wp-config]文件中,可参考下面的配置: ```php /// <example verb="edit" file="/usr/share/wordpress/wp-config.php" /> <?php /** * WordPress基础配置文件。 * * 这个文件被安装程序用于自动生成wp-config.php配置文件, * 您可以不使用网站,您需要手动复制这个文件, * 并重命名为“wp-config.php”,然后填入相关信息。 * * 本文件包含以下配置选项: * * * MySQL设置 * * 密钥 * * 数据库表名前缀 * * ABSPATH * * @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php * * @package WordPress */ // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** // /** WordPress数据库的名称 */ define('DB_NAME', 'wordpress'); /** MySQL数据库用户名 */ define('DB_USER', 'root'); /** MySQL数据库密码 */ define('DB_PASSWORD', '这里填写自己的云数据库密码'); /** MySQL主机 */ define('DB_HOST', '这里填写自己的云数据库内网IP(如 10.66.228.167)'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', ''); /**#@+ * 身份认证密钥与盐。 * * 修改为任意独一无二的字串! * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org密钥生成服务} * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。 * * @since 2.6.0 */ define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); /**#@-*/ /** * WordPress数据表前缀。 * * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置 * 不同的数据表前缀。前缀名只能为数字、字母加下划线。 */ $table_prefix = 'wp_'; /** * 开发者专用:WordPress调试模式。 * * 将这个值改为true,WordPress将显示所有用于开发的提示。 * 强烈建议插件开发者在开发环境中启用WP_DEBUG。 * * 要获取其他能用于调试的信息,请访问Codex。 * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', false); /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ /** WordPress目录的绝对路径。 */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); /** 设置WordPress变量和包含文件。 */ require_once(ABSPATH . 'wp-settings.php'); ``` > <bubble for="password"> > 如果你上面的步骤没有使用教程创建的密码,请修改下面命令中的密码登录 > </bubble> > <locate for="wp-config" path="/usr/share/wordpress/wp-config.php" hint="编辑 WordPress 配置" /> > <checker type="output-contains" command="ls /usr/share/wordpress" hint="WordPress 尚未安装"> > <keyword regex="index.php" /> > </checker> > <checker type="output-contains" command="mysql -uroot -p'MyPas$word4Word_Press' -e 'show databases;'" hint="添加名为 wordpress 的数据库(如果你使用了其它密码或者其它数据库名称进行配置,请直接下一步)"> > <keyword regex="wordpress" /> > </checker> > <checker type="output-contains" command="cat /etc/wordpress/wp-config.php" hint="把 DB 配置同步到 WordPress 的配置文件中"> > <keyword regex="MyPas$word4Word_Press" /> > </checker> ### 配置 Nginx WordPress 已经安装完毕,我们配置 Nginx 把请求转发给 PHP-FPM 来处理 首先,修改默认的配置文件 [nginx.conf][nginxconf]:[:question][rename],去掉 ~~default_server~~默认站点 ``` # listen 80 default_server; listen 80 ; ``` 在 `/etc/nginx/conf.d` [创建 wordpress.conf 配置][wp-nginx],参考下面的内容: ```conf /// <example verb="create" file="/etc/nginx/conf.d/wordpress.conf" /> server { listen 80 default_server; root /usr/share/wordpress; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php index.php; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 配置后,通知 Nginx 进程重新加载: ``` nginx -s reload ``` 目前,整个博客安装已经完成,可以直接通过IP访问:[http://${runtime.vars.domain}][] > <bubble for="rename"> > 删除默认站点配置 > </bubble> > <locate for="wp-nginx" path="/etc/nginx/conf.d" hint="右击新建 wordpress.conf 文件" /> > <locate for="nginxconf" path="/etc/nginx/nginx.conf" hint="修改 nginx.conf" /> > <checker type="output-contains" command="cat /etc/nginx/conf.d/wordpress.conf" hint="为 WordPress 添加 Nginx 配置"> > <keyword regex="wordpress" /> > </checker> > <checker type="output-contains" command="curl http://127.0.0.1/wp-admin/install.php --silent" hint="启动 WordPress 博客"> > <keyword regex="WordPress" /> > </checker> ## 准备域名和解析 > <time>15min ~ 30min</time> ### 域名注册 如果您还没有域名,可以[在腾讯云上选购][buy_link],过程可以参考下面的视频。 - [视频 - 在腾讯云上购买域名][buy_domain_video] > undefined<link for="buy_link" href="https://dnspod.cloud.tencent.com/?fromSource=lab"></link> > > <video for="buy_domain_video" platform="qq" vid="p05077pwelw" name="域名选购"></video> ### 域名解析 域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为: ``` ${runtime.vars.cvmIpAddress} ``` 在腾讯云购买的域名,可以[到控制台添加解析记录][https://dnspod.cloud.tencent.com],过程可参考下面的视频: - [视频 - 如何在腾讯云上解析域名][video_resolve_domain] > <video for="video_resolve_domain" platform="qq" vid="t0507ps9kxo" name="域名解析"></video> 域名设置解析后需要过一段时间才会生效,通过 `ping` 命令检查域名是否生效 [:question][replace],如: > <bubble for="replace">注意替换下面命令中的 `www.yourmpdomain.com` 为您自己的注册的域名</bubble> ``` ping www.yourdomain.com ``` 如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。 ### 大功告成! 恭喜,您的 WordPress 博客已经部署完成,您可以通过浏览器访问博客查看安装指引。 ![image](https://share-10039692.file.myqcloud.com/lab/ac197229e6/image/8apl997z2c/image.png) 通过IP地址查看: 博客访问地址:[http://${runtime.vars.domain}/wp-admin/install.php][] 通过域名查看: 博客访问地址:[http://www.yourdomain.com/wp-admin/install.php][],其中替换 `www.yourdomain.com` 为之前申请的域名。