首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux nginx php 装配完整步骤

2012-08-30 
linux nginx php 安装完整步骤nginx使用fastcgi方式连接php,在linux下面编译安装时要编译php支持fastcgi方

linux nginx php 安装完整步骤
nginx使用fastcgi方式连接php,在linux下面编译安装时要编译php支持fastcgi方式,其他的一些东西,照着原来的方式装就可以了。

分为以下步骤:
1. tar xzvf zlib-x.x.x.tar.gz 2. cd zlib-x.x.x 3. ./configure 4. make make install

A2、安装freetype

# tar xzvf freetype-x.x.x.tar.gz  # cd freetype-x.x.x  # ./configure --prefix=/usr/local/modules/freetype  # make  # make install 


A3、安装libpng
   1. tar xzvf libpng-x.x.x.tar.gz     2. cd libpng-x.x.x     3. cp scripts/makefile.std makefile     4. make test     5. make install  


A3、安装jpeg
   1. tar xzvf jpegsrc.v8b.tar.gz     2. cd jpeg-6b     3. ./configure --prefix=/usr/local/modules/jpeg8 --enable-shared --enable-static     4. make && make install   


A4、安装GD
   1. tar xzvf gd-x.x.xx.tar.gz     2. cd gd-x.x.xx     3. ./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg8 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype     4. make && make install  


A5、安装pcre
# tar -zxvf pcre-x.x.tar.gz  # cd pcre-x.x  # ./configure  # make && make install 


A6、给php添加iconv模块
tar -zxvf libiconv-1.13.1.tar.gzcd libiconv-1.13.1./configure --prefix=/usr/local/libiconvmakemake install


A7、安装Linux Nginx
   1. tar -zxvf nginx-x.x.xx.tar.gz      2. cd nginx-x.x.xx     3. ./configure --prefix=/usr/local/nginx     4. make && make install  


A8、安装Linux Mysql
   1. rpm -ivh MySQL-server-4.0.14-0.i386.rpm 


A9、安装PHP
   1. tar -jxvf php-x.x.x.tar.bz2     2. gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1    3  cd php-x.x.x   4. ./configure --prefix=/usr/local/php --with-gd --with-jpeg-dir=/usr/local/modules/jpeg8 --with-zlib --with-png --with-freetype --enable-magic-quotes --enable-fastcgi --with-mysql=/local/server/mysql/ --enable-track-vars --enable-ftp --with-config-file-path=/usr/local/php/etc --with-zip --enable-force-cgi-redirect  --with-iconv=/usr/local/libiconv --enable-fpm   5. make && make install     6. cp php.ini-recommended /usr/local/php/etc/php.ini  



启动nginx
1. /usr/local/nginx/sbin/nginx


停止nginx
  
1. kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
 

重启nginx
  
1. kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
 

添加到自启动
  
1. echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local  



2、使用spawn-fcgi启动php的fastcgi引擎
可以直接启动php-cgi -b 127.0.0.1:9000
编译完成后在/usr/local/php/bin/下面就会有php-cgi这个可执行程序,使用spawn-fcgi启动php的fastcgi引擎:   
1. /data/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -f /usr/local/php/bin/php-cgi -C 20
 

意思是fastcgi使用本机ip和端口9000提供服务,权限nobody,启动20个进程。其中主要留意-C这个参数,一般20个进程足够用了,觉得不够亦可开大,在我的机器上每个php-cgi进程会占用7-8兆内存,开100个就是700-800兆。

spawn-fcgi这个程序在nginx里没有提供,可以在 http://www.sudone.com/download/spawn-fcgi

下面我们就可以使用 spawn-fcgi 来控制php-cgi的FastCGI进程了

/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi

参数含义如下

    -f <fcgiapp> 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
    -a <addr> 绑定到地址addr
    -p <port> 绑定到端口port
    -s <path> 绑定到unix socket的路径path
    -C <childs> 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
    -P <path> 指定产生的进程的PID文件路径
    -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等

下载到,一般放在nginx的sbin目录下,然后要给它加上可执行权限:
  
1. chmod +x /data/nginx/sbin/spawn-fcgi  


3、配置nginx连接php的fastcgi引擎

首先弄一份fastcgi-params配置,在nginx的conf目录下建一份文本文件,内容是:
  
#fastcgi-params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; #end


  
server { include port.conf; server_name www.sudone.com sudone.com;location / { index index.html index.php; root /data/sudone/php/; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/sudone/php$fastcgi_script_name; include fastcgi_params; } }


拿下来之后,有几个需要改的地方:
1、server_name2、location /里面的root3、location ~ .php$里面的fastcgi_param SCRIPT_FILENAME


其中fastcgi_param SCRIPT_FILENAME的参数中,$fastcgi_script_name前面是php文件的路径一般和root一样的,最后不用写/,貌似会有点问题,不要画蛇添足。

热点排行