利用LNMP实现wordpress站点搭建

努力尽今夕,少年犹可夸。这篇文章主要讲述利用LNMP实现wordpress站点搭建相关的知识,希望能为你提供帮助。
    在第十四周的作业中,笔者演示了如何通过LAMP架构搭建wordpress(链接:??https://blog.51cto.com/u_15473594/5173068??,此篇主要是将之前的Apache替换为nginx服务。此次实验,笔者准备了三台虚拟机用于实验,其中一台CentOS7作为Nginx+php服务器,并将wordpress站点部署在该服务器上,取名blog-server;一台CentOS8服务器作为mysql数据库服务器,取名db-server;一台作为测试数据库远程登录的客户端,取名client。

  1. db-server服务器
1.1 安装服务
    笔者就在之前的实验中演示了编译安装MySQL和MariaDB,本次实验就直接通过yum安装MySQL。

1.2 修改配置文件
    按照惯例,我们安装好数据库服务后先修改配置文件,添加server-id和开启l二进制日志。

1.3 创建用户并授权
    数据库服务器的设置主要是创建wordpress站点的对应数据库和远程登录授权账号。笔者这边预期规划是将数据库名称、远程登录名与wordpress保持一致,由于默认安装的是MySQL8.0,故创建账号和授权需分两步进行。


1.4 检测环节
    客户端通过指定账号名、密*码和数据库对应的主机ip能完成登录,并能查看到授权的数据库,说明远程授权账号创建成功。



  1. 部署php服务
2.1 编译安装php7.4.11
2.1.1 安装依赖包
    php7.4版本的编译所需依赖包较多,包括gcc、openssl-devel、libxml2-devel、bzip2-devel、sqlite-devel、libmcrypt-devel和oniguruma-devel这8个,其中libmcrypt-devel和oniguruma-devel是需要靠epel源来进行安装。

    题外话:笔者在使用的是CentOS7版本,系统默认的是epel源已经无法安装部分服务,如各位在使用时想更换epel源,可执行wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo命令生成epel源,再执行yum clean allyum makecache命令清除旧缓存后生成新缓存。
2.1.2 下载并解压php源码包
    笔者在之前的LAMP架构搭建wordpress站点部分使用的是php7.3.10版本,此次实验换成7.4.11版本来进行编译安装(下载选择界面:??https://www.php.net/releases/??


    安装完毕,将源码包解压至指定文件夹。

2.1.3 执行configure脚本
    进入已解压的php目录下,执行configure脚本来生成服务安装路径及各类选项设置等,具体如下图所示。

2.1.4 编译安装
    执行make和make install命令进行编译安装,编译时可以根据虚拟机的实际情况来调大核数。


2.2 准备php配置文件
    拷贝解压包目录下的php.ini-production文件至/etc目录,并改名为php.ini作为php服务运行的核心配置文件。

    进入到/apps/php74/etc目录下,拷贝php-fpm.conf.default文件并改名为php-fpm.conf作为php-fpm进程服务配置文件。

    拷贝/apps/php74/etc/php-fpm.d目录下的www.conf.default文件并改名为www.conf作为php-fpm进程服务的拓展配置文件,同时对改配置文件进行如下图修改,访问日志文件路径需根据编译安装时指定的路径进行创建,用户名和组可改为任意角色,但要与后面Nginx服务的用户保持统一。

2.3 启动并验证php-fpm服务
    执行/apps/php74/sbin/php-fpm -t命令验证php-fpm服务是否编译安装成功,提示successful即为成功。同时我们可以拷贝解压文件下的/sapi/fpm/php-fpm.service至/usr/lib/systemd/system/目录作为服务启动脚本,重新加载服务后,即可使用传统的systemctl方式来开启或关闭服务。开启服务后,可以看到php服务的9000端口已经打开。



  1. 部署Nginx服务
3.1 编译安装Nginx1.18
    笔者在上周的作业中演示过如何进行Nginx1.18的编译安装,此次实验更换了虚拟机重新编译,详细过程就不多做描述了。
3.1.1 安装依赖包
    Nginx1.18的编译安装需gcc、pcre-devel、openssl-devel和zlib-devel四个依赖包。

3.1.2 执行configure脚本
    笔者就直接那之前下载的Nginx1.18源码包进行演示,将源码包解压后,进入解压目录执行configure脚本,指定程序安装路径等,需注意的是选项部分指定的服务用户和组要与php服务用户保持统一。

3.1.3 编译安装
    执行make & & make insatll命令进行编译安装。

3.2 准备服务启动脚本
  在/usr/lib/systemd/system/ 目录下创建Nginx服务脚本文件,内容如下图所示,因为编译安装默认的PID文件并不在/apps/nginx/run/目录下,故需创建该目录,同时修改Nginx服务配置文件中的该项设置。

3.3 加载并启动服务
    加载服务后,即可开启Nginx服务,服务开启后可见80端口已经打开。


3.4 配置Nginx支持fastcgi
    修改Nginx服务配置文件/apps/nginx/conf/nginx.conf,修改内容主要如下图所示server和location部分,server部分可指定服务端口号和是否绑定域名;location部分可指定数据目录、默认主页、实现php-fpm和实现状态页等。

    修改完毕执行/apps/nginx/sbin/nginx -t命令检测是否与语法错误,没语法错误即可重新加载服务。不过为了方便使用Nginx服务,建议还是对服务创建一个软链接来进行开启、重新加载等操作。

3.5 准备php测试页
    根据Nginx配置文件中的设置,数据目录是放在/data/nginx/wordpress目录下,该目录还不存在,因此还需手动创建。同时可以在该目录下创建一个php测试页。

    通过浏览器访问时,能正常显示php版本等信息即为成功。





  1. 部署wordpress
4.1 准备wordpress文件
    wordpress压缩包可在官网进行下载(下载界面:??https://cn.wordpress.org/download/??,笔者就直接拿之前的WordPress 5.9.2版本测试。解压后将目录下的所有的文件拷贝至数据目录/data/nginx/wordpress目录下,同时要将默认的属组和属主改为www。

4.2 初始化web界面
    电脑浏览器中输入绑定好的域名(需同时修改电脑端的hosts文件)即可进行web界面初始化,初始化过程如以下流程,需注意第二步的信息填写。





4.3 登录后台并发表图文
    登录后台管理界面,点击左侧“文章”—“写文章”即可添加新图文,保存后可在网站指定页查看相关图文。






  1. 其他设置
5.1 允许上传大文件
    Nginx默认只能上传1M以下文件,要利用php程序上传大图片,需修改Nginx和php配置文件中的三项配置。第一个是在Nginx配置文件的server部分添加client_max_body_size和指定值,另外两项在/etc/php.ini文件中修改,post_max_size默认为8M,upload_max_filesize默认为2M,这三项值可根据企业实际来进行调整。


5.2 安全加固
    客户端测试时,默认是会显示Nginx版本和响应头X-Powered-By信息,可分别在Nginx配置文件的server和location部分添加如下内容进行隐藏。

5.3 配置php开启opcache加速
    开启opcache加速可以提升php的性能,节省加载和解析php服务的开销。这块要在php的/etc/php.ini文件中进行修改,找到“[opcache]”,在下方添加“zend_extension=opcache.so”,同时取消“opcache.enable=1”前面的注释。
【利用LNMP实现wordpress站点搭建】

    推荐阅读