48小时系统班试听入口

基于LNMP的WordPress搭建及常见问题处理(详细教程)

发布作者:新盟教育 发布日期:2022-11-11 浏览人数:3124人

运维技术点

一、需求说明和搭建环境


1.1 需求说明

1)访问方式:ip/blog

2)账号:admin/密码:OpDccvC7gVjwoWu700

3)wordpress版本:6.0。

4)主题/插件:可以通过可视化界面添加任意主题/插件。

5)安装两个PHP版本,可以实现版本切换。

1.2 搭建环境

  • Linux:centOS 7.6。

  • Nginx:1.20.1。

  • Mysql:5.7.38。

  • PHP:7.4.28 and 7.3.28。

二、LNMP环境搭建


2.1 准备编译环境

1)关闭防火墙:

systemctl stop firewalld


systemctl disable firewalld


systemctl status firewalld


2)关闭selinux:

setenforce 0


vim /etc/sysconfig/selinux



修改完selinux后,重启Linux虚拟机,配置生效。

2.2 安装Nginx

yum -y install nginx


nginx -v      # 查看nginx版本


2.3 安装MySQL

rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm


yum -y install mysql-community-server --nogpgcheck


mysql -V  # 查看mysql版本


systemctl start mysqld


systemctl enable mysqld


systemctl daemon-reload


2.4 安装PHP7.4.28(源码安装)

在/usr/local目录下创建php7.4目录:

mkdir -p /usr/local/php7.4


安装依赖包:

yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel sqlite-devel oniguruma-devel


下载并解压php7.4.28源码包

wget https://www.php.net/distributions/php-7.4.28.tar.gz


tar zxvf php-7.4.28.tar.gz


进入php-7.4.28/目录:

cd php-7.4.28/


配置变量:

./configure -prefix=/usr/local/php7.4  -with-zlib-dir  -enable-mbstring  -enable-soap -enable-calendar -with-curl  -disable-rpath -enable-inline-optimization -with-bz2 -with-zlib -enable-sockets -enable-sysvsem -enable-sysvshm -enable-pcntl -enable-mbregex   -enable-exif -enable-bcmath -with-mhash -with-pdo-mysql -with-mysqli   -with-openssl -with-fpm-user=nobody -with-fpm-group=nobody  -enable-ftp -with-gettext -with-xmlrpc -with-xsl -enable-opcache -enable-fpm -with-iconv


编译安装(时间较长,耐心等待):

make all install


检查编译安装结果:

make test


cp /usr/local/php7.4/etc/php-fpm.conf.default /usr/local/php7.4/etc/php-fpm.conf


cp /usr/local/php7.4/etc/php-fpm.d/www.conf.default /usr/local/php7.4/etc/php-fpm.d/www.conf


ps -ef |grep php-fpm


进入php7.4.28配置文件,修改配置:

vim /usr/local/php7.4/etc/php-fpm.d/www.conf



启动php7.4.28:

/usr/local/php7.4/sbin/php-fpm


2.5 安装PHP7.3.28(源码安装,没有需求可不装)

在/usr/local目录下创建php7.3目录:

mkdir -p /usr/local/php7.3


安装依赖包(7.4.28已安装过,无需重复安装):

yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel sqlite-devel oniguruma-devel


返回到根目录:

cd ~


下载并解压php7.3.28源码包:

wget https://www.php.net/distributions/php-7.3.28.tar.gz


tar zxvf php-7.3.28.tar.gz


进入php-7.3.28/目录:

cd php-7.3.28/


配置变量:

./configure -prefix=/usr/local/php7.3  -with-zlib-dir  -enable-mbstring  -enable-soap -enable-calendar -with-curl  -disable-rpath -enable-inline-optimization -with-bz2 -with-zlib -enable-sockets -enable-sysvsem -enable-sysvshm -enable-pcntl -enable-mbregex   -enable-exif -enable-bcmath -with-mhash -with-pdo-mysql -with-mysqli   -with-openssl -with-fpm-user=nobody -with-fpm-group=nobody  -enable-ftp -with-gettext -with-xmlrpc -with-xsl -enable-opcache -enable-fpm -with-iconv


编译安装(时间较长,耐心等待):

make all install


检查编译安装结果

make test


cp /usr/local/php7.3/etc/php-fpm.conf.default /usr/local/php7.3/etc/php-fpm.conf


cp /usr/local/php7.3/etc/php-fpm.d/www.conf.default /usr/local/php7.3/etc/php-fpm.d/www.conf


ps -ef |grep php-fpm


进入php7.3.28配置文件,修改配置:

vim /usr/local/php7.3/etc/php-fpm.d/www.conf



启动php7.3.28:

/usr/local/php7.3/sbin/php-fpm


2.6 配置Nginx

在/etc/nginx/conf.d/目录下创建wordpress的配置文件:

vim /etc/nginx/conf.d/wordpress.conf


将下列配置文件复制粘贴到wordpress.conf中:

server {
listen 80;
server_name 127.0.0.1;
access_log /usr/local/nginx/logs/wordpress/access2.log main;
error_log /usr/local/nginx/logs/wordpress/error2.log;
root /wordpress/wordpress_01/blog/;
error_page 500 502 503 504 /50x.html;
location test/ {
rewrite ^test(.*)$ wp-admin$1 last;
}
location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$uri&$args;
}
location = /50x.html {
root html;
}
location ~ ^(.+\.php)(.*)$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass 127.0.0.1:9001;   # 配置一个php不需要这一行
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
fastcgi_buffers 8 128k;
fastcgi_connect_timeout 300;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
}
}


手动创建日志目录:

mkdir -p  /usr/local/nginx/logs/wordpress/


手动创建日志文件:

vim /usr/local/nginx/logs/wordpress/access2.log


vim /usr/local/nginx/logs/wordpress/error2.log


启动Nginx:

systemctl start nginx


systemctl enable nginx


systemctl status nginx


2.7 配置MySQL

运行以下命令查看/var/log/mysqld.log文件,获取并记录root用户的初始密码:

grep 'temporary password' /var/log/mysqld.log


运行以下命令配置MySQL的安全性:

mysql_secure_installation


输入初始密码,然后根据提示输入新密码(新密码要求大小写数字特殊符号都要有,否则会提示重置密码错误),碰到选项一律选y。


三、WordPress部署安装


3.1 创建新的数据库,用户,并进行授权

登录mysql数据库:

mysql  -uroot -p‘你设置的密码’


创建数据库:

create database wordpress_01;


创建数据库用户:

create user  admin@'%' identified by '你设置的密码';


数据库wordpress_kol_kr_02授权:

grant all privileges on wordpress_01.* to admin@你自己的ip地址 identified by '你设置的密码';


刷新系统权限表:

flush privileges;


3.2 wordpress部署安装

下载wordpress:

wget -P /wordpress https://cn.wordpress.org/wordpress-6.0-zh_CN.zip


进入下载目录:

cd  /wordpress


解压:

unzip wordpress-6.0-zh_CN.zip


mkdir -p ./wordpress_01/blog


mv ./wordpress/*   ./wordpress_01/blog


在浏览器中输入ip,进入wordpress安装页面:


点击现在就开始:


可能出现以下报错,只需要按照提示创建文件即可(注意在文件末尾加上 ?> 复制进去的没有带):


解决报错后,进入以下界面,配置完成后,点击安装:


安装成功:


进入登录页面,输入用户名密码,进行登录:


四、常见问题处理


将常规和固定链接改为文章标题后主页出现File not found.报错信息:



报错信息:

解决方法:在nginx子配置文件里添加伪静态规则。

把下面的 blog 改成你二级目录的名字添加到虚拟主机配置文件里面即可:

location /blog/ {
    index index.html index.php;
    if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /blog/index.php;
    }
}
rewrite /blog/wp-admin$ $scheme://$host$uri/ permanent;


修改完成后重启nginx:

systemctl restart nginx


安装主题和插件时提示下图信息:


解决方法:在wp-config.php中添加如下代码:

define("FS_METHOD","direct"); 
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

然后把worpress的属主属组改为www.www:

chown  -R  www.www  /wordpress



推荐阅读

>>>新手必备-Linux入门之云计算是什么

>>>红帽认证入门-Linux系统介绍及企业版本选型

>>>新手必备-Linux系统安装配置+Xshell远程连接

>>>Linux常用命令行合集之绝对路径和相对路径

>>>软连接与硬连接



运维界升职加薪必备的云计算技术,你学了吗?

学完高级运维云计算课程之后,你可以:

  • 跨越90%企业的招聘硬门槛

  • 增加70%就业机会

  • 拿下BAT全国TOP100大厂敲门砖

  • 体系化得到运维技术硬实力

  • 技术大佬年薪可达30w+