WordPress / 网站服务

WordPress建站教程

浅时光 · 2月16日 · 2020年 8685次已读

一、环境准备


1.1:系统环境设置

[[email protected] ~]# yum install vim lrzsz net-tools ntp wget

1.1.1:关闭selinux

#查看selinux状态
[[email protected] ~]# sestatus
#关闭selinux
[[email protected] ~]# setenforce 0
#修改配置文件
[[email protected] ~]# sed -ri 's/SELINUX=enforcing/SELINUX=disable/' /etc/selinux/config

1.1.2:重启系统

[[email protected] ~]# reboot

1.1.3:关闭防火墙

# 检查默认防火墙状态, 如果返回not running,可以跳过后面的命令
[[email protected] ~]# firewall-cmd --state

#停止并禁用firewalld:
[[email protected] ~]# systemctl stop firewalld     # 停止firewalld
[[email protected] ~]# systemctl disable firewalld  # 禁用firewall开机启动

1.1.4:时间同步

# 检查机器当前时间和时区是否一致,若相互之间差别大于3s(考虑批量执行时的时差),建议校时。
[[email protected] ~]# yum -y install ntp
[[email protected] ~]# date -R
# 查看和ntp server的时间差异(需要外网访问,如果内网有ntpd服务器,自行替换域名为该服务的地址)
[[email protected] ~]# ntpdate -d cn.pool.ntp.org

#如果输出的最后一行offset大于1s建议校时;和ntp服务器同步时间
[[email protected] ~]# ntpdate cn.pool.ntp.org

1.2:配置YUM源

1.2.1:获取BASE源

文章来源(Source):https://www.dqzboy.com
#备份默认源
[[email protected] ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

#获取网络源
[[email protected] ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo

#更新缓存
[[email protected] ~]# yum clean all
[[email protected] ~]# yum makecache

1.2.2:获取EPEL源

[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo

#更新缓存
[[email protected] ~]# yum clean all
[[email protected] ~]# yum makecache

二、部署MySQL


  • 我这里使用RPM方式安装MySQL8.0版本

2.1:下载YUM源

[[email protected] ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2.2:安装YUM源

[[email protected] ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm

2.3:安装 MySQL 服务端

  • 查看 mysql server
文章来源(Source):https://www.dqzboy.com
[[email protected] ~]# yum repolist enabled | grep "mysql.*-community.*"
[[email protected] ~]# yum repolist all | grep mysql
  • 安装
[[email protected] ~]# yum install mysql-community-server

2.4:启动 mysql 服务

[[email protected] ~]# systemctl start mysqld.service
[[email protected] ~]# systemctl enable mysqld.service
[[email protected] ~]# systemctl status mysqld.service

2.5:数据库密码配置

2.5.1:查看登陆密码

[[email protected] ~]#  cat /var/log/mysqld.log | grep 'password'

2.5.2:登陆

[[email protected] ~]# mysql -uroot -p
  • 到这里 MySQL 就完全安装完成了

2.5.3:重置密码

  • 8之前是 validate_password_     8之后validate_password.
# 密码验证策略低要求
mysql> set global validate_password.policy=0; (0或LOW代表低级)

# 密码至少要包含的小写字母个数和大写字母个数
mysql> set global validate_password.mixed_case_count=0;

# 密码至少要包含的数字个数。
mysql> set global validate_password.number_count=0; 

# 密码至少要包含的特殊字符数
mysql> set global validate_password.special_char_count=0; 

# 密码长度
mysql> set global validate_password.length=4;  #8.0最小长度为4

# 再次设置密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'dqz123';
mysql> flush privileges;

mysql> SHOW VARIABLES LIKE 'validate_password%';

2.6:创建用户和数据库

2.6.1:创建数据库

mysql> CREATE DATABASE `wordpress` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 修改字符集
[[email protected] ~]# vim /etc/my.cnf
[mysqld]
......
character-set-server=utf8mb4

2.6.2:创建用户

mysql> create user [email protected] identified with mysql_native_password by 'dqz123';

2.6.3:设置权限

mysql> grant all privileges on wordpress.* to [email protected];
mysql> flush privileges;

2.6.4:登入测试

[[email protected] ~]# mysql -uwordpress -p
 Enter password: 
mysql> show databases;
WordPress建站教程-浅时光博客

三、部署nginx


  • 这里我采用RPM包安装最新稳定版nginx

3.1:安装

[[email protected] ~]# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm

[[email protected] ~]# rpm -ivh nginx-1.16.1-1.el7.ngx.x86_64.rpm

[[email protected] ~]# nginx -v
nginx version: nginx/1.16.1

3.2:启动

#做一些性能优化
[[email protected] ~]# vim /etc/nginx/nginx.conf
worker_processes  2;			//根据主机CPU核心进行配置,不得高于主机核数
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
    accept_mutex on;
    multi_accept on;
}

http {
    ...
    sendfile        on;
    tcp_nopush     on;
    send_timeout 10s;
    keepalive_timeout  65;
    server_tokens off;    # 隐藏Nginx版本号
}

#配置代码存储位置
[[email protected] ~]# vim /etc/nginx/conf.d/default.conf
WordPress建站教程-浅时光博客
#启动前检查配置文件
[[email protected] ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

#创建目录并写入一个测试页面,如果是空目录则会显示403
[[email protected] ~]# mkdir -p /var/www/wordpress
[[email protected] ~]# cat /var/www/wordpress/index.html
<h1> Hello World </h1>

#启动
[[email protected] ~]# systemctl start nginx
[[email protected] ~]# systemctl enable nginx
[[email protected] ~]# systemctl status nginx

3.3:访问

  • 测试完成后把这个页面删除
WordPress建站教程-浅时光博客

四、部署PHP


  • 以下2个版本选择其中一个版本进行安装

4.1:PHP73w版本安装

1.1:安装

文章来源(Source):https://www.dqzboy.com
[[email protected] ~]# yum -y install epel-release

[[email protected] ~]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 
[[email protected] ~]# yum search php

[[email protected] ~]# yum --enablerepo=remi install php73-php php73-php-pear php73-php-bcmath php73-php-mysqlnd php73-php-gd php73-php-common php73-php-fpm php73-php-intl php73-php-cli php73-php php73-php-xml php73-php-opcache php73-php-pecl-apcu php73-php-pdo php73-php-gmp php73-php-process php73-php-pecl-imagick php73-php-devel php73-php-mbstring php73-php-zip php73-php-ldap php73-php-imap php73-php-pecl-mcrypt

1.2:启动

#启动之前做一些调优,php.ini最后添加如下内容
[[email protected] ~]# vim /etc/opt/remi/php73/php.ini
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1

#如果你运行的是nginx而不是apache,修改
[[email protected] ~]# vim /etc/opt/remi/php73/php-fpm.d/www.conf
user = apache
group = apache

#更改为nginx用户和组
user = nginx
group = nginx
WordPress建站教程-浅时光博客
[[email protected] ~]# php73 -v
[[email protected] ~]# systemctl restart php73-php-fpm
[[email protected] ~]# systemctl enable php73-php-fpm
[[email protected] ~]# ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php

4.2:PHP72w版本安装

1.1:安装

[[email protected] ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

[[email protected] ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

[[email protected] ~]# yum install epel-release -y
[[email protected] ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

[[email protected] ~]# yum install php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

1.2:启动

#启动之前做一些调优,php.ini最后添加如下内容
[[email protected] ~]# vim /etc/opt/remi/php73/php.ini
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1

#如果你运行的是nginx而不是apache,修改
[[email protected] ~]# vim /etc/opt/remi/php73/php-fpm.d/www.conf
user = apache
group = apache

#更改为nginx用户和组
user = nginx
group = nginx

#保存并关闭文件,启动php-fpm 服务:
[[email protected] ~]# systemctl enable php72-php-fpm.service
[[email protected] ~]# systemctl start php72-php-fpm.service
[[email protected] ~]# systemctl status php72-php-fpm.service

4.3:PHP安装问题总结

  • 解决安装php需要Requires: libargon2.so.0()(64bit)的问题
[[email protected] ~]# rpm -Uvh http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libargon2-20161029-3.el7.x86_64.rpm
[[email protected] ~]# yum install libargon2

五、部署wordpress


5.1:获取安装包

  • 方式2、使用wget直接下载到服务器
[[email protected] ~]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz

5.2:解压

# 解压到当前目录即可
[[email protected] ~]# tar -zxvf wordpress-5.2.3-zh_CN.tar.gz

5.3:配置

# 将wordpress目录中的示例PHP配置文件复制一份新的,然后重命名并进行配置
[[email protected] ~]# cd wordpress
[[email protected] wordpress]# cp wp-config-sample.php wp-config.php
[[email protected] wordpress]# vim wp-config.php
  • 修改配置中的数据库部分
文章来源(Source):https://www.dqzboy.com
WordPress建站教程-浅时光博客

5.4:复制文件

#将解压目录下的所有文件复制到此目录下
[[email protected] ~]# cp -r /root/wordpress/* /var/www/wordpress/

#将该目录赋权给nginx用户
[[email protected] ~]# chown -R nginx:nginx /var/www/wordpress

5.5:通过CDN加速

CloudFlare 是一家全球知名的 CDN 服务商,并且提供了免费的 CDN 套餐,还不限流量,所以我们完全不需要花一分钱就能使用它的 CDN 服务,接下来我就说明如何注册并使用 CloudFlare。

5.5.1:注册 CloudFlare

  • 首先打开 CloudFlare 官网,注册一个账号,注册流程很简单,只需要邮箱就行了
WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客

5.5.2:使用 CloudFlare 管理域名

  • 注册完成后登录账号,点击 Add site,这个功能的作用是将域名交给 CloudFlare 管理,这样 CloudFlare 才能给你的域名分配 CDN。
WordPress建站教程-浅时光博客
  • 输入你的二级域名
WordPress建站教程-浅时光博客
  • 点下一步,选择套餐,这里我们选择 FREE 套餐
WordPress建站教程-浅时光博客
  • 下一步之后,CloudFlare 会检测你域名原先的解析记录,如果你之前有解析记录,CloudFlare 可能检测不全,这时你就需要自己手动将缺失的解析记录添加上,如果不添加的话,之前的解析记录就没了。如果没有要添加的,直接下一步即可。

注意:如果在其他的厂商已经做了域名解析,则这里不需要再次进行添加,不然会出现文章来源(Source):https://www.dqzboy.com如下提示:该记录已存在

WordPress建站教程-浅时光博客
  • 橘色云朵代表流量通过 CloudFlare 的 CDN,灰色云朵代表不通过 CDN,点击一下云朵即可切换。
WordPress建站教程-浅时光博客

5.5.3:修改域名服务器DNS

  • 继续下一步,到这里会提示让你修改 Nameservers(域名服务器),并提供了两个域名服务器地址,先去你的注册域名的网站修改域名的域名服务器,下面我就以 腾讯云 为例来文章来源(Source):https://www.dqzboy.com说明如何修改域名服务器
WordPress建站教程-浅时光博客
  • 进入到腾讯云的控制台,然后找到自己注册的域名后,点击域名进入如下界面后进行修改DNS服务器地址
WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客
  • DNS地址修改完成
WordPress建站教程-浅时光博客
  • 修改完域名服务器后回到 CloudFlare 网页上来,点击 continue,此时 CloudFlare 可能会提示你还没有修改域名服务器,不要担心,修改域名服务器需要一定的时间才能生效,等一等就好了,一般几分钟就会生效,生效之后 CloudFlare 会发邮件给你。
WordPress建站教程-浅时光博客
  • 收到邮件
WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客
  • 至此CDN配置完成

5.6:配置Nginx

[[email protected] conf.d]# vim /etc/nginx/nginx.conf
user  nginx;
worker_processes  4;	#根据自己的CPU核心修改
worker_cpu_affinity 0001 0010 0100 1000;	#根据自己的CPU核心修改
worker_rlimit_nofile 65535;


error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    use epoll;
    worker_connections  65535;
    accept_mutex on;
    multi_accept on;
}


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

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

    keepalive_timeout  65;

    #gzip  on;
    #关闭版本提示,增加安全性
    server_tokens off;

    include /etc/nginx/conf.d/*.conf;
}

#下面的的配置我是加了ssl认证的,如果没有证书的小伙伴可以去腾讯云或者阿里云注册个免费的,如果不需要配置ssl认证的就不需要参考下面的配置了
[[email protected] conf.d]# vim /etc/nginx/conf.d/default.conf
server {
    #listen    80;
    listen   443  ssl;
    server_name  dqzboy.com;
    ssl_certificate  1_xxxxx.crt;       // 证书存放路径,如果是在nginx主目录下,则直接写证书文件名称即可,下面key文件也是如此
    ssl_certificate_key  2_xxxxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    client_max_body_size 150m;
    client_body_timeout 180;
    root   /var/www/wordpress;
    tcp_nodelay on;
    sendfile on;
    tcp_nopush on;
    location / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_connect_timeout  300;
        fastcgi_send_timeout  300;
        fastcgi_read_timeout  300;
        include        fastcgi_params;
    }
}

server {
    listen 80;
    #填写绑定证书的域名
    server_name dqzboy.com; 
    #把http的域名请求转成https
    #rewrite ^(.*)$ https://$host$1 permanent;
    return      301 https://$server_name$request_uri;
}

#重载Nginx配置
[[email protected] conf.d]# nginx -s reload

六、访问wordpress


WordPress建站教程-浅时光博客

配置好登入即可到此步骤wordpress则安装完成了

七、问题总结


7.1:安装主题需要输文章来源(Source):https://www.dqzboy.com入FTP用户密码

原因:这是由于用户权限问题
解决方法:
设置wordpress目录权限给对应的用户
chown -R nginx:nginx /var/www/wordpress

再次安装主题即可安装成功

7.2:去除首页的RSS功能

默认显示如下

WordPress建站教程-浅时光博客
[[email protected] ~]# cd /var/www/wordpress/wp-includes/widgets
[[email protected] ~]# vim class-wp-widget-meta.php

去除文章RSS和评论RSS和wordpress.org,添加注释

WordPress建站教程-浅时光博客

去除底部标识

1、先在页面首页F12打开审查模式查看对应的页脚信息,然后登入到后台进行注释

WordPress建站教程-浅时光博客

2、登入到worepress后台中,鼠标移动至【外观】-选择【主题编辑器】

WordPress建站教程-浅时光博客

3、右边栏选择【主题页脚】然后删除对应的代码

WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客

7.3:修改上传文件大小限制

  • 由于我是LNMP架构,文章来源(Source):https://www.dqzboy.com所以需要修改php.文章来源(Source):https://www.dqzboy.comini和nginx.conf的配置信息

7.3.1:修改php配置

# 修改php.ini文件,修改的参数如下
[[email protected] ~]# vim /etc/opt/remi/php73/php.ini
upload_max_filesize= 50M  //这个是文件上传大小限制
post_max_size=50M  //这个是post请求大小限制

7.3.2:修改nginx配置

[[email protected] ~]# vim /etc/nginx/conf.d/default.conf
#server上下文增加以下参数
client_max_body_size 50m;		//上传文件大小标准
client_body_timeout 120;		//上传文件超市时间

#检查配置是否正确
[[email protected] ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

7.3.3:重启服务

[[email protected] ~]# systemctl restart nginx
[[email protected] ~]# systemctl restart php73-php-fpm

7.3.4:登入网站后台检查

WordPress建站教程-浅时光博客

7.4:头像\文章显示慢

  • 由于wordpress中的有些图片和头像都是来自国外网站,所以显示打开会很慢,解决方案。可以安装插件WP Acceleration for China来解决此问题
WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客

7.5:登入后台浏览器显示为真实IP

解决方案:登入后台–>设置–>常规–>将WordPress地址(URL)和站点地址(URL)更改为域名地址

WordPress建站教程-浅时光博客
WordPress建站教程-浅时光博客
  • 保存后页面会让你重新登入,这时发现登入后台的地址以及更改为了自己的域名

7.6:后台开启评论审核

  • 有时候我们自己的网站在别人进行评论后,并不需要直接就显示出来,而是由管理员经过审核后方可在页面中显示出来,具体操作如下
WordPress建站教程-浅时光博客

7.7:加入SSL证书认证

我的域名注册商是在腾讯下注册的,所以我这里选择了腾讯的SSL证书免费版的(期限一年),然后到腾讯的SSL证书管理(https://console.cloud.tencent.com/ssl)去下载自己的证书文件,下载的压缩包中包含了tomcat,apache,nginx,iis的证书文件,我们这里由于网站是通过nginx提供服务的,所以我这里是把nginx的证书文件和key拷贝到了nginx的安装目录下/etc/nginx/   接下来进行SSL配置

[[email protected] nginx]# vim /etc/nginx/conf.d/default.conf
server {
    #SSL 访问端口号为 443,并启用ssl(nginx1.16版本得这样写)
listen   443  ssl;
#填写绑定证书的域名
    server_name  绑定证书的域名;
#证书文件名称;如果证书不在nginx的主目录下,那这里需要指定证书存储的绝对路径
ssl_certificate  1_xxxx.crt;
#私钥文件名称;如果私钥不在nginx的主目录下,那这里需要指定私钥存储的绝对路径
    ssl_certificate_key  2_xxxx.key;
    ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    client_max_body_size 50m;
    client_body_timeout 180;
location / {
    #网站主页路径。此路径仅供参考,具体请您按照实际目录操作
    	root   /var/www/wordpress;
        index  index.php index.html index.htm;
}
}

#配置http强制跳转https
server {
    listen 80;
    #填写绑定证书的域名
    server_name 绑定证书的域名; 
    #把http的域名请求转成https
    rewrite ^(.*)$ https://$host$1 permanent; 
}

[[email protected] nginx]# nginx -t
[[email protected] nginx]# nginx -s reload
WordPress建站教程-浅时光博客

7.8:设置固链后文章打开显示404

通过设置固定链接的方式可以优化网站的SEO 我部署wordpress方式是L文章来源(Source):https://www.dqzboy.comNMP架构,我在wordpress配置了固定链接后,打开博客文章显示都是404,解决方案如下

7.5.1:通过后台设置固定链接

WordPress建站教程-浅时光博客

7.5.2:修改Nginx配置

方式1:

[[email protected] ~]# vim /etc/nginx/conf.d/default.conf
#将以下内容配置到nginx网站根目录的配置上下文的下面
    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 (.*) /index.php;
    }   
 
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
WordPress建站教程-浅时光博客

方式2:

[[email protected] conf.d]# vim /etc/nginx/conf.d/default.conf
server {
    listen    80;
    server_name  www.dqzboy.com;
    root   /var/www/wordpress;
    location / {
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }
}
  • 最后打开文章确认
最后我提供一下本网站一键部署LNMP环境的脚本供大家快速来部署环境

脚本部署版本说明:

  • Nginx:1.18
  • MySQL:5.7.30
  • PHP:php74
#脚本执行用户必须为root,授予脚本执行权限执行
chmod +x lnmp_install
./lnmp_install





文件名称:LNMP环境一键部署脚本

更新日期:2020-08-04

文件大小:24k

广

点击下载

WordPress建站教程-浅时光博客
相关文章
暂无相关文章!
7 条回应
  1. suohw未知2020-4-24 · 0:25

    博主的博客用的wordpress做的吗

    • 浅时光
      浅时光上海2020-4-24 · 8:58

      是的

  2. root未知2020-9-3 · 8:09

  3. root未知2020-9-3 · 8:10

    脚本呢

    • 浅时光
      浅时光上海2020-9-3 · 8:18

      文章最下面有

      • root未知2020-9-3 · 8:35

        分享过期了

        • 浅时光
          浅时光上海2020-9-3 · 8:36

          我已经更新了,刷新下页面

本站已安全运行: | 耗时 0.599 秒 | 查询 110 次 | 内存 22.99 MB