分类:编程语言/Php/文章

简介:

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

预备知识:

所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

Web服务器常用的机制select、poll和epoll :
Select:
1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024。
2.操作限制:通过遍历FD_SETSIZE(1024)个Socket来完成调度,不管哪个Socket是活跃的, 都遍历一遍.
Poll:
1.Socket数量几乎无限制:该模式下的Socket对应的fd列表由一个数组来保存,大小不限(默认4k)。
2.操作限制:同Select。
Epoll:
1.Socket数量无限制:同Poll
2.操作无限制:基于内核提供的反射模式,有活跃Socket时,内核访问该Socket的callback,不需要遍历轮询。
select 和epoll效率差的原因:
select是轮询、epoll是触发式的,所以在特定的应用上效率相差会很多。
nginx:支持高并发连接.官方测试的是5w并发连接但在实际生产中可制成2-4w并发连接数, 得益于nginx使用最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型,而apache使用的则是传统的select模型,其比较稳定的prefork模式为多进程模式,需要经常派生子进程,所消耗的CPU等服务器资源要比nginx高的多。
下面我们来看看lnmp环境的搭建:
一、安装mysql
这次我们下了一个二进制的包
mysql-5.5.15-linux2.6-i686.tar.gz
1、解压
# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/
2、创建mysql 用户及组
# groupadd -r mysql #创建mysql组

# useradd -r -g mysql mysql -M #创建mysql用户所属组为mysql,不创建家目录3、切换目录

# cd /usr/local/

为了方便我们管理,我们将mysql-5.5.15-linux2.6-i686 创建软连接
# ln -s mysql-5.5.15-linux2.6-i686 mysql
4、改变文件权限

#   cd mysql

# chown -R mysql .

# chgrp -R mysql .

# scripts/mysql_install_db --user=mysql #执行脚本

# chown -R root .

# chown -R mysql data

5、创建配置文件

# cp support-files/my-medium.cnf /etc/my.cnf #拷贝配置文件
# cp support-files/mysql.server /etc/init.d/mysqld# 给service 管理
# chmod a+x /etc/init.d/mysqld #给文件执行权

# service mysqld start# 启用mysql

为了能够直接操作mysql

修改环境变量
# vim /etc/profile
添加

PATH=$PATH:/usr/local/mysql/bin

# . /etc/profile #加载环境变量

# mysqladmin -u root -p password '123' #给数据库创建密码
让系统能够调用mysql的库
编辑配置文件
[root@zlj mysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@zlj mysql]# ldconfig -v |grep mysql  #刷新缓冲文件,并查看
二、安装nginx
1、首先要安装 pcre (正则表达式)和libevent(能够显著地提高软件的性能)
# rpm -ivh pcre-6.6-2.el5_1.7.i386.rpm #安装pcre

# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src #解压

#cd /usr/local/src/libevent-2.0.16-stable

# ./configure --prefix=/usr/local/libevent #将它安装在/usr/local/libevent目

录下

# make && make install #编译安装

安装成功

为了让系统能够调用libevent的库函数
编辑
# vim /etc/ld.so.conf.d/libevent.conf

/usr/local/libevent/lib

为了能够调用到libevent头文件,需要创建软连接

# ln -s /usr/local/libevent/include /usr/include/libevent
安装nginx
# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/ #解压
#  groupadd  -r  nginx #创建nginx 组
#  useradd -r -g nginx -s /bin/false  -M nginx #创建nginx 用户
#  cd /usr/local/src/nginx-1.0.11/

编译

./configure \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--with-pcre
提示:
checking for PCRE library ... not found
checking for PCRE library in /usr/local/ ... not found
checking for PCRE library in /usr/include/pcre/ ... not found
checking for PCRE library in /usr/pkg/ ... not found
checking for PCRE library in /opt/local/ ... not found
我们可能要将pcre-devel 装上
[root@zlj Server]# rpm -ivh pcre-devel-6.6-2.el5_1.7.i386.rpm
再次编译就能够成功
[root@zlj nginx-1.0.11]# make && make install #安装
为了实现nginx的管理,我写了一个脚本
  1. [root@localhost ~]# cat /etc/init.d/nginx
    #!/bin/bash
    #chkconfig: 2345 99 88
    #description: this is nginx server
    prog=/usr/local/nginx/sbin/nginx
    lockfile=/var/lock/nginx.lock
    pidfile=/var/run/nginx/nginx.pid
    tmpfile=/var/tmp/nginx/client/#创建临时文件目录[ ! -e $tmpfile ] && make -p $tmpfile
    start( ){echo -n "nginx is start.."sleep 1echo -n "."if [ -f $lockfile  ];thensleep 1echo -e "\t\t\t[\033[31m fail \033[0m]"else$prog && touch $lockfile && echo -e "\t\t\t[\033[32m ok \033[0m]"fi
    }
    stop(){echo -n "nginx is stoping...."if [ -f $lockfile ];thensleep 1$prog -s stop && rm -rf $lockfile && echo -e  "\t\t\t[\033[32m ok \033[0m]"elsesleep 1echo -e "\t\t\t[\033[31m fail \033[0m]"fi
    }
    status (){if [ -f $lockfile ];thenecho "nginx pid $(cat $pidfile) is running"elseecho "nginx is stopped"fi
    }
    case $1 in
    start)start;;
    stop)stop;;
    restart)stopstart;;
    status)status;;
    *)echo "Usage $0 {start|stop|restart|status}";;
    esac
给它执行权
# chmod a+x /etc/init.d/nginxd
# service nginxd start #启动
# chkconfig --add nginxd #设置开机启动
三、安装php
1、我们下的是php-5.4.13.tar.bz2

# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src 解压

#cd /usr/local/src/php-5.4.13

检测环境

[root@zlj ~]#./configure    \
--prefix=/usr/local/php \ # 预安装目录
--enable-fpm   \ #支持fastcgi
--enable-sockets  \
--with-mysql=/usr/local/mysql \ #告诉它mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config  \ #支持mysql扩展
--enable-mbstring  \
--enable-xml  \
--with-png-dir \
--with-png  \
--with-jpeg-dir  \
--with-zlib  \
--with-freetype-dir \
--with-config-file-path=/etc/php \
--with-config-file-scan-dir=/etc/php5.d  #php扩展功能目录
# make && make install #安装
2、创建php的配置文件
# mkdir /etc/php  #创建这个目录
# cp php.ini-production  /etc/php/php.ini #拷贝这个文件
# mkdir /etc/php5.d  #创建这个目录
# cp sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm #创建service管理文件
# chmod a+x /etc/init.d/php-fpm #更改权限
3、产生php-fpm的配置文件
PHP-FPM是一个PHPFastCGI管理器,PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。
进入php的安装目录,下的etc
# cp php-fpm.conf.default php-fpm.conf
#启动php-fpm
# service php-fpm start
#hkconfig --add php-fpm #设置自动启动
让nginx 支持php-fpm修改配置文件
[root@zlj ~]# vim  /etc/nginx/nginx.conf
65         location ~ \.php$ {
66             root           html;
67             fastcgi_pass   127.0.0.1:9000;
68             fastcgi_index  index.php;
69 fastcgi_param  SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #nginx的安装目录
70             include        fastcgi_params;
71         }
45             index  index.php index.html index.htm;

编辑 vim /usr/local/nginx/html/inde.php

<?php

phpinfo();

?>

测试能否打开php 页面

测试是否能连接数据库,修改 index.php

<?php
$link=mysql_connect('127.0.0.1','root','123456');
if($link)

echo "scuess";

else

echo "fail";

?>

四、php加速

我们用这个包xcache-2.0.1.tar.gz
# tar -zxvf xcache-2.0.1.tar.gz -C /usr/local/src/ #解压
1、安装前先看看安装说明
# vim INSTALL
$ phpize --clean && phpize #让我们用phpize生成configure文件
$ ./configure --help
$ CFLAGS='your cflags' ./configure --enable-xcache --enable...
$ make
$ su
phpize  文件在/usr/local/php/bin目录下
# /usr/local/php/bin/phpize #执行
2、编译
#./configure--enable-xcache --with-php-config=/usr/local/php/bin/php-config  #检查环境
# make && make install #安装
3、编辑php,整合php和xcache
# cp xcache.ini  /etc/php5.d
# vim /etc/php5.d/xcache.ini #编辑
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
;;zend_extension = c:/php/extensions/php_xcache.dll #给它注释掉
4、配置xcache的管理
Xcache自带管理页面
拷贝admin目录到nginx的站点目录
# cp -rp admin /usr/local/nginx/html/
更改文件权限
#chmod a+rx admin #给它读和切换目录的权限
# chmod a+r admin/index.php #给它读取的权限
添加认证
# vim /etc/php5.d/xcache.ini
xcache.admin.user = "admin"
xcache.admin.pass = "21232f297a57a5a743894a0e4a801fc3"

密码必须是md5加密的
#echo -n "admin" |md5sum #输出admin加密后的密文

将密文拷到上面即可
5、测试
[root@zlj xcache-2.0.1]# /usr/local/nginx/sbin/nginx #启动
提示:
nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)
说明没有这个文件夹
创建这样的文件夹
[root@zlj xcache-2.0.1]# mkdir -p /var/tmp/nginx/client
在启动
[root@zlj html]# /usr/local/nginx/sbin/nginx
在浏览器url中输入192.168.1.100/admin 我们服务器的ip和管理虚拟目录名

可以看到非常详细的内存管理页面

这就搭建成功了!

下面来搭建搭建一下Dvbbs吧,

Dvbbs安装配置

注:可以去这http://dp.dvbbs.net/下载dvbbs的软件包,

1.将软件包解压后将所需upload目录上传到/usr/local/nginx/html/命名为dvbbs

2.通过浏览器访问http://192.168.10.100/dvbbs,如下图;

修改下面文件的权限为777

# chmod -R 777 p_w_upload/

# chmod -R 777 htm_data/

# chmod -R 777 data

然后进行在线安装

转载于:https://blog.51cto.com/feilong0663/1358999

lnmp搭建+xcache加速+dvbbs论坛相关推荐

  1. Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛

    Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览. ...

  2. 实验·搭建LNMP架构的社区动力论坛

    实验·搭建LNMP架构的社区动力论坛 文章目录 实验·搭建LNMP架构的社区动力论坛 实验环境 实验步骤 #搭建Nginx #安装MySQL #安装PHP #让nginx支持php #部署社区动力论坛 ...

  3. LNMP搭建过程详解,验证搭建论坛

    LNMP搭建过程详解,验证搭建论坛 一.安装Nginx服务 1.安装依赖包 2.创建运行用户 3.编译安装 4.优化路径 5.添加Nginx 系统服务 二.安装MySQL服务 1.安装Mysql环境依 ...

  4. LNMP搭建+论坛搭建

    LNMP搭建+论坛搭建 一:关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 二:创建运行用户 usera ...

  5. php xcahe安装,yum安装实现lamp分离及Xcache加速

    yum安装实现lamp分离及Xcache加速 发布时间:2020-05-19 12:31:40 来源:51CTO 阅读:432 作者:m591892406 栏目:数据库 LAMP的搭建: 准备前提: ...

  6. dvbbs论坛的安装

    去年的时候搭建过好几个论坛,discuz和dvbbs,当时搭建的挺顺利,昨天的时候Boss说要去中软那边去测试,当把虚拟机里搭建的环境从服务器copy到笔记本的时候发现搭建的论坛出问题了,这下子慌了, ...

  7. centos 桥接配置 设置网络代理 lnmp搭建

    一.桥接配置 centos设置  编辑->虚拟网络编辑器->桥接模式->还原默认设置 虚拟机->设置->网络适配器->桥接 cd /etc/sysconfig/ne ...

  8. 后续:为LAMP添加XCache加速。

    安装xcache,为php加速 前一篇博文,笔者写了关于LAMP的构建http://407711169.blog.51cto.com/6616996/1185226.最后提到了XCache加速的功能. ...

  9. 后续:为LAMP添加XCache加速

    安装xcache,为php加速 前一篇博文,笔者写了关于LAMP的构建http://407711169.blog.51cto.com/6616996/1185226.最后提到了XCache加速的功能. ...

最新文章

  1. 2017阿里云TECH INSIGHT干货分享第六届隆重回归
  2. linux memcache 源码包,Linux 安装Memcache扩展支持(示例代码)
  3. phpcms黄页,不能选择行业。解决办法
  4. linux命令行操作之文件操作总结
  5. 使用cpan安装perl模块
  6. form表单提交之前判断
  7. 【python数字信号处理】——Z变换
  8. 解决SublimeCodeIntel回车换行误打代码
  9. 问题来了:哪个AI公司会签下张学友当代言人?
  10. Mysql启动报错解决方案:Failed to open log (file ‘./mysql-bin.000901‘, errno 2)
  11. php 密匙加密解密,带密匙的php加密解密示例分享
  12. linux下使用source执行文件的含义
  13. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
  14. 《Head First HTML and CSS 》中英文下载链接
  15. SCARA四轴机器人丝杆花键_视频图文为你揭秘SCARA机器人!马了备用!
  16. word图片撑满_word图片满页 word图片铺满整个页面
  17. 离散数学复习--Modular Arithmetic
  18. Codeforces 786A Berzerk(博弈)
  19. zynq 7000 的流水灯实验
  20. Compose关于Column属性说明

热门文章

  1. 乐高机器人纲要_未来侠机器人教育,专注3-16岁乐高机器人智能创客教育
  2. platformer Microgame
  3. VB--fpSpread控件01
  4. HTML中如何调整标签在页面中显示的位置
  5. 小宝机器人_家用教育智能机器人
  6. 计算机网络的发展趋势_MobiHoc-B类会议佼佼者 | CCF计算机网络领域
  7. Java 8 动态类型语言Lambda表达式实现原理分析
  8. 校验和checksum (SCL算法)
  9. Mysql-设置连接数
  10. 一种TPMS胎压传感器工作模式介绍--汽车胎压监测方案