nginx参考: http://wiki.nginx.org/NginxChsInstall
php-fpm参考:http://www.php.net/manual/en/install.fpm.install.php
lnmp http://lnmp.org/index.html
从源代码编译 Nginx
把源码解压缩之后,在终端里运行如下命令:
./configuremakesudo make install
默认情况下,Nginx 会被安装在 /usr/local/nginx。通过设定编译选项,你可以改变这个设定。
编译选项
http://wiki.nginx.org/NginxChsInstallOptions
configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。
configure 支持下面的选项:
--prefix=<path> - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。
--sbin-path=<path> - Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。
--conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。
--pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 <prefix>/logs/nginx.pid。
--lock-path=<path> - nginx.lock文件的路径。
--error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。
--http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 <prefix>/logs/access.log。
--user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。
--group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。
--builddir=DIR - 指定编译的目录
--with-rtsig_module - 启用 rtsig 模块
./configure --prefix=/host/soft/nginx 安装在指定目录
管理服务
管理服务是在/hout/soft/nginx/sbin/下的nginx
>./nginx -t 检查配置文件是否正确 这里可以察看配置文件路径,以及检查配置是否有错误
>./nginx 启动服务
>./nginx -s stop 停止服务
>./nginx -s reload 重新加载配置-----------------------------------------------
1.php-fpm的安装
# gunzip php-5.2.17.tar.gz | tar xvf - (解压包php-5.2.17,将生成目录php-5.2.17)
# gunzip php-5.2.13-fpm-0.5.14.diff.gz (解压包php-5.2.13-fpm-0.5.14.diff) php-5.2.17和这个文件在同一个文件下
# patch -d php-5.2.17 -p1 < php-5.2.13-fpm-0.5.14.diff (给php-5.2.17的源码打上fpm补丁)
# cd php-5.2.17
# ./configure --prefix=/host/soft/php5.2 -with-config-file-path=/host/soft/php5.2/lib -enable-fastcgi -enable-fpm
(配置php-fpm,指定--prefix,若不指定,默认的目录 为/usr/local,编译后显得比较零乱.) 更多配置详见其他帖子
不指定-with-config-file-path= 可能会出现Loaded Configuration File (none)的情况
-enable-fastcgi -enable-fpm 在php5.3 只要使用-enable-fpm就可以了
# make all (编译所有)
# make install (编译安装,完成安装)
检查安装
# cd /host/soft/php5.2/bin
# ./php -v (显示如下内容,表示安装正常)
PHP 5.2.17 (cli) (built: May 10 2011 02:58:56) Copyright (c) 1997-2010 The PHP GroupZend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
将php-5.2.17目录下的php.ini-dist 复制到 /host/soft/php5.2/lib/php.ini .你也可以在编译时,设置配置文件路径.
修改 /host/soft/php5.2/etc/php-fpm.conf 配置文件
去掉user,group两行的注释
Unix user of processes
<value name="user">nobody</value>
Unix group of processes
<value name="group">nobody</value>
启动php-fpm
# /host/soft/php5.2/sbin/php-fpm start
----------------------------------------------------------------------------
配置文件在/usr/local/nginx/conf/nginx.conf在主配置区的server部分修改:
server {
linsten 8080;#监听端口
server_name admin; #站点host
站点目录
location / {
root /home/sites/ct_admin #站点根目录 没认为html,就是/usr/local/nginx/html目录.
index index.php index.html index.htm #默认主页
}
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }重新加载配置文件 ------------------------------------------------------------------------------ 打印phpinfo()可以察看php信息.
SystemLinux ubuntu 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686Build DateMay 10 2011 03:36:44Configure Command'./configure' '--prefix=/host/soft/php5.2' '--enable-fastcgi' '--enable-fpm'Server APICGI/FastCGIVirtual Directory SupportdisabledConfiguration File (php.ini) Path/host/soft/php5.2/lib从上图可以看到php的配置路径是在./host/soft/php5.2/lib.默认配置文件不 存在.需要你复制一份过去
其中php-fpm的配置在php的etc目录中,要注意以下这个段落,<value name="allowed_clients">127.0.0.1</value>设置允许访问fpm的IP地址,如果这里不匹配 Nginx转发过来的php解析请求不能被接受。跟踪问题可以参看logs目录中的php-fpm.log
察看配置文件路径php --ini
php -i | grep Configuration//查找配置文件
php -i | grep extension_dir // 查找extension_dir目录