分离部署LNMP搭建WORDPRESSphp
不少人在搭建的时候都是使用的一台机器来部署LNMP环境,可是咱们在实际的工做中通常都是分离部署的。也就是说MySQL是MySQL;它是一台单机,分离部署本身跑本身的服务,提升效率。node
OS:centos 7
Nginx IP:192.168.92.132
PHP IP:192.168.92.128
MySQL IP:192.168.92.130
一 首先安装nginxmysql
yum安装软件和源码包安装异同
yum安装的优缺点linux
优势:安装东西,方便快捷,特别是不用考虑包依赖 缺点:安装过程,人为没法干预,不能按需,安装。源里面有什么就安装什么,安装的版本也比较低。
源码包安装的优缺点nginx
优势:编译安装过程,能够设定参数,按照需求,进行安装,而且安装的版本,能够本身选择,灵活性比较大 缺点:因为安装包过新或者是其余问题,致使依赖的包没有,或者版本太低。这个时候就要解决包的依赖问题,linux系统中有的包,一个依赖一个,可能装一个小东西,就要解决一堆包的依赖问题,花不少时间解决包的依赖问题,得不尝失。
NGINX的优势:c++
Nginx 是一个高性能的 Web 和反向代理服务器, 它具备有不少很是优越的特性:web
做为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发链接,体现更高的效率,这点使 Nginx 尤为受到虚拟主机提供商的欢迎。可以支持高达 50,000 个并发链接数的响应,感谢 Nginx 为咱们选择了 epoll and kqueue 做为开发模型.sql
做为负载均衡服务器:Nginx 既能够在内部直接支持 Rails 和 PHP,也能够支持做为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不管是系统资源开销仍是 CPU 使用效率都比 Perlbal 要好的多。数据库
做为邮件代理服务器: Nginx 同时也是一个很是优秀的邮件代理服务器(最先开发这个产品的目的之一也是做为邮件代理服务器),Last.fm 描述了成功而且美妙的使用经验。vim
Nginx 安装很是的简单,配置文件 很是简洁(还可以支持perl语法),Bugs很是少的服务器: Nginx 启动特别容易,而且几乎能够作到7*24不间断运行,即便运行数个月也不须要从新启动。你还可以在 不间断服务的状况下进行软件版本的升级。
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的配置文件及提供脚本
[root@php php-5.6.27]# cp php.ini-production /etc/php.ini
[root@php php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@php php-5.6.27]# chmod +x /etc/init.d/php-fpm
[root@php php-5.6.27]# chkconfig --add php-fpm
[root@php php-5.6.27]# chkconfig php-fpm on
修改php主配置,并编辑以下:
[root@php php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@php 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
[root@mysql 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
[root@mysql mysql]# chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql
8)复制启动脚本并启动MySQL数据库
[root@mysql 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 yankerp@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
wordpress搭建
在nginx主机上解压wordpress压缩包
[root@nginx ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[root@nginx ~]# mv wordpress/ /www/
在php主机上一样的操做
[root@php ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[root@php ~]# 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