nginx/php/mysql 搭建WordPress博客记录

第二次安装WordPress

blog最初使用wordpress搭建的,但是后来觉得其比较笨重且当时入了markdown的坑于是就弃了,结果今天有需求,还得重新搞一个WordPress出来,这里专门做个记录。另外在这里推荐一下blogger,如果没有网络需求的同学可以使用该服务,省心!

简单介绍

简单介绍一下本次总共总共四部分,分别是nginx、php-fpm、mariadb、WordPress。

首先来说一下nginx

nginx可以直接通过yum来进行安装,或者使用源码,我这边是使用的源码,主要是为了一些其他功能的使用,例如修改服务器的header信息,省的总有一些辣鸡扫端口,用0day抓肉鸡。

这里会用到一个openresty开源的一个插件headers-more-nginx-module,在编译的时候使用如下命令,注意最后的–add-module要正确防止模块的代码哈

1
./configure --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-module=../headers-more-nginx-module && make

安装完成以后在/etc/nginx/nginx.conf的http块增加以下两行指令

1
2
3
4
5
http{
include /etc/nginx/conf.d/*.conf; #这一行主要是为了增加WordPress的配置
server_tokens off;
more_set_headers 'Server: Apache/2.4.18 (Ubuntu)';
}

同时在conf.d目录下面增加配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server {
listen ip:port;
access_log /var/log/nginx/art_access.log;
error_log /var/log/nginx/art_error.log;
# 以下这一部分是为了将40x和50x的错误页面修改为没有nginx特征
root /var/www/cgi-bin/art; #这个配置后需要用到
index index.php index.html index.htm;
error_page 403 404 503 504 = /40x.html;
location /40x.html{
internal;
}
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
location / {
root /var/www/cgi-bin/art;
index index.php index.html index.htm;
}
# 关键的以下这一部分,要将页面的加载重定向到php-fpm
location ~ \.php$ {
try_files $uri =404;
#fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

到这里nginx的配置就结束了

安装php

在WordPress的官方,有介绍说最好安装php7,因此这里的方法是安装php7的,命令如下

1
2
3
4
5
6
7
8
yum install epel-release yum-utils -y
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php71
yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql -y
php -v
yum install php-fpm
systemctl enable php-fpm
systemctl start php-fpm

php-fpm的配置文件在/etc/php-fpm,如果需要调整监听的端口可以在里面进行调整

安装配置mariadb

这个就比较简单了,命令如下,要将数据库安装,同时创建好数据库以及用户名和密码,后面要在WordPress的

1
2
3
4
5
6
7
yum install -y mariadb mariadb-server
systemctl enable mariadb
systemctl start mariadb
mysql -u root #登陆mysql
create database wordpress;
grant all on wordpress.* to 'user'@'127.0.0.1' identified by '12345'
flush privileges;

安装、配置WordPress

这里从官网下载最新的wordpress同时将其解压安装到nginx的cgi目录下

1
2
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz -C /var/www/cgi-bin/art

之后通过浏览器访问wordpress的博客地址,进行初始化,在配置页面要对wordpress的数据库连接进行配置,填写完成后如果显示配置失败,需要到wordpress的目录下面去创建一个php的配置文件,按照提示来就可以!

可能还有的问题

可能服务器默认会把80端口关闭,这里需要使用firewall-cmd进行配置放行

1
2
3
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=80/udp --permanent
firewall-cmd --reload

全文完:)

转载请注明来源链接 http://just4fun.im/2019/01/12/nginx-php-for-wordpress/ 尊重知识,谢谢:)