您的位置:首页 > 运维架构 > Nginx

Centos 5.5 Nginx+php+mysql成功安装案例

2010-12-16 15:53 696 查看
其实在Centos 5.5中安装nginx+php+mysql是非常容易的。只需yum安装环境包和nginx、编译安装php、配置php-fpm文件和nginx.conf文件即可。具体步骤如下
一、 安装环境包
1、首先使用yum命令安装、升级所需的程序库。
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-server krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
2、yum安装mysql
先检查mysql是否安装:
rpm -qa | grep mysql
如果没有安装齐全执行下列yum
yum install mysql-bench mysql-test mysql-devel mysql-server mysql
3、yum安装prce
先检查prce是否安装:
rpm -qa | grep prce
如果没有安装执行下列yum
Yum install prce
二、 安装yum安装nginx
1、安装nginx的最新稳定版yum源
Nginx最新版yum源在EPEL RPM包中,wget下载安装即可
cd /root
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm –ivh epel-release-5-4.noarch.rpm
2、安装nginx
Yum install nginx
3、启动测试nginx
Service nginx restart
Nginx启动后有两个进程,master为主进程,worker为工作进程,如下

在启动完NGINX后,我们可以在浏览器中输入http://localhost查看,如下图

三、 编译安装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和PHP-FPM下载到同一目录下,此次用的为php-5.2.14.tar.gz和php-5.2.14-fpm-0.5.14.diff.gz,下载到了同一目录下
#tar xvf php-5.2.14.tar.gz
#gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
//将php-5.2.14-fpm-0.5.14.diff.gz以补丁形式加到php-5.2.14里面
#cd php-5.2.14
./configure --prefix=/usr/local/php --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-mysql --enable-fastcgi --enable-fpm
注:Nginx+PHP整合,在安装时必须启用–enable-fastcgi和 –enable-fpm,这两个选项是做什么的上面已经描述。执行完后系统会提示–enable-fastcgi是一个未知选项,我们不必理会

#make && make install
#cp php.ini-dist /usr/local/php/etc/php.ini
下面我们就来启动PHP-FPM
#/usr/local/php/sbin/php-fpm start

在启动PHP-FPM时会报上面这个错误,原因是PHP-FPM自己不知道以那个用户和组运行PHP,所以我们要修改一个文件,把文件中的注释去掉即可(打开文件把红色部分删除),然后PHP-FPM会以nobody用户和组去运行PHP。
#vi /usr/local/php/etc/php-fpm.conf

#/usr/local/php/sbin/php-fpm start
#ps -aux | grep php

#echo “/usr/local/php/sbin/php-fpm start” >>/etc/rc.local
四、 整合Nginx与PHP
Nginx自己并不处理动态网页的请求,而且Nginx将得到的动态请求转交给PHP,下面我们打开Nginx的配置文件看一下
#vi /etc/nginx/nginx.conf //标的部分是我们后面要修改的

看上图,Nginx已经知道怎么把得到的请求传达给PHP,Nginx在得到*.php请求时,会把请求通过9000端口传给PHP。下面我们把这些注释给去掉即可,如下图

注:上面的/usr/share/nginx/html 是我们PHP网站放置的路径
那么只有Nginx自己知道咋找PHP了还不行,还需要PHP知道咋找Nginx,PS:你见过大街上的JJMM约会时有不是相互认识对方,或者是不知道用啥方法和对方接头的?这点我们不需要担心,PHP-FPM已经在配置文件中定义了从哪接受PHP请求,我们可以打开配置文件看一下
#vi /usr/local/php/etc/php-fpm.conf
如上图所示,我们在前面已经看到过Nginx是通过本机的9000端口将PHP请求转发给PHP的,而上图我们可以看到PHP自己是从本机的9000端口侦听数据 ,Nginx与PHP通过本机的9000端口完成了数据请求。

五、测试
我们在nginx的配置文件里面已经定义了PHP网站的存放路径,默认路径为/usr/share/nginx/html下面我们在这个目录下新建一个PHP页面测试网页,文件名为index.php,内容如下vim /usr/share/nginx/index.php
<? Phpinfo(); ?>
重启PHP与nginx后(可以用杀死进程的方式关闭,然后在启动)我们在浏览器中输入http://localhost/index.php,出现php安装信息简介算成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: