您现在的位置是:首页 >技术教程 >CentOS7上使用yum搭建LNMP架构并实现wordpress博客实战网站首页技术教程

CentOS7上使用yum搭建LNMP架构并实现wordpress博客实战

我是沐风晓月 2023-06-18 16:00:02
简介CentOS7上使用yum搭建LNMP架构并实现wordpress博客实战

前言

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

一. 实验环境

本次实验环境见下表

操作系统服务器IPhostname
centos7.910.0.0.7mufengrow7

如何查看相应的参数

二.安装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/

六.总结

  1. LNMP环境分别是“Linux”,“Nginx”,“Mysql”,“PHP”。
  2. 我们在部署php环境和MySQL数据库的时候需要考虑到代码需要什么版本的php。要清楚“约定大于配置”的意思。
  3. 本次实验都可以通过yum仓库进行安装,前提是找到对应软件的yum仓库
  4. php-fpm的配置可以根据需求进行修改。
  5. nginx配置文件中的“fastcgi_pass”的地址需要根据php-fpm的设置来定义,如果php-fpm与nginx不在同一服务器上,需要修改地址。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。