环境:  mysql-5.1.59.tar.gz

pcre-8.12.tar.gz

nginx-1.1.6.tar.gz

              php-5.2.17.tar.gz

              php-5.2.17-fpm-0.5.14.diff.gz

首先安装编译环境

yum –y install gcc gcc-c++ autoconf automake一般装完系统的都会有的

然后安装Nginx需要的一些库文件

Yum –y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

如果装系统的时候安装了开发库,,这些装完系统就会有的

不过系统自带的pcre版本比较老,需要重新安装一下新的版本

1.首先安装Mysql

Tar –zxvf mysql-5.1.59.tar.gz

./configure –prefix=/usr/local/mysql  –with-charset=gbk –with-xcharset=all

Make && make install

Useradd mysql

/usr/local/mysql/bin/mysql_install_db --user=mysql

chown -R mysql /usr/local/mysql/var

/usr/local/mysql/bin/mysqld_safe &

/usr/local/mysql/bin/mysqladmin -u root password 123456

Cp support-files/my-medium.cnf  /etc/my.cnf

Vim /etc/my.cnf

[client]下面加入

default-character-set=utf8

这样Mysql就能完全支持中文了

echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local

2.安装Nginx

安装Nginx之前,需要重新安装一下PRCE

Tar –zxvf pcre-8.12.tar.gz

./configure

Make && make install

开始安装Nginx

Tar –zxvf nginx-1.1.6.tar.gz

./configure –prefix=/usr/local/nginx

Make && make install

echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local

这个时候Nginx就装好了,打开http://localhost测试

出现Welcome to nginx!

表示安装成功!

3.安装PHP

需要的库文件

Libpng jpeg pegsrc.v7 freetype fontconfig gd

这些库文件包括对应的devel开发库也是需要装的,因为我装系统的时候装了开发库,所以这些库文件都已经装好了,下面我们开始装PHP

这个地方是最重要的地方,因为默认情况下NginxPHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHPApache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现N ginxPHP的整合,这个只要我们安装是启用FastCGI即可。此次我们安装PHP不仅使用了FastCGI,而且还使用了PHP-FPM这么一个东东,PHP-FPM说白了是一个管理FastCGI的一个管理器,它作为PHP的插件纯在,在安装PHP要想使用PHP-FPM时就需要把PHP-FPM以补丁的形式安装到PHP中,而且PHP要与PHP-FPM版本一致,这是必须的,切记!

以上红色字体为引用的

首先解压php-5.2.17.tar.gz

Tar –zxvf php-5.2.17.tar.gz

Gzip –cd hp-5.2.17-fpm-0.5.14.diff.gz | patch –d php-5.2.17 –p1 //php-5.2.17-fpm-0.5.14.diff.gz以补丁形式加到php-5.2.17里面

Cd php-5.2.17

./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm

Make && make install

cp php.ini-dist /usr/local/php/lib/php.ini   //因为编译的时候没有指定php的配置文件,默认的php配置文件是/usr/local/php/lib/php.ini

vim /usr/local/php/etc/php-fpm.conf  

//编辑改文件,把

<value name=”user”>nobody</value>

<value name=”group”>nobody</value>

这两行的注释取消,如果不去掉PHP-FPM自己不知道以那个用户和组运行PHP

去掉之后PHP-FPM会以nobody用户和组去运行PHP

/usr/local/php/sbin/php-fpm start 启动php

Echo “/usr/local/php/sbin/php-fpm start” >> /etc/rc.local

4.整合Nginxphp

Nginx自己是不处理动态网页的请求,它将得到的动态请求都交给php来处理,现在Nginxphp其实还是没有关联的,这时就需要修改Nginx的配置来让他关联php

Vim /uar/local/nginx/conf/nginx.conf

    location ~ \.php$ {

        root           html;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;

        include        fastcgi_params;

    }

把以上一段的注释去掉,就告诉了Nginx遇到URL路径是以php结尾的都通过9000端口转交给php去处理

fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name

/var/www/html就是我们存放网站的路径

我们去看一下PHP是通过什么接收的

Vim /usr/local/php/etc/php-fpm.conf

有这么一行

<value name="listen_address">127.0.0.1:9000</value>

可以看出php也是通过本地的9000端口来接收数据的,

至此,安装完成,下面测试

首先测试一下刚才修改Nginx的配置文件有没有问题

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

出现

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

说明配置文件写的没问题,然后查看Nginx的主进程号是多少

通过ps -aux | grep nginx可以看出来进程号是10504

然后我们通过kill –HUP 10504来重启Nginx

接下来重启php

/usr/local/php/sbin/php-fpm stop

/usr/local/php/sbin/php-fpm start

最后编辑一个php文件来测试

Vim /var/www/html/index.php

<?php

       Phpinfo();

?>

保存之后访问http://localhost/index.php

出现php的信息页面,测试成功!