解释如何在 AWS 上构建 Word Press
你好。
我是系统解决方案部的八木谷,上个月我第一次染了头发,但是我没有按照步骤,第一次染成了蓝色。
我似乎不再可以选择将其染成安全的颜色,所以我想知道下一步应该染什么颜色。
现在,这是我在 Beyond 博客上发表的第一篇文章,我将撰写有关如何使用 AWS 服务构建 LAMP 环境,以及最终如何使其能够发布到 WordPress 的文章。
详细写每个服务太长了,所以我只简单写一下设置。
*Web 和 DB 将在它们共存的配置中创建。
AWS
[VPC]
名称:wp-test-vpc
CIDR:10.0.0.0/16
[互联网网关]
标签名称:wp-test-igw
键名称 值:wp-test-igw
可用 VPC:wp-test-vpc操作中选择“附加到 VPC”
[路由表]
名称标签:wp-test-rt
VPC:
创建 wp-test-vpc 后,选择 wp-test-rt ⇒ 编辑路由 ⇒ 添加路由
目的地:0.0.0.0/0 目标:wp-test -igw
[子网]
名称:wp-test-public-subnet-1a
VPC:wp-test-vpc
CIDR:10.0.0.0/24
[安全组]
安全组名称:wp-test-sg
描述:wp-test-sg
VPC:wp-test-vpc
入站规则
类型:SSH 协议:TCP 端口范围:22 源:我的 IP
类型:HTTP 协议:TCP 端口范围:80 来源:自定义 0.0.0.0/0
[EC2]
Amazon Linux2
t2.micro
VPC:wp-test-VPC
子网:wp-test-public-subnet-1a
自动分配的公共 IP: 有效
存储:保留默认
值 标签键:名称 值:wp-test-ec2
安全组:wp-test-sg
密钥对:
创建一个新的密钥对
密钥对名称 wp-test-key
现在我们已经使用AWS控制台完成了工作,我们将在服务器上安装和配置中间件。
使用 ssh 连接到服务器,并使用命令提示符或 Windows Powershell 指定密钥、用户名和公共 IP,如下所示。
ssh -i wp-test.pem ec2-user@[公共IP]
阿帕奇
让我们从安装 Apache 开始。
# yum 安装 httpd -y
如果最后一个词是“完成!”就可以了。
启动阿帕奇
# systemctl 启动 httpd
如下设置自动启动,这样即使实例重启也会自动启动。
# systemctl 启用 httpd
看看下面,如果启用了就OK了。
# systemctl 已启用 httpd
这次,我们将使用以下设置创建一个 VirtualHost。
路径:/etc/httpd/conf.d/wp-test.conf
服务器名称:wp-test
文档根目录:/var/www/html/wp-test
访问日志:/var/log/httpd/wp-test-access_log
错误日志:/var/log/httpd/wp-test-error_log
首先,创建一个文档根目录和一个用于确认的文件。
# vi /var/www/html/wp-test/index.html 测试
# vi /etc/httpd/conf.d/wp-test.conf <VirtualHost *:80> ServerName wp-test DocumentRoot "/var/www/html/wp-test" CustomLog "/var/log/httpd/wptest; -access_log" 组合ErrorLog "/var/log/httpd/wptest-error_log" </VirtualHost>
修改conf文件,重启Apache使其生效。
# systemctl 重新启动 httpd
在浏览器中搜索公网IP,如果显示“test”则确定
后删除index.html。
# rm -f /var/www/html/wp-test/index.html
PHP
让我们继续讨论 PHP。
默认情况下,只安装5.4系列,因此首先安装epel和remi存储库。
# yum info php 已加载插件:extras_suggestions、langpacks、priorities、update-motd 可用软件包名称:php Arch:x86_64 版本:5.4.16 发布:46.amzn2.0.2 大小:1.4 M 存储库:amzn2-core/2/x86_64 摘要:用于创建动态网站的 PHP 脚本语言 URL :http://www.php.net/ 许可证:PHP 和 Zend 和 BSD 说明:PHP 是一种 HTML 嵌入式脚本语言 PHP 试图使开发人员易于编写。 PHP 还为多个商业和非商业数据库管理系统提供内置数据库集成,因此使用 PHP 编写支持数据库的网页相当简单,最常见的是使用 PHP 编码。作为 CGI 脚本的替代品: : php 包包含模块(通常称为 mod_php):它向 Apache HTTP Server 添加了对 PHP 语言的支持。
epel存储库安装
# 百胜安装 https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
remi 存储库安装
# 百胜安装 http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
我们来看看是否包含7.3系列。
# yum info php --enablerepzo=remi-php73 已加载插件:extras_suggestions、langpacks、priority、update-motd remi-php73 | 3.0 kB 00:00:00 remi-php73/primary_db | 234 kB 00:00:01 排除由于存储库优先级保护可用软件包名称:php Arch:x86_64版本:5.4.16发布:46.amzn2.0.2大小:1.4 M存储库:amzn2-core/2/x86_64摘要:用于创建动态网站的PHP脚本语言URL: http://www.php.net/ 许可证:PHP 和 Zend 以及 BSD 说明:PHP 是一种 HTML 嵌入式脚本语言,PHP 试图使开发人员能够轻松地编写动态生成的网页。在几个商业和非商业数据库管理系统的数据库集成中,使用 PHP 编写一个支持数据库的网页相当简单。最常见的 PHP 编码可能是作为 CGI 脚本的替代品。软件包中包含模块(通常称为 mod_php):它将 PHP 语言的支持添加到 Apache HTTP Server。
这是5.4系列。
原因是 amzn2-core 存储库具有高优先级。
# less /etc/yum.repos.d/amazon-2-core.repo [amzn2-core] name=Amazon Linux 2 核心存储库mirrorlist=$awsproto://$amazonlinux.$awsregion.$awsdomain/$releasever/$产品/$target/$basearch/mirror.list优先级=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2启用=1metadata_expire=300mirrorlist_expire =300report_instanceid=yes【省略】
由于设置了“priority=10”,因此我们通过设置“priority=99”来降低优先级。
# vi /etc/yum.repos.d/amazon-2-core.repo [amzn2-core] name=Amazon Linux 2 核心存储库mirrorlist=$awsproto://$amazonlinux.$awsregion.$awsdomain/$releasever/$产品/$target/$basearch/mirror.list优先级=99 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2启用=1metadata_expire=300mirrorlist_expire =300report_instanceid=yes【省略】
请再次检查。
# yum info php --enablerepo=remi-php73 加载的插件:extras_suggestions、langpacks、priorities、update-motd 1 由于存储库优先级保护而排除的软件包可用软件包名称:php Arch:x86_64 版本:7.3.27 发布:1.el7。 remi 大小:3.2 M 仓库:remi-php73 摘要:用于创建动态网站的 PHP 脚本语言 URL:http://www.php.net/ 许可证:PHP 和 Zend 和 BSD 和 MIT 和 ASL 1.0 和 NCSA 描述:PHP 是PHP 试图使开发人员能够轻松编写动态生成的网页 PHP 还为多种商业和非商业数据库管理系统提供内置数据库集成,因此编写一个数据库。使用 PHP 启用网页相当简单:使用 PHP 编码可能是作为 CGI 脚本的替代品: php 包包含模块(通常称为 mod_php):它向 Apache 添加了对 PHP 语言的支持。 HTTP 服务器。
现在是7.3系列。
现在让我们也安装该模块。
# 百胜安装 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql --enablerepo=remi-php73
在文档根目录下创建一个名为index.php的文件。
# vi /var/www/html/index.php <?php phpinfo();
重新启动 Apache,在浏览器中搜索公共 IP,如果您看到类似上面的页面,那么就可以开始了。
MySQL
接下来是MySQL。
首先,我们来安装它。
# yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
如果你使用下面的命令检查mysql版本,我认为8系列已启用。
# yum repolist all repo id repo name status [省略] mysql57-community/x86_64 MySQL 5.7 社区服务器禁用 mysql80-community/x86_64 MySQL 8.0 社区服务器启用: 229 [省略]
这次我们要安装5.7系列,所以我们将禁用8系列并启用5.7系列。
禁用8系列
# yum-config-manager --disable mysql80-community 启用 5.7 系列 # yum-config-manager --enable mysql57-community
检查5.7系列是否启用。
# yum repolist all [省略] mysql57-community/x86_64 MySQL 5.7 社区服务器启用: 484 mysql80-community/x86_64 MySQL 8.0 社区服务器禁用 [省略]
好像还可以,所以我就安装5.7系列的。
# yum 安装 mysql-community-server
启动MySQL
# systemctl 启动 mysqld
就像Apache一样,将其设置为自动启动。
# systemctl 启用 mysqld
确认
# systemctl is-enabled mysqld 已启用
进入MySQL前先修改密码。
确认当前密码
# grep password /var/log/mysqld.log 【注意】为 root@localhost 生成临时密码:xxxxxxxxx
xxxxxx 部分是密码。
更改密码
# mysql_secure_installation 确保 MySQL 服务器部署的安全。 输入 root 用户的密码: [先前的密码] 用户帐户 root 的现有密码已过期。 新密码: [新密码] 重新输入新密码: [ 重新。 -enter] 'validate_password' 组件安装在服务器上。后续步骤将使用该组件的现有配置运行。估计密码强度:100 更改 root 的密码(按 y)。 |Y 表示是,任何其他键表示否) : y 新密码:【新密码】 重新输入新密码:【重新输入】 预计密码强度:100 您希望使用提供的密码继续吗?(按y |Y 表示“是”,任何其他键表示“否”): y 默认情况下,MySQL 安装有一个匿名用户,允许任何人登录 MySQL,而无需为其创建用户帐户。这仅用于测试。为了使安装过程更顺利,您应该在进入生产环境之前删除它们。只允许从“本地主机”连接。这确保其他人无法从网络猜测 root 密码?(按 y|Y 表示“是”,按任何其他键表示“否”): y 默认情况下成功。 ,MySQL 附带一个名为“test”的数据库,该数据库也仅用于测试,应在进入生产环境之前删除(按 y|Y 表示“是”,任何其他键否): y - 删除测试数据库...成功 - 删除测试数据库的权限...成功。重新加载权限表将确保迄今为止所做的所有更改立即生效? (按 y|Y 表示“是”,按任何其他键表示“否”): y 全部完成!
登录 MySQL 并为 Word Press 创建数据库。
登录 MySQL
# mysql -u root -p 输入密码:[您之前设置的新密码]
数据库创建
mysql > 数据库 wp_test_db;
用户创建
mysql >创建用户'wp_user'@'localhost',通过'password'使用mysql_native_password标识;
如果继续这样下去,创建的用户(wp_user)将无法操作数据库(wp_test_db),所以授予权限。
mysql >将 wp_test_db.* 上的所有权限授予 wp_user@'localhost';
mysql 现已设置完毕。
文字出版社
最后但并非最不重要的是Word Press。
您可以将其安装在任何地方,但这次我们将使用 ec2-user 主目录。
# cd /home/ec2-用户
安装Word Press包
# wget https://ja.wordpress.org/latest-ja.tar.gz
验证它是否已安装。
# ls 最新-ja.tar.gz
如果扩展名是gz,说明是压缩的,所以使用tar命令解压。
# tar -zxvf 最新-ja.tar.gz
使用 ls 命令验证是否已将其提取。
一个名为 wordpress 的新目录已创建。
# lslatest-ja.tar.gz wordpress
将wordpress目录下的所有目录和文件移动到文档根目录。
# mv ./wordpress/* /var/www/html/wp-test/
编辑 wp-config-sample.php 如下
# vi wp-config-sample.php /** WordPress 数据库名称 */ Define( 'DB_NAME', 'wp_test_db' ); /** MySQL 数据库用户名 */ Define( 'DB_USER', 'wp_user' ); /** MySQL 数据库密码 */ Define( 'DB_PASSWORD', '-GrrLr5A7ymN' );
如果您已经做到了这一步,那么这只是时间问题。
当您在浏览器中搜索公共 IP 时,您将看到如下屏幕。
单击“让我们开始吧!”并输入 wp-config-sample.php 中输入的内容(可以保留表前缀),
然后将创建 wp-config.php 文件,如图所示。系统会要求您制作一张纸并粘贴内容,因此请冷静地按照说明进行操作。
# vi /var/www/html/wp-test/wp-config.php {请粘贴您复制的内容}
返回浏览器并继续。
最后,确定标题和用户名,保存您的用户名和密码,然后按“安装 WordPress”。
登录 WordPress,适当发布,一旦反映,就大功告成了!