一、实验目的
1、了解LAMP;
2、掌握使用WordPress建设网站。
二、实验学时
2 学时
三、实验类型
综合性
四、实验需求
1、硬件
每人配备计算机 1 台。
2、软件
Windows操作系统,安装Oracle VM VirtualBox软件,安装Mobaxerm软件。
3、网络
本地主机与虚拟机能够访问互联网,不使用DHCP服务。
4、工具
预先下载WordPress安装程序。
五、实验任务
1、完成LAMP环境的部署;
2、完成通过WordPress建设并发布个人网站。
六、实验环境
1、本实验需要VM 1台。
2、本实验VM配置信息如下表所示。

3、本实验拓扑图。
无
4、本实验操作演示视频。
本实验为视频集的第2集:网页链接
七、实验内容及步骤
1、系统基本配置
(1)使用VirtualBox创建本次实验所需虚拟机。
(2)配置SELinux和防火墙。
# 配置防火墙,允许80-82/tcp端口访问
[root@Lab-02-Task-01 ~]# firewall-cmd --zone=public --add-port=80-82/tcp --permanent
[root@Lab-02-Task-01 ~]# firewall-cmd --reload
[root@Lab-02-Task-01 ~]# firewall-cmd --list-all
# 配置SELINUX,允许80-82端口提供服务
# 安装SELINUX的配置工具semanage
[root@Lab-02-Task-01 ~]# yum -y install policycoreutils-python-utils
# 查看SELINUX允许通过的HTTP端口(默认支持80、81)
[root@Lab-02-Task-01 ~]# semanage port -l | grep http
# --------------------允许的HTTP端口--------------------
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
# --------------------允许的HTTP端口--------------------
# 增加82端口的访问策略
[root@Lab-02-Task-01 ~]# semanage port -a -t http_port_t -p tcp 82
# 重新启动
[root@Lab-02-Task-01 ~]# reboot 2、安装Apache
通过yum工具在线方式安装Apache并配置。
# 安装Apache HTTP Server
[root@Lab-02-Task-01 ~]# yum -y install httpd
# 启动httpd服务,并设置为自动启动
[root@Lab-02-Task-01 ~]# systemctl start httpd
[root@Lab-02-Task-01 ~]# systemctl enable httpd
# 查看httpd服务状态
[root@Lab-02-Task-01 ~]# systemctl status httpd
# 使用浏览器访问http://172.20.1.11,出现欢迎界面,说明Apache Httpd Server安装成功 3、安装PHP
# 更新源
[root@Lab-02-Task-01 ~]# yum -y update
# 删除缓存的无用软件包并更新软件源
[root@Lab-02-Task-01 ~]# yum clean all
[root@Lab-02-Task-01 ~]# yum makecache
# 下载安装PHP相应的模块
[root@Lab-02-Task-01 ~]# yum -y install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium
# 查看PHP版本
[root@Lab-02-Task-01 ~]# php -v 验证LAMP环境。
# 在Apache网站的根目录创建测试文件
[root@Lab-02-Task-01 ~]# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
# 重启Apache服务
[root@Lab-02-Task-01 ~]# systemctl restart httpd 通过浏览器访问http://172.20.1.11/phpinfo.php,出现如图 2-1所示,表示安装成功。

图2-1 验证LAMP环境搭建成功界面
成功搭建LAMP环境后,建议删除phpinfo.php测试文件,消除数据泄露风险。
[root@Lab-02-Task-01 ~]# rm -rf /var/www/html/phpinfo.php 4、安装MySQL
# 删除缓存的无用软件包并更新软件源
[root@Lab-02-Task-01 ~]# yum clean all
[root@Lab-02-Task-01 ~]# yum makecache
# 安装MySQL
[root@Lab-02-Task-01 ~]# yum -y install mysql-server
# 查看MySQL的版本号
[root@Lab-02-Task-01 ~]# mysql -V
mysql Ver 8.0.29 for Linux on x86_64 (Source distribution)
# 运行以下命令启动MySQL
[root@Lab-02-Task-01 ~]# systemctl start mysqld
# 设置MySQL开机启动
[root@Lab-02-Task-01 ~]# systemctl enable mysqld
[root@Lab-02-Task-01 ~]# systemctl daemon-reload
# 查看MySQL的初始密码
[root@Lab-02-Task-01 ~]# grep "password" /var/log/mysql/mysqld.log
2023-09-01T06:42:35.564870Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
# MySQL的安全性配置
[root@Lab-02-Task-01 ~]# mysql_secure_installation 5、获取WordPress程序
进入Apache根目录,下载并解压WordPress。
[root@Lab-02-Task-01 ~]# cd /var/www/html/
# 安装下载工具
[root@Lab-02-Task-01 html]# yum -y install wget tar
# 下载WordPress安装包
[root@Lab-02-Task-01 html]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz
# 解压安装包
[root@Lab-02-Task-01 html]# tar zxvf latest-zh_CN.tar.gz
# 将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份文件。
[root@Lab-02-Task-01 html]# cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
# 赋予apache对相关目录的操作权限
[root@Lab-02-Task-01 html]# chown -R apache:apache /var/www/html/
[root@Lab-02-Task-01 html]# chmod -R 755 /var/www/html/
[root@Lab-02-Task-01 html]# chown -R :apache /var/www/html/wordpress 6、发布
(1)进入MySQL数据库,为WordPress网站创建数据库,并创建一个新用户管理WordPress库。
# 使用root用户登录MySQL,并输入密码。
[root@Lab-02-Task-01 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.33 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 为WordPress网站创建数据库
mysql> create database wordpress;
Query OK, 1 row affected (0.02 sec)
# 查看密码强度规则
mysql> show variables like "%password%";
+----------------------------------------------+-----------------+
| Variable_name | Value |
+----------------------------------------------+-----------------+
| caching_sha2_password_auto_generate_rsa_keys | ON |
| caching_sha2_password_digest_rounds | 5000 |
| caching_sha2_password_private_key_path | private_key.pem |
| caching_sha2_password_public_key_path | public_key.pem |
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| generated_random_password_length | 20 |
| mysql_native_password_proxy_users | OFF |
| password_history | 0 |
| password_require_current | OFF |
| password_reuse_interval | 0 |
| report_password | |
| sha256_password_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+----------------------------------------------+-----------------+
23 rows in set (0.04 sec)
# 创建新用户
mysql> create user 'user'@'localhost' identified by 'CentosLab#PWD';
Query OK, 0 rows affected (0.03 sec)
# 赋予用户对数据库wordpress的全部权限
mysql> grant all privileges on wordpress.* to 'user'@'localhost';
Query OK, 0 rows affected (0.01 sec)
# 使配置生效,并退出
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> exit;
Bye (2)编辑wp-config.php文件。根据已配置的WordPress数据库信息,修改MySQL相关配置信息,修改代码如下所示。为WordPress网站创建数据库的用户与名为的数据库。
[root@Lab-02-Task-01 wordpress]# vi wp-config.php
# --------------------wp-config.php文件--------------------
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'user');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'CentosLab#PWD');
/** MySQL主机 */
define('DB_HOST', 'localhost');
# 此处省略了部分提示信息
# --------------------wp-config.php文件--------------------
# 查看修改后的配置内容
[root@Lab-02-Task-01 wordpress]# cat /var/www/html/wordpress/wp-config.php | grep -E "define" (3)重启相关服务
[root@Lab-02-Task-01 wordpress]# systemctl restart httpd.service
[root@Lab-02-Task-01 wordpress]# systemctl restart mysqld.service 7、初始化配置
在浏览器地址栏输入http:// 172.20.1.11/wordpress,按提示输入安装信息后点击按钮,完成安装并创建站点,如图2-2所示。

图 2-2 WordPress安装页
8、访问测试
使用浏览器访问创建的网站,如图2-3所示,说明WordPress安装部署完成。

图 2-3 测试站点