环境: 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测试
表示安装成功!
3.安装PHP
需要的库文件
Libpng jpeg pegsrc.v7 freetype fontconfig gd
这些库文件包括对应的devel开发库也是需要装的,因为我装系统的时候装了开发库,所以这些库文件都已经装好了,下面我们开始装PHP
这个地方是最重要的地方,因为默认情况下Nginx和PHP他俩之间是一点感觉没有的。在之前,很多朋友都搭建过Apache+PHP,Apache+PHP编译后生成的是模块文件,而Nginx+PHP需要PHP生成可执行文件才可以,所以要利用fastcgi技术来实现N ginx与PHP的整合,这个只要我们安装是启用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.整合Nginx和php
Nginx自己是不处理动态网页的请求,它将得到的动态请求都交给php来处理,现在Nginx和php其实还是没有关联的,这时就需要修改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的信息页面,测试成功!