首页 > Linux操作系统 > Linux操作系统 > Nginx配置支持php
#运行用户
user nginx;
#启动进程,通常设置成和cpu的数量相等
worker_processes 4;
#全局错误日志及PID文件
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#工作模式及连接数上限
events {
#epoll是多路复用IO(I/O Multiplexing)中的一种方式,仅用于linux2.6以上内核,可以大大提高nginx的性能
use epoll;
#单个后台worker process进程的最大并发链接数
#并发总数是 worker_processes 和 worker_connections 的乘积
# 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#设置日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
#对于普通应用,必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
#以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#tcp_nopush on;
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#开启gzip压缩
gzip on;
#设定虚拟机
server {
listen 80;
server_name rac1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#定义服务器的默认网站根目录位置
root html;
#定义首页索引文件的名称
index index.html index.htm;
}
# 定义错误提示页面
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
}
Nginx本身不能处理PHP,当接收到请求后,如果是PHP请求,则发给PHP解释器处理,并把结果返回给客户端。
Nginx一般是把请求发FastCGI管理进程处理,FastCGI管理进程选择CGI子进程处理结果并返回被Nginx。
PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。新版PHP已经集成了PHP-FPM,在./configure的时候带 -–enable-fpm参数即可开启PHP-FPM。
1. 安装php-fpm
shell> cd php-5.5.23
shell> ./configure --prefix=/usr/local/php --enable-fpm --with-mysql --with-apxs2=/usr/local/apache2/bin/apxs
shell> make && make install
2. 修改php-fpm配置
shell> cd /usr/local/php
shell> cp etc/php-fpm.conf.default etc/php-fpm.conf
shell> vi etc/php-fpm.conf
=================================================================
user = nginx
group = nginx
=================================================================
3. 修改nginx配置文件以支持php-fpm
shell> vi /usr/local/nginx/nginx.conf
=================================================================
location ~ \.php$ {
root /var/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
=================================================================
创建测试php文件 shell> vi /var/web/test.php ================================================================= phpinfo(); ?> ================================================================= 启动php-fpm和nginx shell> /usr/local/php/sbin/php-fpm shell> /usr/local/nginx/nginx 访问http://你的服务器ip/test.php,可以见到php信息。
参考:
http://www.nginx.cn/76.html
http://www.nginx.cn/231.html
http://www.it165.net/admin/html/201308/1759.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29733787/viewspace-1585541/ ,如需转载,请注明出处,否则将追究法律责任。