boxmoe_header_banner_img

环境来到萌姬神域

加载中

文章导读

简单网站服务器的建设-WordPress服务器速建


avatar
lraltas 2025年7月5日 21

此文章仅供新问云图工作室内部人员交流学习使用。


编辑版本

01月14日第一版 编辑人:LRAltas

04月02日第二版 编辑人:LRAltas

  1. 修正了部分命令错误
  2. 添加了正确方便的mysql安装姿势以及可能会出现的配置都正确但是WordPress报数据库连接错误的问题。

本教程旨在让大家熟悉一个网站的结构,以及所需要的服务,本教程将会依照传统的网站服务器架构来进行也就是LAMP/LNMP结构来进行。

在传统的web服务器架构LAMP之中,L所指的是Linux,A指的是Apache,M指的是Mysql(也可以是Mariadb,这个指的是web服务器的数据库),P指的是PHP。LNMP则只有服务器类型不一样,前者用的是Apache,而后者用的是Nginx。本教程所采用的是LNMP的架构。网站服务器的类型有很多,其余的大家可以自行在网上搜索,了解。

实验环境

实验系统:CentOS 9-Stream

实验步骤

前置环境准备

首先你要有一个CentOS8/9的虚拟机,具体的虚拟机安装步骤请参考文档:VMwareWorkStation上安装CentOS虚拟机

我这里使用的是最小化安装,虚拟机准备好了之后,我们需要先行安装一些必要准备,也是你们以后准备虚拟机必须要做的

更换系统软件仓库(换源)

由于CentOS7/8的系统生命周期已经停止,官方不在再其维护,所以你要是CentOS6/7/8的话,需要自行手动添加源,你可以参考这个文章:CentOS换源

如果你是最新的CentOS9那么无需换源,直接更新即可

关闭防火墙和SELinux

为了安全考虑不建议关,因为他俩都是CentOS自带的防火墙,都挺强劲的,但是学习部署阶段还是关上吧,以免出现你不理解的问题。

#关闭并取消防火墙的开机自启
systemctl stop firewalld && systemctl disable firewalld
vim /etc/selinux/config

改完后保运退出,之后直接reboot重启系统

重启后使用sestatus查看selinux情况,为disabled即为关闭成功

查看firewalld情况,如图即为关闭

实验开始

编译安装Nginx

首先我们先下载合适的Nginx源码包
#个人比较喜欢把下载的东西放在/usr/local/tools/下,你要是不喜欢可以换别的,记得住就行
mkdir -p /usr/local/tools/nginx 
#进入/usr/local/tools/nginx 文件夹
cd /usr/local/tools/nginx 
#下载源码包,源码包地址http://nginx.org/download/,你也可以自己选合适的版本
#如果提示没有wget命令,则要先安装wget:yum install wget -y
wget http://nginx.org/download/nginx-1.27.1.tar.gz
#解压源码包
tar -zxvf nginx-1.27.1.tar.gz
安装编译源码所需要的软件
#nginx编译依赖gcc环境
yum install -y gcc-c++ 
#pcre是一个Perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式.
yum install -y pcre pcre-devel 
#zlib该库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip。
yum install -y zlib zlib-devel 
#openssl是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http).
yum install -y openssl openssl-devel 
yum install -y make
编译安装Nginx
#进入刚刚解压的nginx源码包
cd /usr/local/tools/nginx/nginx-1.27.1
#configure命令在Linux系统中主要用于配置和准备软件包的编译和安装环境‌。
#--prefix=/usr/local/nginx指的是编译后的安装路径
#--with-http_ssl_module指的是编译的时候添加http_ssl_module模块(https)
./configure --prefix=/usr/local/nginx --with-http_ssl_module

之后在当前文件夹执行以下命令

make && make install 
验证安装

进入/usr/local/nginx查看文件夹下是否存在sbin目录,以及sbin目录下是否存在nginx可执行文件

cd /usr/local/nginx
ls
#可以进入sbin目录查看nginx版本以及编译信息
cd sbin 
./nginx -V

出现以下内容即为成功

启动Nginx

#当前位置为/usr/local/nginx/sbin
./nginx 

如果你是VMware WorkStation,那么你需要将你要配置你的虚拟网络,创建一个虚拟网卡,IP网段要和你宿主机当前的IP网段一致

改完之后点击确定即可

随后我们更改虚拟机网卡

选择我们刚刚创建的

确定后等待网络恢复,很快应该就好

之后查看分配到的IP

浏览器输入IP即可查看

若果你是工作室的网络,或者是使用的GUI界面,那么你直接在跳板机的浏览器里面输入虚拟机ip即可查看跳板机处于工作室网络内,与虚拟机处于同一个网络

出现这个即为成功

之后在同样的步骤把虚拟机网络改回NAT,不然你虚拟机无法联网

安装部署PHP环境

首先下载必要的软件包,因为不是特别很清楚到底要什么包,索性就都下了

安装epel-release与remi库

正常情况下yum库中的php软件版本普遍偏低,我们要自己添加remi仓库开启php的高版本的软件库

EPEL仓库是由Fedora项目维护的仓库,特点是非常注重稳定性,软件包经过严格的测试,与官方的软件包兼容性很好,但是一般不会提供PHP、MySQL等软件的最新版本。

REMI仓库由个人维护,主要是提供最新版本的主流软件包,但是相对不那么注重稳定性,所以不太适合对稳定性要求很高的生产环境。

官方仓库提供的PHP版本比较老,例如CentOS 7 官方仓库默认提供的是PHP 5.4版本,CentOS 8 官方仓库提供的PHP是7.2版本。

安装EPEL库,因为REMI库依赖EPEL库,所以先安装EPEL库:

#安装epel库
yum install epel-release -y
#安装remi库
#remi官方的源下载的很慢,很多网站现在都只支持CentOS8/9的,CentOS7快要落魄了都(bushi
#CentOS9-Stream
yum install https://mirrors.huaweicloud.com/remi/enterprise/remi-release-9.rpm -y
#CentOS8
yum install https://mirrors.huaweicloud.com/remi/enterprise/remi-release-8.rpm -y

安装完成之后我们要安装yum-utils来管理启用禁用等实用功能

yum install yum-utils -y
管理PHP的版本
#重置PHP
dnf module reset php
#设置PHP软件版本为8.4
dnf module enable php:remi-8.4
#安装PHP库
dnf module install php:remi-8.4

现在PHP库就已经准备好了

安装PHP相关的软件包

因为不确定以后都要用到些啥,索性就都安装了

#都装上以防万一
yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis php-common php-opcache php-memcached -y

安装好了之后我们要启动php-fpm

#启动php-fpm并且设置开机自启
systemctl enable php-fpm --now 
#查看php-fpm状态
systemctl status php-fpm

此时即为开启

php -v
验证功能是否正常
#创建info.php页面
vim /usr/local/nginx/html/info.php
#添加以下内容
<?php
phpinfo();
?>
#之后保存退出
#修改配置文件
vim /etc/php-fpm.d/www.conf

修改对应配置为以下内容

修改user和group为nginx

还有这个监听端口

listen = 9000字段不一定有,没有就加上

之后保存退出

重启php-fpm

systemctl restart php-fpm

编辑nginx配置

#nginx的配置文件默认叫做nginx.conf.default
#我们要查看/usr/local/nginx/conf/下是否存在nginx.conf文件,没有就复制一份出来
#cp /usr/local/nginx/conf/nginx.conf.default /usr/local/nginx/conf/nginx.conf
#编辑nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf

更改配置如下

在红框下方添加配置

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

随后我们保存退出

重新加载nginx配置

#重新加载nginx配置
./nginx -s reload 

之后我们在浏览器输入ip/info.php即可查看刚才创建的php_info界面

此时,php后端功能基本正常

安装MySQL/MariaDB

具体装哪个都行,我这里给到MySQL

我用的是CentOS9,嗯,最新的总会有各种各样的问题,你看到这个教程的时候我已经被MariaDB折磨一下午了,所以我毅然决然的换了MySQL,MariaDB老是报错缺galera-4,不好评价,只能下载galera,但是找不到galera-4,太典了。

#下载安装官方的CM源
mkdir /usr/local/tools/mysql-comm
cd /usr/local/tools/mysql-comm
wget https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
#安装MySQL源
yum install mysql84-community-release-el9-1.noarch.rpm
#更新库
yum makecache
#安装MySQL-server
yum install mysql-server -y
#启动mysql服务并且设置开机自启
systemctl enable mysqld --now
配置MySQL以及创建WordPress数据库
如果你想安装最新的MySQL(想方便快捷的看另一安装方式)
#在最新的CentOS9所能安装的8.4版本的MySQL新加了一个机制
#他会在安装的时候会自动在日志里生成一个临时密码,和以前的不一样,以前新安装时没有密码的
#可以用以下命令查看
grep 'temporary password' /var/log/mysqld.log

登录后,你需要修改root用户的密码。MySQL 8的密码策略要求新密码必须包含大小写字母、数字和特殊符号。

#将NewStrongPassword!替换为你的新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword!';
想更快速安装的方便的

直接从仓库安装即可(版本不一定是最新)

yum install mysql mysql-server -y

之后我们创建WordPress数据库

#创建名为wordpress的数据库
CREATE DATABASE wordpress;
#WORDPRESS-USER和WP-PASSWORD分别替换为你自己起的数据库用户的名字(非中文)以及密码,牢牢记住,后面要用。
CREATE USER 'WORDPRESS-USER'@'localhost' IDENTFIDIED by 'WP-PASSWORD';
#分配给WORDPRESS-USER所有的对于wordpress这个数据库的权限。
GRANT ALL ON wordpress.* to 'WORDPRESS-USER'@'localhost';
#退出
exit; 

到这里我们的MySQL部分就算配置完毕了

可能会出现的问题

如果你后面在确保其他配置均正确,selinux以及firewalld都关闭,wp-config.php配置正确之后,打开web端进行配置时出现问题数据库连接错误,有可能是因为你上述创建WodPress数据库时给到的WP-PASSWD强度低,你可以吧这个密码换成强密码应该会解决问题。

部署WordPress

下载最新中文版的WordPress
#进入nginx下面的html文件夹中
cd /usr/local/nginx/html
#下载WordPress中文版tar包
wget https://cn.wordpress.org/wordpress-6.7.1-zh_CN.tar.gz
#解压压缩包
tar -zxvf wordpress-6.7.1-zh_CN.tar.gz
#进入wordrpess文件夹,将里面的所有文件移出wordpress文件夹,并回到html文件夹下
cd wordpress && mv * .. && cd ..
配置WordPress
#首先先将WordPress的配置文件复制一份出来
cp wp-config-sample.php wp-config.php
#编辑配置文件
vim wp-config.php

这个是我创建的

完事后保存退出

更改nginx配置以支持WordPress
vim /usr/local/nginx/conf/nginx.conf
#在指定位置添加以下字段
#http的server块内部添加如下内容
#location / 模块本身就有,只要在里面添加一句即可
#原先测试的用的location ~ \.php$可以直接删掉
location / {
            try_files $uri $uri/ /index.php?$args;
        }
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
        }
location /wordpress {
            try_files $uri $uri/ /wordpress/index.php?$args;
        }
location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
 
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

完事后保存退出即可

之后重新加载Nginx配置

/usr/local/nginx/sbin/nginx -s reload

到此,我们的WordPress配置已经完成

WordPress初始化

打开浏览器,直接输入WordPress服务器IP/index.php,即可开始创建WordPress初始账户

完成配置后即可登录WordPress后台,默认后台为ip/wp-admin

到这里,我们的WordPress已经完成安装和配置了

剩下的内容就是不断的完善这个服务器了,剩下的就是自己解决左侧栏目中工具一项下面的站点健康中的问题了。



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码