使用LNMP部署WordPress博客网站

一、环境分配

类型

版本号

Linux

CentOS 7.6

内核版本号

3.10.0-1127.el7.x86_64

Nginx版本 Nginx 1.18.0
php-fpm php72-fpm
SQL  mysql 5.7.28
WordPress WordPress 5.4.1

 

 

 

 

 

 

 

 

 

 

 

 

=========================================

二、安装Nginx

 1、安装 Nginx 依赖库

[root@duduhome ~]# yum install lrzsz wget git make cmake gcc gcc-c++ pcre pcre-devel openssl openssl-devel ncurses-devel libaio bison git ncurses -y

2、安装Nginx(以源码安装为例)

PS:这里不会以写 yum 安装的方式,yum安装的方式直接按官网的方法来就行,一般在公司中,基本都是源码安装方式的多,这样灵活性强。

2.1、创建 Nginx 用户,用于运行Nginx,创建网站数据存放目录

# 创建Nginx运行用户[root@duduhome ~]# useradd -s /sbin/nologin -M www
# -s :指定bash目录,nologin表示该用户不能登录
# -M:不创建home目录
# 创建网站数据存放目录[root@duduhome ~]# mkdir -p /data/www/html && mkdir -p /data/www/error_page

 2.2、下载Nginx源码包

[root@duduhome ~]# wget -c http://nginx.org/download/nginx-1.18.0.tar.gz && tar zxf nginx-1.18.0

 2.3、编译并安装Nginx

# 预编译
[root@duduhome nginx-1.18.0]# ./configure --user=www  --group=www  --prefix=/usr/local/nginx  --with-http_ssl_module  --with-http_stub_module  --with-pcre

# 没有报错后直接安装
[root@duduhome nginx-1.18.0]# make  && make install

2.4、配置文件参数(由于篇幅问题,直接贴上配置文件代码,已经带上 证书的配置)

user  www;
worker_processes  auto;

events {
    use epoll;
    worker_connections  65565;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    # 响应头信息状态,更改响应头里面的Server字段用
    server_tokens off;

    # 加速访问,sedfile:直接内核处理,tcp_nopush:不阻塞
    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    # 防爬虫,30秒内最多只能请求100次
    keepalive_timeout   30;
    keepalive_requests  100;

    # 开启压缩文件, 文件大于10K后就开始进行压缩,
    # 只对文件的类型是text/plain text/xml 的文件压缩
    gzip  on;
    gzip_min_length 10k;
    gzip_types  text/plain  text/xml;   # 压缩类型,公司里面开发会说明
    gzip_comp_level 5;                  # 压缩级别

    server {
      listen 443 ssl;

      # 填写绑定证书的域名
      server_name www.xxxxxx.com;
      # 网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
      root /data/www/html;
      index index.html index.htm index.php;

      # 证书文件名称
      ssl_certificate  /data/www/html/src/ssl/1_www.xxxxx.com_bundle.crt;
      # 私钥文件名称
      ssl_certificate_key /data/www/html/src/ssl/2_www.xxxxx.com.key;
      ssl_session_timeout 5m;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;

      location / {
         index index.php index.html index.htm;
      }

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

       # deny access to .htaccess files, if Apache's document root
       # concurs with nginx's one
       location ~ /\.ht {
         deny  all;
       }
    }

    server {
        listen 80;
        #填写绑定证书的域名
        server_name www.xxxxxx.com;
        #把http的域名请求转成https
        return 301 https://$host$request_uri;
    }
}

 

  =========================================

三、搭建php-fpm7.2版本)

1、安装php-fpm

# CentOS 7 Yum里面没有php7.0以上的,所以要更新下repo源
[root@duduhome nginx-1.18.0]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[root@duduhome nginx-1.18.0]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm


# 安装 php-fpm 7.2版本
[root@duduhome nginx-1.18.0]# yum install php72w php72w-devel php72w-fpm php72w-mysql -y

 2、配置php-fpm的配置文件

[root@duduhome nginx-1.18.0]# vim /etc/php-fpm.d/www.conf

/* 
把里面的 
    user = apache   group = apache
更改为
    user = www   group = www

因为我只有一台服务器,所以
    listen = 127.0.0.1:9000
我就不更改了,若要设置静态分离,这里就要设置为你的动态处理的服务器IP
*/

 

  =========================================

四、安装mysql数据库

1、安装方式:

  • 源码安装(我使用的这是这个方法,不过安装速度特别慢)
  • 免安装直接使用(下载来解压直接就能使用)

2、获取方式:

# 下载mysql:
[root@duduhome opt]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.28.tar.gz
# 下载boost:
[root@duduhome opt]# wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gztar xf boost_1_59_0.tar.gz

# 下载二进制包(免安装,解压直接使用):
wget -c  https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar

 3、安装mysql5.7.28数据库

# 安装mysql依赖包
[root@duduhome ~]# yum install lrzsz wget git make cmake gcc gcc-c++ pcre pcre-devel openssl openssl-devel ncurses-devel libaio bison git ncurses numactl numactl-devel -y

# 解压源码包
[root@duduhome ~]# tar zxf mysql-5.7.28.tar.gz   && cd mysql-5.7.28
[root@duduhome ~]# tar zxf boost_1_59_0.tar.gz && mv boost_1_59_0 boost

# 预编译
[root@duduhome mysql-5.7.28]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/usr/local/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0 -DWITH_BOOST=../boost
# 安装:
[root@duduhome mysql-5.7.28]# make && make install

4、修改配置文件

[root@duduhome opt]# vim /etc/my.cnf

[mysqld]
server-id=1
log-bin=mysql-bin
basedir=/usr/local/mysql
datadir=/data/mysql
port=3306
socket=/data/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/data/mysql/logs/mysql.log
pid-file=/data/mysql/mysql.pid

#
# include all files from the config directory
#!includedir /etc/my.cnf.d

 5、创建数据库数据目录和所需文件(以配置文件里面的参数为主)

# 数据库数据存放目录:
[root@duduhome ~]# mkdir /data/mysql/

# 日志文件:
[root@duduhome ~]# mkdir /dat+a/mysql/logs
[root@duduhome ~]# touch /data/mysql/logs/mysql.log

# 给所有mysql目录权限:
[root@duduhome ~]# chown mysql. -R /data/mysql

# 给日志文件写、执行权限:
[root@duduhome ~]# chmod 755 /data/mysql/logs/mysql.log

 PS:在启动的时候,若有报错,请按错误提示来处理,但是按这个来,一般不会有问题

6、初始化数据库

# 无临时密码(--initialize-insecure)
[root@duduhome ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/3306 --basedir=/usr/local/mysql


#有临时密码(--initialize)
[root@duduhome ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/3306 --basedir=/usr/local/mysql




# 使用无临时密码初始化时,初始化完成就可以直接启动mysql,然后连接到数据库
# 而使用的是有临时密码的方式初始化时,在启动数据库后,要先密码下密码,然后才能连接到数据库

7、mysql数据库的重启关闭命令

# 启动:
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server start

# 重启:
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server restart
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server reload

# 停止:
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server stop

# 运行状态:
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server status

# 查看帮助:
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server --help
[root@duduhome opt]# /usr/local/mysql/support-files/mysql.server -h

 

 =========================================

五、搭建WordPress网站环境

1、获取WordPress源码

[root@duduhome ~]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz

2、把wordpress网站代码拷贝到网站数据目录下

# 解压:
[root@duduhome ~]# tar zxf wordpress-5.4.1-zh_CN.tar.gz  && cd wordpress-5.4.1

# 拷贝网站代码到网站数据目录下:
[root@duduhome wordpress-5.4.1]# mv wordpress/*  /data/www/html/

3、给网站数据目录配置权限,让网站其能正常运作

[root@duduhome wordpress-5.4.1]# chown www. -R /data/www/html 

 4、创建数据库数据

4.1连接数据库

  • 初始化无密码方式:
    [root@duduhome ~]# /usr/local/mysql/bin/mysql
  • 初始化生成临时密码方式:
# 先修改my.cnf配置文件,让其能空命令登录mysql,否则会报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using # password: NO)

[root@www_1 ~]# vim /etc/my.cnf
# 在 [mysqld] 的最后一行加上一句:“skip-grant-tables”
# 然后保存,在重启下 mysql 即可正常连接到数据库

[root@www_1 ~]# /usr/local/mysql/support-files/mysql.server restart
[root@www_1 ~]# /usr/local/mysql/bin/mysql


# 修改密码:
mysql> update mysql.user set authentication_string=password("WS5mNoir69vEN!H6iw") where user="root";
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

ysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 


# 测试下用密码是否可以登录上Mysql:
mysql> quit;
Bye
[root@www_1 ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.28

mysql> 
# 登录成功!!!
# 这个时候要修改新的密码,否则下次登录进Mysql后,在创建表之类的就会出现 “ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statemen”的错误

# 重新修改密码:
mysql> alter user 'root'@'localhost' identified by '&E83fcl1Al#NvnqF';
Query OK, 0 rows affected (0.00 sec)

mysql>

 4.2创建wordpress网站使用的数据库

# 创建数据库:
mysql> create database ddhome charset=utf8;
Query OK, 1 row affected (0.00 sec)

# 授权网站连接:
mysql> grant all on ddhome.* to "wordpress"@192.168.174.130 identified by "P&rQ4$scC#5Cujxr";
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>  

5、前端上完成最后的wordpress配置操作

 

posted @ 2020-05-20 15:47  free天蝎小白  阅读(395)  评论(2编辑  收藏  举报