分离部署LNMP搭建WORDPRESS详细步骤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分离部署LNMP搭建WORDPRESS详细步骤相关的知识,希望对你有一定的参考价值。

分离部署LNMP搭建WORDPRESS

  • LNMP是一个基于CentOS/Debian编写的nginxphpmysql、PHPMyAdmin。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
  • Nginx较为稳定、功能丰富、安装配置简单、低系统资源,Nginx既可以在内部直接支持PHP,也可以支持作为HTTP代理服务器对外进行服务。
  • Nginx用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal好得多。
  • wordpress是一款开源免费的产品,利用php和mysql来开发的博客程序(也有很多人改为网站)。wordpress的功能非常强大,有众多的插件。没错,WordPress是世界上最好的博客程序,但是如果你单纯的认为WordPress只是一 款博客程序的话,那就大错特错。通过WordPress插件和主题,我们可以将这款博客程序扩展成我们需要的、功能不凡的另类用途,例如CMS、链接目录、论坛、WIKI、电子商务、项目管理、微博、SNS、视频、图片网站等等。但是它的安装却是很简单,安装的办法可以从官网上获取,程序也可以从官网上下载。贴上wordpress的官网地址:https://cn.wordpress.org/
  • 很多人在搭建的时候都是使用的一台机器来部署LNMP环境,但是我们在实际的工作中一般都是分离部署的。也就是说MySQL是MySQL;它是一台单机,分离部署自己跑自己的服务,提高效率。

    技术分享图片
    OS:centos 7
    Nginx IP:192.168.92.132
    PHP IP:192.168.92.128
    MySQL IP:192.168.92.130
    一 首先安装nginx

yum安装软件和源码包安装异同
yum安装的优缺点

优点:安装东西,方便快捷,特别是不用考虑包依赖
缺点:安装过程,人为无法干预,不能按需,安装。源里面有什么就安装什么,安装的版本也比较低。

源码包安装的优缺点

优点:编译安装过程,可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大
缺点:由于安装包过新或者是其他问题,导致依赖的包没有,或者版本过低。这个时候就要解决包的依赖问题,linux系统中有的包,一个依赖一个,可能装一个小东西,就要解决一堆包的依赖问题,花很多时间解决包的依赖问题,得不尝失。

NGINX的优点:

  1. Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发.
  2. Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。
  3. 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置。
  4. Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:

  5. 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.

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

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

  8. Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

  9. nginx的英文官方网站是:http://www.nginx.org/ 在这里我们可以直接查看Nginx的各个版本号。Nginx的软件有三种版本:稳定版,开发板,和历史稳定版。开发板更新的较快,包含最近的功能和BUG修复,但同时也可能会遇到新的BUG,开发板的更新一旦稳定下来就会被纳入稳定版中。稳定版更新的较慢,但是软件的BUG会很少,可以作为企业的首选,因此通常建议使用稳定版。当然在实际工作中,选择稳定版时,尽量避免使用最新的版本,选择比已出来的最近版晚6-10个月的版本比较好。在本章我们选择1.12.2稳定版本

    start:开始环境搭建,首先是安装NGINX

    Nginx主机:
    1)检查并安装Nginx基础依赖包pcre-devel openssl-devel
    名称中带有"devel"字符串的软件包是必须要安装的
    2)安装pcre-devel以及openssl-devel
    yum install -y openssl-devel pcre-devel
    3)开始安装Nginx 操作命令如下:
    mkdir -p /home/yankerp/tools
    cd /home/yankerp/tools/
    wget http://nginx.org/download/nginx-1.12.2.tar.gz
    useradd -M -s /sbin/nologin nginx
    tar zxf nginx-1.12.2.tar.gz
    cd nginx-1.12.2/

在我们编译安装前我们可以隐藏Nginx软件名称以及版本号如下:
Pwd
vim src/core/nginx.h
修改HTTP头信息中的connection字段,防止回显具体版本号
vim src/http/ngx_http_header_filter_module.c
有时候我们页面程序出现错误,Nginx会代我们返回相应的错误代码,回显的时候,会带上nginx和版本号,我们把他隐藏起来
vim src/http/ngx_http_special_response.c

以上修改完成后正式安装如下:
./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx

make && make install
--with-http_dav_module #增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法
--with-http_stub_status_module #获取Nginx的状态统计信息
--with-http_addition_module #作为一个输出过滤器,支持不完全缓冲,分部分相应请求
--with-http_sub_module #允许一些其他文本替换Nginx相应中的一些文本
--with-http_flv_module #提供支持flv视频文件支持
--with-http_mp4_module #提供支持mp4视频文件支持,提供伪流媒体服务端支持
--with-http_ssl_module #启用ngx_http_ssl_module

安装完成后的优化:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
启动Nginx
netstat -anput | grep nginx
此时Nginx服务正式安装完成,我们开放80端口,在windows打开浏览器输入http://192.168.xx.xx也就是nginx服务器的IP地址如果看到以下图片,就表示Nginx已经启动了。
开放80.
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/udp

浏览器访问测试就行

技术分享图片

技术分享图片

  安装PHP

1) 安装相关的依赖包
yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-deve
2) 安装libmcrypt
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxf libmcrypt-2.5.7.tar.gz
d libmcrypt-2.5.7/
./configure --prefix=/usr/local/libmcrypt && make && make install
3) 正式安装php
下载php安装源码包
wget http://cn2.php.net/distributions/php-5.6.27.tar.gz
解压源码包,并安装(编译过程稍微有点长)
tar zxf php-5.6.27.tar.gz
tar zxf php-5.6.27.tar.gz

./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
编译安装完后我们创建Nginx用户,要求UID和GID和Nginx机器上的一致!
groupadd -g 1001 nginx
useradd -u 900 nginx -g nginx -s /sbin/nologin
tail -1 /etc/passwd
提供PHP的配置文件及提供脚本
[[email protected] php-5.6.27]# cp php.ini-production /etc/php.ini
[[email protected] php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[[email protected] php-5.6.27]# chmod +x /etc/init.d/php-fpm
[[email protected] php-5.6.27]# chkconfig --add php-fpm
[[email protected] php-5.6.27]# chkconfig php-fpm on
修改php主配置,并编辑如下:
[[email protected] php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[[email protected] php-5.6.27]# vim /usr/local/php5.6/etc/php-fpm.conf
修改内容如下:
pid = run/php-fpm.pid
user = nginx
group = nginx
listen = 192.168.92.128:9000 //PHP主机的IP地址
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

修改完成后启动php服务
Service php-fpm start
Netstat -anput | grep php

到这里我们的php完成!
PHP测试页面成功之后就说明nginx支持转发PHP的资源请求了,接下来部署wordpress个人站点:

技术分享图片

 安装MySQL:

在centos7中默认自带了mariadb需要卸载
? rpm -qa | grep mariadb
? mariadb-libs-5.5.44-2.el7.centos.x86_64
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

1) 下载MySQL二进制安装包
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.g

2) 解压MySQL二进制包把解压的文件拷贝到/usr/local/mysql下,然后进入mysql目录查看
3) tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
4) mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql
5) cd /usr/local/mysql/

3)优化执行路径
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/prof
source /etc/profile

4)创建data以及log目录如下:
cd /usr/local/mysql/
mkdir data
mkdir log

6) 创建mysql用户和组
groupadd mysql && useradd -r -g mysql -s /bin/false mysql

7) 建立MySQL主配置文件
vim /etc/my.cnf
[[email protected] mysql]# cat /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err
8) 设置相应的权限并初始化MySQL
[[email protected] mysql]# chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql
8)复制启动脚本并启动MySQL数据库
[[email protected] mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start
到这里MySQL正式安装完毕

技术分享图片

在部署前我们在数据库服务器上创建wordpress数据库及授权帐户
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on wordpress.* to [email protected]‘%‘ identified by ‘123456‘;
Query OK, 0 rows affected, 1 warning (0.00 sec)

wordpress搭建

在nginx主机上解压wordpress压缩包
[[email protected] ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[[email protected] ~]# mv wordpress/ /www/
在php主机上同样的操作
[[email protected] ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[[email protected] ~]# mv wordpress/
/www
访问测试:http://192.168.92.132/

技术分享图片

这是在8上出的问题,未解决,,,,,,,,,,
再开一个机子上了5.7,没毛病了,,,,,,
连上数据库了

技术分享图片

技术分享图片

技术分享图片

技术分享图片

在数据库主机上可以看用户

技术分享图片

Wordpress拓展:

CMS
CMS是Content Management System的缩写,意为”内容管理系统“, 可以让你不需要学习复杂的建站技术,不需要学习太多复杂的html语言,你就能够利用CMS构建出一个风格统一功能强大的专业网站。
在这 推荐一款插件Filosofo Home-Page Control,以及两篇文章:
《5个简单的步骤把 WordPress 打造成 CMS》
《11 款CMS风格的Wordpress主题模板收集》
链接目录
链接目录一个通过分类和子 分类进行分类排序的网页链接集。
免费的目录脚本是非常好的,但是他们运行于 WordPress 之外,所以并不是我们想要得。

WP Link Directory
WP Link Directory是一个WordPress的链接目录插件,让你保持一个链接目录,并允许其他网站管理员申请链接到您的网站。它可以检查链接情况,甚至 检查其他网站的Pagerank并接受或拒绝您指定的标准为基础的环节。
其主要特点是:
? 自动检查由指定的Pagerank网页链接。
?在目录中显示所有站点的PageRank。
?显示每个链接的详细信息。
?提供多种语言。
?当有新的网址提交时,会自动通知管理员。
?可以和你当前使用的主题无缝的结合

论 坛
论坛作为一个社区网站是必备的一个功能模块,但是当我们使用discuz、phpwind、phpbb等这些优秀的 论坛程序时,不得不佩服他的功能强大,但是我们有没有自问过:”自己的网站需要这么复杂的程序吗?”,于是许多优秀的、注重效率、满足基本功能的论坛程序 受到小站长的追捧。
WordPress团队开发了一个简单的论坛程序bbpress(有 点像百度贴吧)但是我们有时就是需要再简单点的论坛,这时我们可以使用WordPress插件论坛来扩展:Simplepress(《WordPress 论坛插件:Simple Forum》)
WP-Forum(《wordpress 插件之WP-Forum:打造一个轻量级的wordpress论坛》)

WIKI
Wiki 系统属于一种人类知识网格系统,我们可以在Web的基础上对Wiki文本进行浏览、创wiki建、更改,而且创建、更改、发布的代价远比HTML文本小; 同时Wiki系统还支持面向社群的协作式写作,为协作式写作提供必要帮助;最后,Wiki的写作者自然构成了一个社群,Wiki系统为这个社群提供简单的 交流工具。与其它超文本系统相比,Wiki有使用方便及开放的特点,所以Wiki系统可以帮助我们在一个社群内共享某领域的知识。
插件推 荐:WP-WIKI
安装WP-WIKI插件后,添加了发布 WordPress的页面或文章的”wiki维基编辑” 功能,当你编辑文章或者页面的屏幕的主编辑框下面会添加一个新的Wordpress Wiki复选框,你选中它后,那么就意味着任何人可以登陆到你的网站以一个WikiEditor维基编辑人的身份编辑这些特定的页面(测试时好像需要用户 名和密码),如果你点击一个旧的修订链接,他只是展示让你详阅所有旧的修订链接。

电子商务
用 WordPress做个电子商务网站,工作之余在网上卖点小东西,呵呵,是不是很不错的想法,如果你有这样的想法,那么,你就去做吧,为你介绍一款强大的 插件WP e-Commerce。
WP e-Commerce是一款电子商务购物车插件程序,它不仅操作方便并且功能强大,可以独立页面显示也可以嵌入到侧边栏中,非常适合在线销售你的服务和产 品。此外它还内置多种包括Paypal等在内的支付网关,让收款和资金周转更加快捷有效!
支付网关:让你轻松接受在线支付
简 化结算:让客户有更好的购物体验
社会化网络:更轻松的推荐你的产品
紧凑的WordPress整合:安装方便
更 多的点击和更好的销售:让更多的人了解你的新产品

项目管理
在WordPress上轻 松的创建并展示你的项目,跟踪项目和任务的进度。
推荐插件:WP-Project、WP-Advanced-Trac

微博
现在微博很火,就像当年的博客进入中国一样。但是中国微博异于twitter, 在中国微博:娱乐、资讯,而twitter上是:资讯、娱乐。
在这微博混战的年代、在这追求新鲜与个性的时代,我注册了几乎所有能注册的 微博,但是真正使用的也就是几个。
在这推荐一个非常强大的WordPress主题:P2主题,这是一款专门的微博主题。
《P2 主题打造真正的多用户微博》

SNS
又是一个当下非常火的网络服务,但是微博来临的时 候,SNS却黯然失色啦,只能说互联网的兴奋点只能是新生事物
推荐插件:BuddyPress,与WordPress师出同门,质量还是可以保证的。 BuddyPress主要包含了个人信息、博客、朋友圈、小组、微博客、状态更新和相册等功能
视频网站
WordPress通过在2.9版本中增强了视频嵌入功能,尤其是对国外网站视频的插入更是智能化。
如果我们想通过 WordPress建立一个视频网站的话,我想没有比采用 VodPod主题更好了。 《WordPress视频主题VodPod使用教程》

图片网站
如果是单纯的添加一个 相册的话,我想采用NextGEN Gallery插件最好不过啦《21款 Wordpress图片相册插件/ Gallery Plugins》。
但是如果是建立一个图片网站的话,那么选择一款好的图片 主题更为重要:《推荐8款wordpress图片模板》。
另外再推荐两款插件:Yet another photoblog 和 PhotoQ Wordpress Photoblog Plugin

以上是关于分离部署LNMP搭建WORDPRESS详细步骤的主要内容,如果未能解决你的问题,请参考以下文章

用lnmp架构部署wordpress网站详细步骤

在服务器上搭建多个WordPress博客网站教程(超级详细)

Dockerfile构建LNMP分离环境部署wordpress

Dockerfile构建LNMP分离环境部署wordpress

企业级LNMP实例搭建

LNMP分离式部署搭建