一、实验目的
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-05-Task-01 ~]# firewall-cmd --zone=public --add-port=80-82/tcp --permanent
[root@Lab-05-Task-01 ~]# firewall-cmd --reload
[root@Lab-05-Task-01 ~]# firewall-cmd --list-all
# 配置SELINUX,允许80-82端口提供服务
# 安装SELINUX的配置工具semanage
[root@Lab-05-Task-01 ~]# yum -y install policycoreutils-python-utils
# 查看SELINUX允许通过的HTTP端口(默认支持80、81)
[root@Lab-05-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-05-Task-01 ~]# semanage port -a -t http_port_t -p tcp 82
# 重新启动
[root@Lab-05-Task-01 ~]# reboot 2、安装Apache
安装Apache并配置,具体过程参照《实验04:使用 Apache 发布网站》。
3、安装PHP
# 更新epel源
[root@Lab-05-Task-01 ~]# yum -y install epel-release
[root@Lab-05-Task-01 ~]# yum -y update epel-release
# 删除缓存的无用软件包并更新软件源
[root@Lab-05-Task-01 ~]# yum clean all
[root@Lab-05-Task-01 ~]# yum makecache
# 下载安装PHP相应的模块
[root@Lab-05-Task-01 ~]# yum -y install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-json php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium
# 启用php模块
[root@Lab-05-Task-01 ~]# yum -y module enable php
# 查看PHP版本
[root@Lab-05-Task-01 ~]# php -v 验证LAMP环境
# 在Apache网站的根目录创建测试文件
[root@Lab-05-Task-01 ~]# echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
# 重启Apache服务
[root@Lab-05-Task-01 ~]# systemctl restart httpd 在浏览器中,输入http://ip址/phpinfo.php并按Enter键。如图 5-1所示,则表示安装成功。

图 5-1 验证LAMP环境搭建成功界面
成功搭建LAMP环境后,建议删除phpinfo.php测试文件,消除数据泄露风险。
[root@Lab-05-Task-01 ~]# rm -rf /var/www/html/phpinfo.php 4、安装MySQL
# 更新yum源
[root@Lab-05-Task-01 ~]# rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
# 安装MySQL
[root@Lab-05-Task-01 ~]# yum -y install mysql-community-server
# 查看MySQL的版本号
[root@Lab-05-Task-01 ~]# mysql -V
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
# 运行以下命令启动MySQL
[root@Lab-05-Task-01 ~]# systemctl start mysqld
# 设置MySQL开机启动
[root@Lab-05-Task-01 ~]# systemctl enable mysqld
[root@Lab-05-Task-01 ~]# systemctl daemon-reload
# 查看MySQL的初始密码
[root@Lab-05-Task-01 ~]# grep "password" /var/log/mysqld.log
2023-07-14T05:02:17.558846Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2*thbdr!X3e8
# MySQL的安全性配置
[root@Lab-05-Task-01 ~]# mysql_secure_installation 5、获取WordPress程序
进入Apache根目录,下载并解压WordPress。
[root@Lab-05-Task-01 ~]# cd /var/www/html/
# 安装下载工具
[root@Lab-05-Task-01 html]# yum -y install wget tar
# 下载WordPress安装包
[root@Lab-05-Task-01 html]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz
# 解压安装包
[root@Lab-05-Task-01 html]# tar zxvf latest-zh_CN.tar.gz
# 将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份文件。
[root@Lab-05-Task-01 html]# cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
# 赋予apache对相关目录的操作权限
[root@Lab-05-Task-01 html]# chown -R apache:apache /var/www/html/
[root@Lab-05-Task-01 html]# chmod -R 755 /var/www/html/
[root@Lab-05-Task-01 html]# chown -R :apache /var/www/html/wordpress 6、配置并发布WordPress程序
(1)进入MySQL数据库,为WordPress网站创建数据库,并且创建一个新用户管理WordPress库,提高安全性。
# 使用root用户登录MySQL,并输入密码。
[root@Lab-05-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 ' n';
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-05-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', 'PASSword123.');
/** MySQL主机 */
define('DB_HOST', 'localhost');
# 此处省略了部分提示信息
# --------------------wp-config.php文件--------------------
# 查看修改后的配置内容
[root@Lab-05-Task-01 wordpress]# cat /var/www/html/wordpress/wp-config.php | grep -E "define" (3)重启相关服务
[root@Lab-05-Task-01 wordpress]# systemctl restart httpd.service
[root@Lab-05-Task-01 wordpress]# systemctl restart mysqld.service 7、初始化WordPress安装
在浏览器地址栏输入http:// ip地址/wordpress,转至WordPress安装页,开始配置WordPress。具体如图5-2所示。按提示输入安装信息,点击按钮,完成安装WordPress,并创建站点。

图 5-2 WordPress安装页
8、访问测试
登录WordPress后,点击左上角创建的网站名,即可成功访问测试站点。具体如图5-3所示。

图 5-3 测试站点