前言
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。
WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
准备工作
- 云主机一台(Web服务器,用来存放网站程序、图片等,阿里云、腾讯云、金山云等都可以购买,我购买的阿里云主机)
- 域名一个(我在阿里云万网注册了一个域名 chenshiyang.com,需要备案,域名需要解析到云主机)
- WordPress程序(目前最新版本是5.4.1,邀请php版本在5.6以上,下载地址 中文版 英文版)
- https支持(可选,阿里云免费证书申请教程)
安装
本教程是基于LNMP技术栈来搭建的,各个版本如下:
- Linux版本为CentOS7.4版本,
- Nginx版本为nginx1.12.2版本
- Mariadb版本为5.5.60-MariaDB MariaDB Server
- PHP版本为PHP 7.2.10
nginx安装
- 新建一个wordpress用户来运行程序,并且使用下列命令设置为nologin,useradd -s /sbin/nologin wordpress
- yum install nginx安装nginx
- 修改/etc/nginx/nginx.conf文件启动用户为wordpress,如下
user wordpress;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;- 启动nginx守护进程并设置为开机自启- systemctl start nginx
- systemctl enable nginx
 
- 将wordpress用户加入到nginx组usermod -a -G nginx wordpress,同时设置目录权限chmod 770 -R /var/lib/nginx/
- ps命令查看nginx进程存在则nginx启动成功了,进程不存在查看80端口是否被占用
Mariadb安装
- 执行yum install mariadb-server -y来安装mariadb
- 启动Mariadb并设置为开机自启- systemctl start mariadb
- systemctl enable mariadb
 
- 执行mysql_secure_installation来加固Mariadb,你会看到要求设置数据库root密码、移除匿名用户、限制只能通过localhost登陆数据库root用户和移除test数据库,这里推荐全部选Y(YES),如下图所示,默认的数据库root密码为空
 
除此之外,还要把mariadb监听的地址改为127.0.0.1:3306
vim /etc/my.cnf.d/server.cnf打开Mariadb的配置文件
在[mysqld]下面加上bind=127.0.0.1,如下图所示

执行systemctl restart mariadb重启数据库
执行netstat -lntp可以看到已经监听为本地回环地址了
创建数据库
在安装完mariadb数据库,并对其进行加固后,我们自然需要新建一个数据库来存放数据,这里首先我们用之前设置的root账号密码来登陆数据库mysql -uroot -p,并执行以下几条语句
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 创建数据库
GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '你的密码'; # 创建用户FLUSH PRIVILEGES;                              # 刷新数据库权限EXIT;
如果需要进行远程访问,需要添加3306端口到防火墙规则,并进行mysql授权
grant all privileges  on *.* to root@'%' identified by "password";
flush privileges;PHP安装
- CentOS的PHP默认版本为5.4,WordPress最新版本要求php版本在5.6以上,需要进行php升级- 首先移除当前的php安装包yum remove php*
- 更新源rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
- 更新源rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- 安装yum install -y php72w php72w-opcache php72w-xml php72w-mcrypt php72w-gd php72w-devel php72w-mysql php72w-intl php72w-mbstring
 
- 安装php-fpm yum –y install php-fpm
- 编辑php配置文件、php-fpm配置文件
vim /etc/php.ini
# 添加
extension=mysql.so
# 找到 extension_dir  并设为
extension_dir = "/usr/lib64/php/modules"
vim /etc/php-fpm.d/www.conf
user = wordpress
...
group = wordpress
...
listen = 127.0.0.1:9000
...
listen.owner = wordpress
listen.group = wordpress
# 重启 php 服务
systemctl restart php-fpm- 开机启动php-fpm- systemctl restart php-fpm
- systemctl enable php-fpm
 
下载WordPress并配置Nginx
将WordPress下载到/home/wordpress/目录下wget https://wordpress.org/latest.tar.gz
tar zxvf latest.tar.gz解压WordPress文件
chown -R wordpress:wordpress wordpress将wordpress目录的所有者改为wordpress用户
进入wordpress目录修改wp-config-sample.php文件配置数据库,并将wp-config-sample.php重命名为wp-config.php

ftp连接失败在wp-config.php中配置以下几行

进入wordpress/wp-content目录创建upload目录并修改用户和组,没有这个目录用户上传文件会失败
nginx配置
在/etc/nginx/conf.d/目录中创建nginx配置文件

# https 证书需要申请,可以去阿里云申请免费证书
server {
        ssl on;
        listen  443;
        server_name     www.chenshiyang.com chenshiyang.com;
        root /cxldata/www/wordpress;
        index index.php index.html index.htm;
        ssl_certificate  /etc/nginx/cert/chenshiyang.pem;
        ssl_certificate_key /etc/nginx/cert/chenshiyang.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;
        access_log  /var/log/nginx/www.chenshiyang.com.log main;
        error_log /var/log/nginx/www.chenshiyang.com.log.err debug;
        rewrite_log on;
        charset      utf-8;
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /cxldata/www/wordpress$fastcgi_script_name;
                include fastcgi_params;
        }
        location /grafana {
                root   html;
                index  index.html index.htm;
                add_header 'Access-Control-Allow-Origin' '*';
                add_header Access-Control-Allow-Methods GET,POST,OPTIONS,DELETE;
                add_header 'Access-Control-Allow-Headers' 'userId,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
                proxy_pass http://127.0.0.1:3000;
                rewrite ^/grafana/(.*) /$1 break;
                proxy_set_header   Host $host;
        }
}
server {
    listen 80;
    server_name www.chenshiyang.com chenshiyang.com;
    rewrite ^(.*)$ https://$host$1 permanent;
}nginx -t查看是否是否语法检查正常,如正常则nginx -s reload重载nginx,接下来看到wordpress页面成功打开了,就此大功告成!

安装插件、主题提示无法创建目录,请检查nginx.conf启动用户、php-fpm.d/www.conf user group,wordpress目录的用户和组是否完全一样






 
 



Comments | NOTHING