linux 配置nginx+php-cgi
一.准备工作
nginx源码包: http://www.nginx.org/download/nginx-0.7.65.tar.gz
php源码包:http://ah.down.chinaz.com/201302/php-5.3.22.tar.gz
安装一些必要的系统软件包
yum install pcre-devel.i386
yum install openssl-devel.i386
yum install libxml2-devel.i386
要区分64位机跟32位机,
我的linux 内核是:2.6.32-279.el6.x86_64
二.安装nginx
解压nginx
tar zxvf nginx-0.7.65.tar.gz
进入nginx源码目录
cd nginx-0.7.65
配置nginx编译文件
./configure --prefix=/usr/local/nginx
编译并安装nginx
make && make install
nginx的安装目录被设置在 =/usr/local/nginx
运行nginx
/usr/local/nginx/sbin/nginx
nginx 安装初步完成,此时可以用 ip 访问到欢迎界面。(http://IP(linux)).
安装过程遇到的问题:
1.pcre包没有安装 执行:yum install pcre-devel.x86_64
2../configure: error: the HTTP cache module requires md5 functions
原因是需要OpenSSL library
解决办法:yum -y install openssl openssl-devel
三.安装php
在开始编译前,安装一些php基本的软件包,直接yum安装。
yum -y install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql mysql-devel
准备好后,进行php目录进行编译
1.解压php软件包
2. ./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm --enable-debug --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-curl --with-mysql=/usr/bin/mysql --with-mysqli=/usr/bin/mysql_config
如果没有mysql,可以去掉最后两个选项
3.make && make install
cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
安装完成后即可启动php了
/usr/local/php/sbin/php-fpm
运行后,未提示错误,启动成功。
安装过程中遇到的问题:
1.configure: error: xml2-config not found. Please check your libxml2 installation.
解决办法:
1.yum install libxml2
2.yum install libxml2-devel -y
php安装成功
三.修改配置
编辑 /usr/local/nginx/conf/nginx.conf
1.找到 server 片段
server {
......
}
2.server_name 的参数修改成自己的域名
server_name www.elepin.com;
3.root 改成自己要绑定的目录,index指明哪些文件作为首页
location / {
root /usr/www;
index index.html index.htm index.php;
}
下面是php-cgi的连接配置,root跟上面的一样, fastcgi_pass,fastcgi_index,include 都默
认,要改的是 fastcgi_param,参照下面
location ~ \.php$ {
root /usr/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
打开nginx配置文件找到下面这段配置
vi /usr/local/nginx/conf/nginx.conf
# location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_param;
# }
将这段配置的注释去掉,并将include fastcgi_param改为include fastcgi.conf
保存重启nginx
/usr/local/nginx/sbin/nginx -s reload
默认web目录是html文件夹,在下面新建一个测试文件
touch /usr/local/nginx/html/test.php
vi /usr/local/nginx/html/test.php
写入<?php phpinfo();?>
保存后,在浏览器中访问该页,如显示php配置信息,则大功告成。
重启nginx
killall nginx
/usr/local/nginx/sbin/nginx