一、环境准备

首先我们先介绍下环境和实验中所需要的包

环境:

我使用的是centos7.6的系统

建议关掉selinux和影响到80端口的防火墙策略

  1. selinux永久有效

修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。

  1. selinux即时生效
setenforce 0

关闭防火墙的方法为:

  1. 永久性生效
开启:chkconfig iptables on 

 关闭:chkconfig iptables off
  1. 即时生效,重启后失效
开启:service iptables start

 关闭:service iptables stop

程序包:(若要自己编译安装请移步(php)(mariadb)(nginx编译完参考下面的配置
nginx(使用系统默认带的光盘里的包,搭建个人博客不建议,因为没必要)
mariadb mariadb-server(数据库使用maridb-server也是系统本地镜像里的)

php-fpm(用来管理php程序的,另外nginx不支持php模块)

php-mysql(用来事项php与数据库连接)

wordpress程序包官网地址:https://wordpress.org/download/

wordpress主题:https://wordpress.org/themes/

yum install nginx mariadb-server php-fpm php-mysql -y
systemctl enable nginx mariadb php-fpm 设置开机自启
二、各服务配置

**(若按上文编译安装文件在 **(若不是在自定义的目录下)
Nginx配置

写nginx的配置文件也有两种方式,直接写主配置里,和写到conf.d文件夹下,这里使用第二种,其实没啥区别 (编译 vim /apps/nginx/conf/nginx.conf)

vim /etc/nginx/nginx.conf            
在http配置段里添加
http {
 fastcgi_cache_path /var/cache/nginx/fcgi_cache levels=1:2:1 keys_zone=fcgicache:20m inactive=120s;         

#特别注意:用来设置缓存的一些参数,当你要做多虚拟主机时一定要在重新设置以个并在server配置段里修改
}

这个主要是定义缓存的一些配置,可直接拿来用 (编译 # mkdir /apps/nginx/conf/conf.d
vim /apps/nginx/conf/conf.d/blog.conf )

vim /etc/nginx/conf.d/blog.conf   #必须conf后缀      
server {
      listen       80 ;     #监听地址
      server_name  top.top ;   #域名
      root         /data/wordpress ;   #web的根路径
      index index.php index.html index.hml;   #默认索引
      location / {
              try_files $uri $uri/ /index.php?q=$uri&$args;
      }
      location ~* \.php$ {
              fastcgi_pass 127.0.0.1:9000;
              fastcgi_index index.php;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
              fastcgi_cache fcgicache;
              fastcgi_cache_key $request_uri;
              fastcgi_cache_valid 200 302 10m;
              fastcgi_cache_valid 301 1h;
              fastcgi_cache_valid any 1m;
      }
      location ~* ^/(status|ping)$ {       #用来查看网站的状态信息,可以不添加
              fastcgi_pass 127.0.0.1:9000;
              fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
              include fastcgi_params;
      }
      location /files {           #用来在网页访问文件夹,相当于做了个文件夹映射,可根据个人情况添加
              root /data/wordpress;
              autoindex on;
              autoindex_exact_size off;
              autoindex_localtime on;
      }

}

nginx的配置基本就这些。
MySQL设置

在命令行输入mysql进入数据库

数据库的话可以再做些安全配置,这里就不演示啦

mysql
MariaDB [(none)]> create user 'wp_user'@'localhost' identified by '密码'; 创建个给wordpress使用的连接数据库的账号
MariaDB [(none)]> create database wordpress; 创建数据库
MariaDB [(none)]> grant all privileges on wordpress.* to 'wp_user'@'%';   给wp_user用户授权
建议创建好后登陆测试一下

mysql -uwp_user -p

Php-Fpm设置

它有好多的参数可以设置,也有好多坑,在这里会给大家说一下需要注意的地方 (编译 vim /usr/local/php/etc/php-fpm.d/www.conf)

vim /etc/php-fpm.d/www.conf
user = nginx   #设置所属者所属组,不设置的话在装wordpress升级主题时有各种各样的权限问题
group = nginx 
pm = ondemand   #推荐使用这个模式,对他的详细介绍参考http://blog.luckynm.cn/?p=65
pm.max_children = 50   #这些都可以配置也可以默认,看情况
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.status_path = /status
pm.status_path = /status   #后面这三个是用来设置在web页面上查看服务器状态信息的,配合nginx种server段的配置使用
ping.path = /ping
ping.response = pong

Wordpress配置

在做好前面的步骤后先不要启动,因为它们启动可能会有顺序问题

把下载下来的wordpress包传到本地,可以重新建一个文件夹存放也可以直接放到/root目录下

建议使用中文的包wordpress-5.0-zh_CN.tar.gz

mkdir -pv /data   创建data目录,这个要和nginx中root定义的根要一致
tar xvf wordpress-5.0-zh_CN.tar.gz -C /data/   解压到/data目录下
chown -R nginx:nginx /data/wordpress   修改所属者所属组,不该没办法换主题升级插件,等一系列问题
cd /data/wordpress
mv wp-config-sample.php wp-config.php   设置配置文件
vim wp-config.php
define('DB_NAME', 'wordpress');     WordPress数据库的名称
define('DB_USER', 'wp_user');     MySQL数据库用户名
define('DB_PASSWORD', '密码');   MySQL数据库密码
define('DB_HOST', 'localhost');     MySQL主机

启动

systemctl start mariadb php-fpm
systemctl start nginx

注意:php-fpm一定要在nginx前启动,要不然会提示找不到缓存文件夹
总结

以上就是我们搭建博客的全部内容,在搭建过程中一定要注意一些配置的细节,又可能一个参数没配,整个架构都起不来,这篇文章也仅代表我自己的见解,不同的系统有不同的配置,我总结了下平常小伙伴们可能遇到的问题,在这里和大家分享下:

解决办法:都是权限的问题,在php-fpm的/etc/php-fpm.d/www.conf里修改所属者所属组,默认时apache

user = nginx
group = nginx

问题描述:服务器内存小,mysql老自动停机


解决办法: 优化下pfp-fpm就好啦,本文中提到啦优化的方式,或参考:http://blog.luckynm.cn/?p=65
如果想要实现让nginx显示文件夹目录可参考:http://blog.luckynm.cn/?p=120

主题插件安装问题参考: