如何用最易理解的步骤在CentOS上用开源程序wordpress搭建博客(网站)

前言

最近身边不少朋友都在尝试搭建自己的博客,但是从我和他们的交流中我发现很多朋友搭建博客的方法都是在网上找一篇博客然后照着步骤来,这样确实能很快搭好属于自己的博客,而且也是个好办法。那既然我都说了这是个好办法那么我为什么还要特意再写一篇博客出来呢?
重点来了,在网络上不少关于搭建网站的博客很多博主处于学习或者方便管理又或者其他目的都是用编译安装这种方式来安装搭建网站需要的程序和服务的。对于熟悉编译安装的运维工作人员来说必然是小意思,但是对于不是很熟悉Linux的朋友来说编译安装容易令人困惑,因为不熟悉Linux所以以为在Linux上安装程序就只能这么安装,要知道编译安装过程中如果有任何差错在博客上又没有描述怎么处理的话必然就没法继续安装下去了。
那么,我在这篇博客中要介绍的方法便是基于yum的。
我在本篇博客中会仔细介绍每一个细节,理解方可记忆。


操作

准备

1,环境:CentOS

2,wordpress包

3,需要安装的服务及程序:mariadb mariadb-server(在CentOS6上用mysql和mysql-server) httpd php php-mysql php-gd php-xml

4,配置yum源

5,会用vim编辑文本


第一步,配置yum源(非必要)

什么是yum源?yum源简单说就是一个装了很多程序的仓库,我们想用这个仓库里的东西的话就得连接到这个仓库。

yum源很多网站都有,我一般习惯用阿里的,在网上直接搜索“yum源”就能找到很多,但是要注意用正规公司的yum源。

下面我们就开始配置yum源。

[root@test ~]# rm -f /etc/yum.repos.d/* 先删除原有的yum源
[root@test ~]# vim /etc/yum.repos.d/al.repo 创建一个以.repo结尾的文件然后将下面的yum地址全部复制进去保存退出
[base]
name=base
baseurl=https://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/
gpgcheck=0

[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0

[root@test ~]# yum clean all  保存退出后一定要执行一下yum clean all清空缓存。

上面我直接给出了阿里的yum源地址,只要按上面的步骤操作yum源就配好了。如果是其他版本的系统的话可以自行去阿里找合适的源。


第二步,安装所需环境

既然yum源已经配好那么下一步就是安装。

[root@test ~]# yum -y install mariadb mariadb-server httpd php php-mysql php-gd php-xml

执行上面的命令然后要做的就是静静等待执行完毕。

Complete!
[root@test ~]# 

当看到complete就表示安装完成,安装过程中要注意看看有没有报错。


第三步,服务启动和环境配置

对于不熟悉Linux的朋友来说在配置这部分最容易遇到的问题有几种:

1,防火墙没关
2,selinux没有关
3,编译安装缺工具缺库文件
4,服务器安全组策略没开端口
等等

既然我这里讲的不是编译安装,那么安装过程的简洁相信执行了上一步的朋友已经有体会了,下面便开始做容易出错的部分。


(1)首先启动mariadb并设置开机自动启动

[root@test ~]# systemctl start mariadb   启动mariadb
[root@test ~]# systemctl enable mariadb  设置开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@test ~]# 

上面我演示的是在7上的命令,如果是6版本的系统的话相应的命令分别是

service mariadb start
chkconfig mariadb on

后面的httpd服务也是一样的命令,只用替换服务名称就行了。


(2)现在服务已经启动了,下一步就是上去创建一个数据库并设置数据库密码

[root@test ~]# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

用mysql -u root命令使用root身份登陆数据库

MariaDB [(none)]> create database blog;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> 

创建新的数据库名为blog

MariaDB [(none)]> use mysql;  选择mysql库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> update user set password=password('123456') where user='root';  把root的密码改为123456
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]> flush privileges;  刷新权限表
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> 

执行完上面的三条命令后exit退出然后重启服务。注意:在mysql命令行里面命令后面要加分号。

[root@test ~]# systemctl restart mariadb

重启服务


(3)下载wordpress解包并部署到httpd默认网站根文件夹下

wordpress的安装包就去wordpress官网下载tar.gz的包,下载包的过程就不演示,wordpress官网直接在搜索引擎里搜索就找到了。

上传文件的方法很多也不演示怎么把包上传到服务器了,这里我是用rz命令,来自lrzsz这个包。

[root@test ~]# ls
wordpress-4.7.4-zh_CN.tar.gz
[root@test ~]# tar -xf wordpress-4.7.4-zh_CN.tar.gz 
[root@test ~]# ls
wordpress  wordpress-4.7.4-zh_CN.tar.gz
[root@test ~]# 

在家目录解压wordpress包。

[root@test ~]# mv wordpress/* /var/www/html/
[root@test ~]# 

把wordpress文件夹下的所有文件移动到httpd的默认的网站路径下。

[root@test ~]# cd /var/www/html/
[root@test html]# cp wp-config-sample.php wp-config.php
[root@test html]# 

移动到网站根目录,复制wp-config-sample.php 文件并改名为wp-config.php。这里不直接在原文件上改动是为了保留一份空配置文件作为备份。

[root@test html]# vim wp-config.php 
/** WordPress数据库的名称 */
define('DB_NAME', 'blog');

/** MySQL数据库用户名 */
define('DB_USER', 'root');

/** MySQL数据库密码 */
define('DB_PASSWORD', '123456');

/** MySQL主机 */
define('DB_HOST', 'localhost');

打开wp-config.php找到如上内容,除了MySQL主机默认为localhost不变以外其他的如数据库名还有账号密码都改成刚才设置的内容然后保存退出。

然后启动httpd服务

[root@test html]# systemctl start httpd
[root@test html]# 

(4)排除限制

其实上面的步骤做完已经算是搭建完成了,但是并不能正常访问,因为系统为了安全设置了重重限制需要我们去一一解除。

下面的步骤没弄好是很多朋友搭建失败的很大部分原因。

关闭防火墙并设置开启不启动

[root@test html]# systemctl stop firewalld.service
[root@test html]# systemctl disable firewalld.service
[root@test html]# 

如果防火墙没关的话网站是肯定不能访问的,这点无需质疑。

临时关闭selinux和永久关闭selinux

个人觉得搭建个人博客不是很有必要用selinux,开启的话虽然安全一些,但是会在操作上多一些麻烦,对于不会用的朋友来说还是直接关闭为好,对会用的朋友来说关不关都无所谓,但是要注意这个问题。

[root@test html]# getenforce  查看selinux状态
Enforcing
[root@test html]# setenforce 0  设置selinux为permissive
[root@test html]# getenforce
Permissive
[root@test html]# 

以上为临时更改selinux

[root@test html]# vim /etc/selinux/config 打开selinux配置文件

找到SELINUX=enforcing这行,改为SELINUX=disabled保存退出。这是永久更改selinux,需要重启计算机生效。

将html目录递归更改属主为httpd的系统账号apache

下面这段别嫌长,能看懂一定要看,不能懂就直接跳过按下面的操作做就行了。

这个步骤和网站能否搭建起来没有关系,这个步骤的作用是让wordpress能用自动更新功能,解决点更新弹出输入ftp账号的问题。是不是有些印象?在网络上大部分博客在这里讲的是递归更改整个目录的权限为777来解决这个问题,其实根本没有这个必要,改了权限反而留了安全隐患,之所以改权限能解决wordpress不能自动更新问题是因为在不更改属主的时候整个目录的所有文件的属主是root,而权限是644,也就是说除了root以外其他用户只有读的权限没有写的权限,而wordpress自动更新就是利用apache账号对目录进行写的操作,但是对于apache账号来说html目录下的关键内容只有读的权限,所以无法完成操作,所以当权限被改成777之后给了other位置写的权限,相当于apache也获得了写权限,于是就解决不能自动更新的问题了,问题是解决了,但是留下的安全隐患也太大了,我这里讲最佳的解决办法,最好的办法就是直接把整个目录的属主递归设置为apache就行了。

[root@test html]# cd ..  移动到上级目录
[root@test www]# chown -R apache html

就这么一步就OK,不用改什么权限,问题就得以解决。

注意:这部结束后最好还是重启一下httpd服务,虽然我没遇到过这里不重启有什么问题,但是更改了文件重启一下总是好的。

这样整个过程就已经全部结束,也提前恭喜网站搭建成功。


第四步,测试访问

既然网站搭建已经完成,那么就来试试能不能访问吧,相信这个时候是心情最期待的。

打开浏览器直接输入IP(域名已备案也解析完毕可以直接用域名访问)

如上图,如果在看这篇博客的你是第一次搭建网站的话相信你在看到网站通了的那一刻心里会很喜悦,满满的成就感。


结语

搭个网站也没有什么好说的,搭建服务这个东西就是没事多折腾,多思考很快就能总结出一套自己得心应手的方法。