【www.bbyears.com--nginx】
例1.直接配置PHP-FPM
把VPS的Lenny5换成了Ubuntu10.04,借这个机会试一下效率更高的 PHP-FPM 。
以下是fabric脚本:
代码如下def init_nmp():
install_nginx()
install_php()
install_phpfpm()
def install_nginx():
sudo("add-apt-repository ppa:nginx/stable")
sudo("apt-get update")
sudo("apt-get -y -q install nginx-full nginx-common")
def install_php():
# More packages upon request
sudo("apt-get -y -q --force-yes install php5-cli php5-cgi php5-mysql")
sudo("apt-get -y -q --force-yes install php5-mcrypt libmcrypt mcrypt")
def install_phpfpm():
# TODO: use canonical php-fpm package when available
sudo("add-apt-repository ppa:brianmercer/php")
sudo("apt-get update")
sudo("apt-get -y -q install php5-fpm")
在/etc/php5/fpm/php5-fpm.conf里将tcp修改成unix socket方式,单机情况下性能更好。
代码如下listen = /var/run/php5-fpm.sock
;listen = 127.0.0.1:9000
Nginx里的配置:
代码如下location ~ .php$ {
try_files $uri = 404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
例2.如果你是全新安装没有nginx,php环境我们可以参考下面实例
1,安装nginx
代码如下 sudo apt-get install nginx
2,安装 phpy + php-fpm + 其他模块:
php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps
php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
php5-json php5-suhosin php5-common php-apc php5-dev libpcre3-dev
3,配置 php:
代码如下sudo vi /etc/php5/fpm/php.ini
设置
代码如下cgi.fix_pathinfo=0
4,创建文件
代码如下mkdir /home/www
vi /home/www/index.php
phpinfo();
?>
修改文件权限
代码如下
chown -R www-data:www-data /home/www
5,修改 nginx 虚拟主机设置:
代码如下sudo vi /etc/nginx/sites-available
内容,我这里 IPv4 和 IPv6 用了两条独立的命令监听,原因见这里。
代码如下server {
#listen [::]:80;
listen 80;
server_name xxx.xxxxx.xxx;
root /home/www/;
#access_log /var/log/nginx/xxx-access.log;
#error_log /var/log/nginx/xxx-error.log;
location / {
index index.php 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 /home/www/nginx-default;
#}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
6,修改 fastcgi 参数,
代码如下sudo vi /etc/nginx/fastcgi_params
加入:
代码如下fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
7,重新启动 nginx 和 php-fpm,配置完成:
sudo /etc/init.d/php5-fpm reload