微风工作室

致力于现代化网站建设
注册 登录

Nginx 配置 PHP&PHP-fpm 笔记 (Ubuntu)

Nginx

自行将 breezes.name 改为你的 Web 应用域名

 

1. 安装 PHP-FPM

sudo apt-get install php5-fpm

 

PHP-FPM (FastCGI Process Manager) 是一个用于 PHP 的 FastCGI 进程管理器。

 

2. 编辑 PHP FPM 配置文件

sudo nano /etc/php5/fpm/pool.d/www.conf

 

修改 listen 参数

listen = 127.0.0.1:9000

 

3. 保存,重启 PHP FPM

sudo service php5-fpm restart

 

4. 在 /etc/nginx/conf.d 里面复制 default.conf 到 breezes.name.conf

 

cd /etc/nginx/conf.d/

sudo cp default.conf breezes.name.conf

 

5. 编辑 /etc/nginx/conf.d/breezes.name.conf

 

(1) 最顶处粘贴以下代码:

 

server {

    listen       80;

    listen       443 ssl;

 

    server_name  breezes.name;

 

    ssl_certificate     /data/ssl/breezes.name.cer;

    ssl_certificate_key /data/ssl/breezes.name.key;

 

    return       301 $scheme://www.breezes.name$request_uri;

}

 

说明:该代码用于把一级域名重定向到 www 二级域名

 

(2) 修改 server_name ,下面的代码也要。

 

(3) 如果没有 SSL ,注释掉 listen 443 ssl,还有 ssl_certificate 和 ssl_certificate_key。

 

(4) location / 段的 index.htm 后面添加 index.php

 

(5) location / 段里添加伪静态的 rewrite 规则:

# PHP rewrite config

if (!-e $request_filename) {  

    rewrite ^/(.*) /index.php last;  

}

 

(6) 修改 location ~ \.php$ 段,SCRIPT_FILENAME 参数设置为绝对路径 /data/www/breezes$fastcgi_script_name

 

(7) 去掉 location ~ /\.ht 段的注释

 

(8) 去掉多余的注释

 

6. 重启 Nginx

sudo service nginx restart

 

7. 配置完成,打开网站,测试

 

简单介绍 Module, CGI, FastCGI 3种模式的区别,以 Apache 和 PHP 为例。

 

CGI (common gateway interface) 译为通用网关接口,在这种模式下,Apache 每遇到一个需要 PHP 解释器处理的请求,就创建一个 PHP 进程去处理。缺点是进程开销大,性能低。

 

Module (模块) 就是作为 Apache 的模块运行,在这种模式下,Apache 直接解释脚本,无需另外创建 PHP 进程,相对于 CGI 模式,性能会更好。但是,如果模块出问题了会直接影响 Apache。

我认为 PHP 程序很稳定,没遇到过 Apache 崩溃的情况。

 

FastCGI 是为了弥补 CGI 的不足而去设计的,工作原理一样,不同的是进程管理的方法。进程执行完并不销毁,用管理器控制进程重复利用。

 

最近浏览:
百度蜘蛛用户
谷歌机器人用户
百度蜘蛛用户
MJ12bot 用户
你有什么看法?
(20字以内)
(200字以内)
(评论内容经审核后显示)