CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

一.  介绍

1.  什么是LNMP

LNMP就是Linux+Nginx+MySQL+PHP,Linux作为服务器的操作系统,MySQL即为数据库。本文主要介绍PHP和Nginx的关系。

优点:

作为Web 服务器:相比Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

2.什么是WordPress

WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。

WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以在支持PHP 和MySQL数据库的服务器上使用自己的博客。

WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。

WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。[1] 

 

优点

1.    WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能;

2.    wordpress搭建的博客对seo搜索引擎友好,收录也快,排名靠前;

3.    适合DIY,如果你是喜欢丰富内容的网站,那么wordpress可以很好地符合你的胃口。

4.    主题很多,网站上一大片都是wordpress的主题,各色各样,应有尽有!

5.    wordpress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。

6.    wordpress有强大的社区支持,有上千万的开发者贡献和审查wordpress,所以wordpress是安全并且活跃的。

缺点

1.    wordpress源码系统初始内容基本只是一个框架,需要时间自己搭建;

2.    插件虽多,但是不能安装太多插件,否则会拖累网站速度和降低用户体验;

3.    服务器空间选择*较小!

4.    静态化较差,确切地说是真正静态化做得不好,如果要想对整个网站生成真正静态化页面,还做不好,最多只能生成首页和文章页静态页面,所以只能对整站实现伪静态化!

5.    wordpress的博客程序定位,简单的数据库层等都注定了他不能适应大数据。


 

二.  LNMP

1.创建LNMP前的准备

1) 系统版本号

本次技术文章的系统版本号如下:

[[email protected] ~]# uname -a 

Linux localhost.localdomain 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 

[[email protected] ~]# cat /etc/redhat-release 

CentOS Linux release 7.3.1611 (Core) 

2)  修改系统时间(中国时间)

(1)修改时间为中国的时间 

#cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

(2)重启linux:

#reboot 

(3)确认查看当前时区是否为中国时区(GMT+8)

#date -R 

3) 配置防火墙

(1)配置防火墙,开启

80端口:http访问

3306端口:SQL

命令如下:

firewall-cmd --zone=public --add-port=80/tcp --permanent 

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

(2)重启防火墙:

systemctl restart firewalld.service 

(3)查看防火墙已开放的端口命令: 

firewall-cmd --zone=public --list-ports

(应该显示为:3306/tcp 80/tcp)

4) 关闭SELINUX

(1)关闭SELINUX (必须做,否则在新建wordpress账号时提示失败,不能写入)

命令如下:

vi /etc/selinux/config

加注释:”#”号

#SELINUX=enforcing  

#SELINUXTYPE=targeted

(2)增加命令;

SELINUX=disabled

(3)保存,关闭:

:wq

(4)重启系统:

shutdown -r now

(5)查看SELinux状态:

sestatus

(应该显示为:SELinux status: disabled)

 

2.安装LNMP

1)   配置Centos7.3第三方源

由于CentOS默认的标准源里没有nginx软件包,所以我们要手动添加第三方源。

(1)安装下载工具wget:

yum install wget -y 

(2)下载atomic yum源:

Wget http://www.atomicorp.com/installers/atomic  

(3)安装:

sh ./atomic

(4)更新yum软件包:

yum check-update

2) 安装nginx

安装nginx,命令如下:

(1)安装nginx:

yum install -y nginx

 (2)启动服务:

service nginx start

 (3)设为开机启动:

chkconfig nginx on

(4)重启服务:

systemctl restart nginx.service

(5)删除nginx默认测试页:

rm -rf /usr/share/nginx/html/*

(6)检查nginx配置文件的语法是否正确:

nginx -t -c /etc/nginx/nginx.conf

3)安装MySQL

(1)安装MySQL,命令如下:

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载:

 

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql mysql-server -y

(2)设置mysql开机启动

[[email protected] ~]# systemctl restart mysqld.service

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

(3)拷贝配置文件:

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)

(4)为root账户设置密码:

初次安装mysql是root账户是没有密码的,设置密码的方法如下:

 

Mysql -uroot

mysql> set password for 'root'@'localhost' = password('Admin#123');

mysql> exit;

(注:; 这个符号必须加!)

(5)MySql密码设置完成,重新启动MySQL:

service mysqld restart

4)安装PHP

(1)安装PHP:

yum install php -y #根据提示输入Y直到安装完成  

(2)安装PHP组件,使PHP支持MySQL、PHP支持FastCGI模式:

yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm -y

(3)重启MySql: 

systemctl restart mysqld.service

(4)重启nginx: 

systemctl restart nginx.service

(5)启动php-fpm: 

systemctl start php-fpm.service

(6)设置开机启动php:

systemctl enable php-fpm.service

5)配置nginx支持PHP

(1)备份原有配置文件:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak

(2)编辑nginx配置文件:

vi /etc/nginx/nginx.conf

(3)修改nginx运行账号为:nginx组的nginx用户

user    nginx  nginx;

(4)保存退出

:wq!

(5)备份原有配置文件:

cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak

(6)编辑default配置文件:

vi /etc/nginx/conf.d/default.conf

(7)在default.conf里增加index.php:

index index.php index.html index.htm;

(8)取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径,如下所示(把内容改成下面一样的就行):

 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

 #

 location ~ \.php$ {

   root           html;

   fastcgi_pass   127.0.0.1:9000;

   fastcgi_index  index.php;

   fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;

   include        fastcgi_params;

 }

6)配置PHP

(1)编辑PHP

vi /etc/php.ini 

(2) 搜索下面的内容,把前面的分号去掉,改为date.timezone = PRC

;date.timezone = PRC 

(3)列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用

disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

(4)禁止显示php版本的信息

expose_php = Off

(5) 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可注销此行(就是添加分号):

;open_basedir = .:/tmp/

(6)保存退出

:wq!

7)配置php-fpm

(1)备份原有配置文件

cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak

(2)编辑: 

vi /etc/php-fpm.d/www.conf

(3)修改用户为nginx:

user = nginx

(4)修改组为nginx:

group = nginx

(5)重启MySQL:

systemctl restart mysqld.service

(6)重启nginx:

systemctl restart nginx.service

(7)重启php-fpm:

systemctl restart php-fpm.service

8)测试

(1)进入nginx默认网站根目录:

cd /usr/share/nginx/html/

(2)新建index.php文件,并输入以下内容:

vi index.php

<?php

           phpinfo();

       ?> 

(3)保存退出

:wq!

(4)设置目录所有者:

权限设置:chown nginx.nginx /usr/share/nginx/html/ -R

(5)重启服务:

systemctl restart php-fpm.service

 

在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!

 

备注:

nginx默认站点目录是:/usr/share/nginx/html/

MySQL数据库目录是:/var/lib/mysql

权限设置:chown mysql.mysql -R /var/lib/mysql

 

至此,CnetOS7.4 安装配置LNMP(Nginx+PHP+MySQL)教程完成。

 

 


 

三.  WordPress

1.安装配置WordPress

1)   安装前的准备

WordPress的官网网站为:http://cn.wordpress.org/

(1)下载wordpress网站代码:

在官方网站上下载中文的wordpress网站源码,命令如下:

wgethttps://cn.wordpress.org/wordpress-4.7.3-zh_CN.tar.gz

(2)解压:

tar zxvf wordpress-4.7.3-zh_CN.tar.gz

(3)把WordPress目录拷贝到nginx下:

cp -R wordpress/* /usr/share/nginx/html/

(4)创建wordpress数据库:

mysql -u root -p #以root用户登录mysql 输入密码CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(5)创建名为zrq的数据库:

mysql> create databasezrq;

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

(6)用zrq库,按回车键出现Database changed 时说明操作成功!

mysql> use zrq; 

 

2) 安装WordPress

(1)安装wordpress:

在客户端打开浏览器输入服务器的ip地址:

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(2)点击创建配置文件:

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(3)点击“现在就开始”:

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(4)修改完之后点击提交:

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(5)点击进行安装,并输入相关的网站信息:

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(6)点击安装wordpress ,出现一下画面说明博客搭建成功。

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

(7)登录之后的界面:

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress


(8)在wordpress里面添加自己的网站域名。否则开打都会转到ip地址。

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress


 

 

 

四.  附录

1.  WordPress安装、升级插件需要输入FTP信息

有时候,升级插件会提示“要执行请求的操作,WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。”,需要输入FTP信息。

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

这是因为是Nginx没有相应的权限去管理wordpress 文件目录,如不方便修改,也可直接修改wp-config.php文件,在最后添加如下几行:

vi /usr/share/nginx/html/wp-config.php

在最后添加:

define("FS_METHOD", "direct");

define("FS_CHMOD_DIR", 0777);

define("FS_CHMOD_FILE", 0777);

 

更改插件的权限:

chmod 777 /usr/share/nginx/html/wp-content/plugins/

更改主题的权限:

chmod 777 /usr/share/nginx/html/wp-content/themes/


CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

 

 

 

2.  把网站端口从80改成8080

(1)如果需要修改网站的端口(例如80改成8080),需要在wordpress更改端口,还有在nginx修改端口。

命令如下:

Vi /etc/nginx/conf.d/default.conf

CentOS7.3系统中安装配置LNMP服务器环境    +wordpress


CentOS7.3系统中安装配置LNMP服务器环境    +wordpress

 

 

 

 

(2)防火墙开启8080端口:

frewall-cmd --zone=public --add-port=8080/tcp --permanent

systemctl restart firewalld.service

 

3. 如果需要做DDNS,而已选择花生壳

(1)下载花生壳:

Wgethttp://download.oray.com/peanuthull/linux/phddns_2.0.6_all.zip

(2)解压缩:

yum install unzip -y

unzip phddns_2.0.6_all.zip

(3)安装花生壳:

cd phddns_2.0.6_all

tar zxvf phddns-2.0.6.x86_64.tar.gz

cd phddns-2.0.6.x86_64

./phddns

(4)配置花生壳:

Enter server address(press ENTER use phddns60.oray.net):

Enter your Oray account:ljh9527

Password:

Network interface(s):

[eth0] = [IP:45.63.124.48]

[lo] = [IP:127.0.0.1]

Choose one(default eth0):

Log to use(default /var/log/phddns.log):

/var/log/phddns.log

Save to configuration file (/etc/phlinux.conf)?(yes/no/other):yes

(5)要开放花生壳对应的防火墙端口:

花生壳使用的通信端口是TCP:6060和UDP:6060(方向:OUT),请确认防火墙没有把这几个通信端口封掉。

firewall-cmd --zone=public --add-port=6060/tcp --permanent

firewall-cmd --zone=public --add-port=6060/udp --permanent

systemctl restart firewalld.service

(6)可以使用ps -ef | grep phddns 来查看是否有花生壳软件的相关进程。

查看进程ID

[[email protected] ~]# ps -A | grep phddns

13731 ? 00:00:00 phlinux

让后台进程退出

[[email protected] ~]# kill -9 13731

 

(7)可实现开机自动运行:

cp /root/phddns_2.0.6_all/phddns-2.0.6.x86_64/phddns /usr/bin/

vi /etc/rc.local

在最后添加/usr/bin/phddns -c /etc/phlinux.conf -d  

第一次安装配置完毕后,以后需要修改相关配置,可以自己自行编辑配置文件,然后终止相关进程,利用

/usr/bin/phddns -c /etc/phlinux.conf -d

再次启动,就可以按修改后的配置文件内容运行。

(8)查看花生壳当前运行状态:

查看日志:

[[email protected] ~]# tail /var/log/phddns.log

2011/08/02 11:28:58.256| ExecuteUpdate OK, BeginKeepAlive!

2011/08/02 11:29:59.354| SendKeepAlive() 8208

2011/08/02 11:30:00.355| RecvKeepaliveResponse() Data comes, OPCODE:8272

2011/08/02 11:30:00.356| Keepalive response received, client ip: 116.231.123.96

2011/08/02 11:31:00.447| SendKeepAlive() 8208

2011/08/02 11:31:01.450| RecvKeepaliveResponse() Data comes, OPCODE:8272

2011/08/02 11:31:01.450| Keepalive response received, client ip: 116.231.123.96

(9)手动修改登陆的用户名及密码

您可以直接编辑/etc/phlinux.conf文件,对登陆用户名及密码进行修改。

花生壳日志保存路径

/var/log/phddns.log

 

 

 

4. Wordpress提示建立数据库连接时出错的两个有效解决办法

解决办法如下截图:

 CentOS7.3系统中安装配置LNMP服务器环境    +wordpress