您现在的位置是:首页 >技术教程 >CentOS7上使用yum搭建LNMP架构并实现wordpress博客实战网站首页技术教程
CentOS7上使用yum搭建LNMP架构并实现wordpress博客实战
前言
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. 实验环境
本次实验环境见下表
操作系统 | 服务器IP | hostname |
---|---|---|
centos7.9 | 10.0.0.7 | mufengrow7 |
如何查看相应的参数
二.安装Nginx
此时LNMP环境已经实现L了,我们第二步实现LNMP中的N,也就是部署Nginx。
本次实验的Nginx就通过yum源进行安装,如果大家想知道Nginx是如何实现Nginx编译安装,参考沐风晓月:【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)该文章有非常详细的关于Nginx的编译安装过程,保证一看就会。
2.1 添加epel仓库
因为CerntOS 7.9的默认仓库没有epel仓库,而我们需要安装的nginx在epel仓库里,所以想要通过epel仓库安装nginx,必须先安装epel仓库。
[root@mufengrow7 ~]# yum install -y epel-release
2.2 安装nginx
使用yum进行安装nginx
[root@mufengrow7 ~]# yum install -y nginx
能查看到nginx的版本就证明nginx已经安装成功
[root@mufengrow7 ~]# nginx -version
nginx version: nginx/1.20.1
三.搭建PHP环境
3.1 查看php环境要求
因为PHP的环境需要部署wordpress博客,所以我们需要到wordpress博客官网上查看不同wordpress版本对应的php环境。
这里我们先到官方查看关于wordpress系统要求:https://cn.wordpress.org/about/requirements/
从下面的截图我们可以知道新版本的wordpress需要
-
PHP7.4或更高的版本
-
MySQL5.7或更高的版本(MariaDB10.3或更高)
-
但是也支持旧版本的PHP(PHP 5.6.20版本)环境和MySQL数据库(MySQL 5.0版本)
3.2 添加php7.4的repo仓库
本次实验我们直接使用yum的方式安装php7.4。
CentOS 7.9的默认仓库时没有php7.4的安装包。
但是php7版本的repo仓库,可以到清华镜像源的remi的enterprise中查找:https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/
[root@mufengrow7 ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
#通过命令查看yum仓库的repo文件,发现安装了很多的PHP仓库
[root@mufengrow7 ~]# ll /etc/yum.repos.d/
total 64
drwxr-xr-x. 2 root root 220 Nov 3 15:52 backup
-rw-r--r--. 1 root root 1687 Nov 3 16:01 CentOS-Base.repo
-rw-r--r--. 1 root root 999 Nov 3 16:02 epel.repo
-rw-r--r-- 1 root root 1358 Sep 5 2021 epel.repo.rpmnew
从上方的repo文件我们可以知道php7.4的repo仓库时在“remi-php74.repo”的repo文件里,所以我们可以使用yum-config-manager
将其他非php7.4版本的repo仓库禁用掉。
3.3 安装PHP7.4
我们通过repo文件知道了php7.4的安装包叫php74,所以它的安装包应该是叫php74XXX,那我们安装PHP7.4的时了,需要注意我们安装包的名称。
其次我们至少需要安装3个包,分别是支持动态请求的php-fpm包,支持php连接数据库的mysqlnd包和php的加速器opcache包。至于详细的包名叫什么我们可以通过yum search
命令来查找对应的安装包。
[root@mufengrow7 ~]# yum install -y php74-php-fpm php74-php-mysqlnd php74-php-opcache
3.4 配置PHP-FPM
想要修改php-fpm的配置文件,我们首先需要知道php-fpm的配置文件在哪里,我们可以通过下面的命令查看安装php-fpm是安装了什么:
[root@mufengrow7 ~]# rpm -ql php74-php-fpm
/etc/logrotate.d/php74-php-fpm
/etc/opt/remi/php74/php-fpm.conf
/etc/opt/remi/php74/php-fpm.d
从上面的结果来看,我们可以知道后缀为.conf
的文件是php-fpm的配置文件了。我们接下来就修改它们。
3.4.1 修改www.conf配置文件
[root@mufengrow7 ~]# vim /etc/opt/remi/php74/php-fpm.d/www.conf
#主要修改以下内容:
user = nginx #设置用户
group = nginx #设置组
listen = 127.0.0.1:9000 #设置监听地址,如果nginx与php-fpm不在同一服务器上,需要修改此地址
pm.status_path = /pm_status #php-fpm状态页
access.log = /var/log/nginx/php74/$pool.access.log #php-fpm access日志路径
slowlog = /var/log/nginx/php74/php-fpm/$pool-www-slow.log #php-fpm的slowlog日志路径
3.4.2 创建日志目录
[root@mufengrow7 ~]# mkdir -p /var/log/nginx/php74
3.4.3 检查配置文件
通过php-fpm命令查看修改配置文件语法是否有问题,如果没有问题则返回成功的信息。
[root@mufengrow7 ~]# /opt/remi/php74/root/usr/sbin/php-fpm -t
[27-Apr-2023 18:05:54] NOTICE: configuration file /etc/opt/remi/php74/php-fpm.conf test is successful
3.5 启动PHP-FPM并设置开机启动
[root@mufengrow7 ~]# systemctl start php74-php-fpm.service
[root@mufengrow7 ~]# systemctl enable php74-php-fpm.service
3.6 验证php环境
3.6.1 创建php网页目录
[root@mufengrow7 ~]# mkdir -p /apps/php
3.6.2 添加PHP代码
[root@mufengrow7 ~]# cat >> /apps/php/index.php <<EOF
<?php
phpinfo();
?>
EOF
3.6.2 修改nginx配置文件
[root@mufengrow7 ~]# vim /etc/nginx/conf.d/wordpress.conf
server {
listen 80;
location / {
root /apps/php/wordpress;
index index.php;
}
location ~ .php$ {
root /apps/php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3.6.3 检查nginx语法
[root@mufengrow7 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
3.6.4 启动nginx并设置开机启动
[root@mufengrow7 ~]# systemctl start nginx
[root@mufengrow7 ~]# systemctl enable nginx
3.6.5 检查php网页
通过浏览器访问以下网页,查看php版本和php信息:
10.0.0.7/index.php
访问网页结果如下:
通过上面的图片可以知道php环境部署成功,且能够通过nginx访问php代码。
四.安装MySQL数据库
本次实验使用MySQL5.7数据库
4.1 安装MySQL的yum仓库
[root@mufengrow7 ~]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
4.2 修改MySQL的repo文件
MySQL仓库默认使用MySQL8的仓库,我们需要改成使用MySQL5.7的仓库。
[root@mufengrow7 ~]# vim /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1 #设置设置为1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=0 #设置设置为0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
4.3 安装MySQL
[root@mufengrow7 ~]# yum install -y mysql-community-server
4.4 启动MySQL并设置开机启动
[root@mufengrow7 ~]# systemctl start mysqld.service
[root@mufengrow7 ~]# systemctl enable mysqld.service
4.5 修改MySQL密码
此处因为有风险提示,,所以我定义一个变量 pass=passwd
mima=Mufengrow123456@
然后下面的代码出现这两个都时候用$pass
和$mima
替代,你在用的时候一定要记得替换回来。
[root@mufengrow7 ~]# mysqladmin -uroot -p"`sed -En '/temporary password/s/.*: (.*)/1/p' /var/log/mysqld.log`"$pass
"$mima"
代码注释:
-
-p
:指定密码(该选项是可选)。 -
-E
:使用扩展的正则表达式。 -
-n
:取消sed的自动打印。 -
password
:指定新密码。
我是沐风晓月,博客主页:https://mufeng.blog.csdn.net/
4.6 创建用于wordpress的数据库和MySQL用户
[root@mufengrow7 ~]# mysql -uroot -pMufengrow123456@
#创建用于wordpress的数据库
mysql> create database mufengrow_wordpress;
Query OK, 1 row affected (0.00 sec)
#创建用于wordpress的用户
mysql> create user mufengrow@'%' identified by 'Mufengrow123456@';
Query OK, 0 rows affected (0.00 sec)
#给用户授权wordpress数据库
mysql> grant all on mufengrow_wordpress.* to mufengrow@'%';
Query OK, 0 rows affected (0.00 sec)
五.部署wordpress
5.1 下载wordpress资源包
可以在wordpress下载页面下载wordpress资源包
#进入php目录
[root@mufengrow7 ~]# cd /apps/php
#下载wordpress
[root@mufengrow7 php]# wget https://cn.wordpress.org/wordpress-6.2-zh_CN.tar.gz
#将测试文件移走
[root@mufengrow7 php]# mv index.php /tmp/
5.2 解压资源包
[root@mufengrow7 php]# tar xf wordpress-6.2-zh_CN.tar.gz
#查看解压出来的文件
[root@mufengrow7 php]# ls
wordpress wordpress-6.2-zh_CN.tar.gz
5.3 修改wordpress文件所属
[root@mufengrow7 php]# chown -R nginx.nginx /apps/php/
5.4 修改nginx配置
5.4.1 修改nginx配置文件
[root@mufengrow7 php]# vim /etc/nginx/conf.d/wordpress.conf
server {
listen 80;
location / {
root /apps/php/wordpress;
index index.php;
}
location ~ .php$ {
root /apps/php/wordpress; #修改为wordpress的路径
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/(ping|pm_status)$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
}
}
5.4.2 检查nginx语法
[root@mufengrow7 php]# nginx -t
5.4.2 重新读取
通过重启nginx,让nginx重新读取配置文件
[root@mufengrow7 php]# systemctl restart nginx
5.5 安装wordpress
浏览器访问:
10.0.0.7
使用以上地址访问会自动跳转到wordpress的安装页面,点击“现在就开始!”开始安装wordpress
输入数据库信息,点击“提交”
点击“运行安装程序”
输入wordpress站点信息,点击“安装wordpress”
点击“登录”,进入登录页面
输入用户信息,登录wordpress
登录wordpress的页面
到此LNMP+wordpress搭建完毕,如果php缺少某个模块可以自行安装,查看php模块可以通过php-fpm -m
命令查看。
我是沐风晓月,博客主页:https://mufeng.blog.csdn.net/
六.总结
- LNMP环境分别是“Linux”,“Nginx”,“Mysql”,“PHP”。
- 我们在部署php环境和MySQL数据库的时候需要考虑到代码需要什么版本的php。要清楚“约定大于配置”的意思。
- 本次实验都可以通过yum仓库进行安装,前提是找到对应软件的yum仓库
- php-fpm的配置可以根据需求进行修改。
- nginx配置文件中的“fastcgi_pass”的地址需要根据php-fpm的设置来定义,如果php-fpm与nginx不在同一服务器上,需要修改地址。