2018-09-24 · Blog

Wordpress 博客搭建

WordPress is open source software you can use to create a beautiful website, blog, or app.

上面是一段 官网 对 wordpress 的介绍。丰富的插件满足了 99% 人的需求。

WordPress-logotype-alternative

Ghost 换成 WordPress 是有一些功能不能满足我的需求。

比如评论,虽然可以使用第三方的评论系统,但我不想过多的去折腾。
在精力有限的情况下,多陪伴家人,多学习些和工作有关的东西,这些能给我带来更直观的价值。

下面开始搭建 wordpress

WordPress 是有 PHP 开发的所以要想其能工作,还是有一些必须安装的依赖。

本文是基于 wordpress4.9.8 版本搭建的,依赖 php7.2 以上和 mysql5.6 或者 mariadb10.0 ,还有 WEB 容器。

关于 nginx 的安装请参考 How to install Nginx on centos 7

关于 mariaDB 的安装请参考 How to install mariadb 10.3 on centos 7

php-elephant-1

PHP7.2

PHP is a popular general-purpose scripting language that is especially suited to web development.
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

上面是 PHP 的官网对PHP的介绍。PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

CentOS7 上 PHP 的默认版本是 5.6 ,而我们需要的是 7.2 。
当然我们可以源码编译安装,但是对于我只是想搭建个 Blog 而言,不想去研究太多。所以选择源安装:

yum install epel-release -y

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装 php72w 和相关库

yum -y install php72w 

yum -y install php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml

配置 php-fpm

确保你已近安装 Nginx 最新版本,查找 Nginx 的用户和用户组

egrep '^(user|group)' /etc/nginx/nginx.conf

Sample outputs:

user  nginx;

编辑 vim /etc/php-fpm.d/www.conf
设置用户和用户组为 nginx

user = nginx
group = nginx

保存文件,并启动 php-fpm

systemctl start php-fpm

配置 nginx

添加并编辑 Nignx 的配置文件

vim /etc/nginx/conf.d/wordpress.conf

配置如下信息

server {
    listen       80;
    server_name  your_server;

    root /home/wordpress;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_index  index.php;
    }
}

启动 nginx

systemctl start nginx

/home/wordpress 添加测试文件 foo.php

vim /home/wordpress/foo.php

增加如下信息

<?php
  // test script for CentOS/RHEL 7+PHP 7.2+Nginx 
  phpinfo();
?>

php-test

安装配置 wordpress

GitHub 下载最新版本

wget https://github.com/WordPress/WordPress/archive/4.9.8.tar.gz

删除原来测试的 /home/wordpress 目录, 将文件解压到 /home 目录

cd /home

tar zxvf /home/latest.tar.gz -C /home

参考 官方文档 设置wp-config.php文件

cd wordpress

cp wp-config-sample.php wp-config.php

修改如下项的信息

DB_NAME 
在第二步中为WordPress创建的数据库名称
DB_USER 
在第二步中创建的WordPress用户名
DB_PASSWORD 
第二步中为WordPress用户名设定的密码
DB_HOST 
第二步中设定的hostname(通常是localhost,但总有例外;参见编辑wp-config.php文件中的“可能的DB_HOST值)。
DB_CHARSET 
数据库字符串,通常不可更改(参见zh-cn:编辑wp-config.php)。
DB_COLLATE 
留为空白的数据库排序(参见zh-cn:编辑wp-config.php)。

当然也可以直接运行安装脚本 http://xxx/wp-admin/install.php

WordPress无法查找到wp-config.php文件时会通知用户并试图自动创建并编辑wp-config.php文件。

setup-config

640px-install-step5

到此博客就已经搭建完成:

wordpress-screen-themes

解决 fastCGI 报错 Primary script unknown 和 安装主题、插件、更新需要 FTP 的问题

在 wp-config.php 末尾添加如下信息:

define("FS_METHOD", "direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

修改文件夹权限和指定其用户与用户组

cd wordpress

chwon -R nobody:nobody wp-content/

chmod -R 777 wp-content/

参考文档:

centos如何通过yum安装php72?
如何正确配置Nginx+PHP
nginx-1.4.3识别fastCGI报错 Primary script unknown
WordPress 安装主题、插件、更新时需要FTP的解决办法
How to install PHP 7.2 on CentOS 7/RHEL 7