nginx/apache+php-fpm环境

   2017-02-05 0
核心提示:最近上了一批debian7的机器,刚好有web项目要上,debian7中已经把php-fpm集成进去了,打算把以前的apache+mod_php模式换成nginx+php-fpm或者apache+php-fpm模式,apache毕竟模块多还更稳定一些。1 nginx+php-fpm安装nginxapt-get install nginx安装php及php-f

    最近上了一批debian7的机器,刚好有web项目要上,debian7中已经把php-fpm集成进去了,打算把以前的apache+mod_php模式换成nginx+php-fpm或者apache+php-fpm模式,apache毕竟模块多还更稳定一些。

1 nginx+php-fpm

安装nginx

apt-get install nginx
安装php及php-fpm
apt-get install php5-mysql php5-gd php5-curl php5-cli php5-cgi php5-dev
apt-get install php5-fpm
配置php-fpm,php-fpm的主要配置文件在/etc/php5/fpm里面
├── conf.d -> ../conf.d   php的扩展模块配置文件
├── php-fpm.conf          php-fpm的主配置文件,include了pool.d里面的conf文件
├── php.ini               php的配置文件
└── pool.d
    └── www.conf          影响web站点的php-fpm配置文件
      php-fpm.conf可以配置的选项不多,主要是设置日志级别,超时时间等等,很多都有默认值,其中主要的是www.conf这个文件,他会直接影响你的web站点的php解析。

下面看看默认的www.conf配置:

#设置一个名为www的池
[www]

#user是必须设置的
user = www-data

#如果没有设置group,默认使用user的group
group = www-data

#在哪个端口接收FastCGI请求,可以是socket或者端口
listen = /var/run/php5-fpm.sock

#主进程管理子进程的模式,动态模式
pm = dynamic

#可创建的最大子进程数
pm.max_children = 5

#fpm刚启动时创建的子进程数,默认min_spare_servers+(max_spare_servers- min_spare_servers)/2
pm.start_servers = 2

#可以空闲的最小服务进程
pm.min_spare_servers = 1

#可以空闲的最大服务进程
pm.max_spare_servers = 3
 
#chroot该目录
chdir = /

       这些是安装完后的默认配置,还有很多选项虽然没有列出来,但是都有默认值的。如果在一台机器上部署多个应用,可以根据访问量,在pool.d中为各个应用配置不同的分配模式,能有效起到安全隔离效果。

配置nginx,nginx配置文件主要在/etc/nginx目录

├── conf.d
├── fastcgi_params   #可以优化该文件
├── koi-utf
├── koi-win
├── mime.types
├── naxsi_core.rules
├── naxsi.rules
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default #主要配置该文件
├── uwsgi_params
└── win-utf
default文件配置:
upstream php {
        server unix:/var/run/php5-fpm.sock;
}
server {
	listen   80; 
	root /usr/share/nginx/www;
	index index.php index.html;
	server_name 192.168.37.37;
	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
	
                fastcgi_pass php;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}

设置首页面

echo '<?php phpinfo(); ?>' > /usr/share/nginx/www/index.php
启动php-fpm和nginx
/etc/init.d/nginx start
/etc/init.d/php5-fpm start
nginx/apache+php-fpm环境

nginx/apache+php-fpm环境

2 apache+php-fpm

    为什么用apache+php-fpm呢,稳定一些,经过大量用户考验的,如果不是为了高性能,而是为了稳定,也可以试试这个模式。在debian6中的php版本中,php官方已经把fpm集成进去了,但是debian因为种种原因并没有在debian6的php中集成fpm,不过在debian7中终于等到了...

安装apache2

apt-get install apache2 apache2-mpm-worker libapache2-mod-fastcgi

php及php-fpm已经在上一环节安装,所以不需要再次安装。

开启相关apache模块

a2enmod actions fastcgi alias

apache配置文件目录结构/etc/apache2

├── apache2.conf   #主配置文件
├── conf.d
├── envvars
├── magic
├── mods-available #总模块
├── mods-enabled   #启用模块
├── ports.conf 
├── sites-available  #总站点
└── sites-enabled    #启用站点,默认启用000-default
000-default文件配置
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
        ServerName 192.168.37.37
	DocumentRoot /var/www
       <IfModule mod_fastcgi.c>
    	  AddHandler php5-fcgi .php
    	  Action php5-fcgi /php5-fcgi
    	  Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    	  FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
       </IfModule>
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog ${APACHE_LOG_DIR}/error.log
	LogLevel warn
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

针对fcgi可做如下优化/etc/nginx/fastcgi_params:

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

设置首页面/var/www/index.php

echo '<?php echo 'hello guol'; ?>' > /var/www/index.php
启动apache和php-fpm
/etc/init.d/php5-fpm start
/etc/init.d/apache2 restart
nginx/apache+php-fpm环境

nginx/apache+php-fpm环境

 
标签: Nginx Apache HTTP Server
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Nginx动态路由的新姿势:使用Go取代lua nginx路由规则
    Nginx动态路由的新姿势:使用Go取代lua nginx路
    导语: 在Nitro 中, 我们需要一款专业的负载均衡器。 经过一番研究之后,Mihai Todor和我使用Go构建了基于Nginx、Redis 协议的路由器解决方案,其中nginx负责所有繁重工作,路由器本身并不承载流量。 这个解决方案过去一年在生产环境中运行顺畅。 以下是我
    03-08
  • nginx和php-fpm 是使用 tcp socket 还是 unix s
    tcp socket允许通过网络进程之间的通信,也可以通过loopback进行本地进程之间通信。unix socket允许在本地运行的进程之间进行通信。分析从上面的图片可以看,unix socket减少了不必要的tcp开销,而tcp需要经过loopback,还要申请临时端口和tcp相关资源。但是
    03-08
  • [微信小程序直播平台开发]___(三)Nginx-rtmp事件回调
    [微信小程序直播平台开发]___(三)Nginx-rtmp
    1.一个可以忽略的前言发起直播后可以在Nginx的自带的页面上查看到统计,那怎么知道发起了直播或者关闭了直播呢?我想到了这个统计页,于是查看一下里面的内容看看如何获取到的数据,找到后发现是个xsl文件,莫非要写个读取该文件的代码?好吧这是下下策。其实
    02-09
  • 微信小程序 springboot nginx 做图片存储 上传
    微信小程序前端-springboot后端-nginx图片存储前言本人小白一名,这是第一次学习微信小程序,特此做个记录。首先准备nginx做图片存储选择一个地址存放图片#我的地址[root@VM_0_16_centos images]# pwd/home/photos/images[root@VM_0_16_centos images]#然后配
    02-09
  • 结合nginx的内嵌perl-module,实现高性能的web
    到底web服务器的极限是多少呢?100 r/s? 500 r/s?还是1000 r/s?在StaticGenerator上看到,原来1000 r/s都不算什么.真的是这样吗?如果是真的那就太恐怖了。目前的web基本上都是动态的,为了提高性能,我们常常会使用各种各样的手段优化,例如减少IO,合理
    02-09
  • apt-get 方式安装nginx后,增加模块--with-http
    因为要把网站的图片格式方式换成imageMagick的缘故,服务器端原来安装的nginx要增加perl的模块,而原来服务器安装时apt-get方式安装的并不是源码安装,但我又不想直接卸了重新安装,所以整了老半天,下面把方法和遇到的问题记录如下,供有同样需求的人参考。
    02-09
  • Lua在Nginx的应用 nginx lua
    Lua在Nginx的应用 nginx lua
    当 Nginx 标准模块和配置不能灵活地适应系统要求时,就可以考虑使用 Lua 扩展和定制 Nginx 服务。OpenResty集成了大量精良的 Lua 库、第三方模块,可以方便地搭建能够处理超高并发、扩展性极高的 Web 服务,所以这里选择 OpenResty 提供的lua-nginx-module方
    02-09
  • Nginx 内嵌lua脚本,结合Redis使用
    0x00 Nginx 内嵌Lua脚本有下面特点:20k个并发连接Lua脚本能够在Nignx 11个层次的不同层次发挥作用,扩展Ngnix功能Lua速度极快(寄存器指令)0x01 应用场景在web server端做请求过滤处理(如:WAF、Anti CC等)0x02 简单配置过程測试环境Ubuntu Server 14.04.
    02-09
  • 通过nginx + lua来统计nginx上的监控网络请求和
    介绍以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats功能支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location
    02-09
  • 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
    51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
    http://os.51cto.com/art/201112/307610.htm说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx。虽然说Apache依然是Web服务器的老大,但是在全球前 1000大Web服务器当中,22.4%使用NGINX。这些服务器包括诸如Facebook、Hulu和WordPress之类的网
    02-09
点击排行