共计 9265 个字符,预计需要花费 24 分钟才能阅读完成。
分离部署 LNMP 搭建 WORDPRESS
- LNMP 是一个基于 CentOS/Debian 编写的 Nginx、PHP、MySQL、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 的优点:
- Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器.Nginx 是由俄罗斯人 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发.
- Nginx 以事件驱动 (epoll) 的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。但是 Nginx 并不支持 cgi 方式运行,原因是可以减少因此带来的一些程序上的漏洞。所以必须使用 FastCGI 方式来执行 PHP 程序。
- 由于 Nginx 本身的一些优点,轻量,开源,易用,越来越多的公司使用 nginx 作为自己公司的 web 应用服务器,本文详细介绍 nginx 源码安装的同时并对 nginx 进行优化配置。
- Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:
- 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50.000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.
- 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP 代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
- 作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
- 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
你的工作,由 AI 赋能!🔥
还在为文案、脚本卡壳、做视频、写代码、设计图片灵感枯竭而烦恼吗?🤯
板板 AI,你的工作好帮手!
一键生成 各种文案、脚本、图片、视频、代码、报告,轻松应对各种工作 / 营销需求!
现在注册体验,即可获得:
- 🎁 30 积分基础模型余额
- 🎁 3 积分高级模型余额
- 🎁 3 积分绘画余额
还不快来试试?
点击链接,开启你的 AI 创作之旅!>>>https://www.banbanai.cn
板板 AI,让你的工作效果发挥无限可能! 🚀