一聚教程网:一个值得你收藏的教程网站

热门教程

Ubuntu下安装nginx与PHP-FPM两种方法

时间:2022-06-30 19:30:00 编辑:袖梨 来源:一聚教程网

例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 + 其他模块:

 代码如下 复制代码
apt-get install php5-fpm php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear
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/nginx restart
sudo /etc/init.d/php5-fpm reload

热门栏目