centOS5.6 下的nginx+mysql+php+php-fpm安装与配置

来源:互联网 发布:js验证 是否阅读协议 编辑:程序博客网 时间:2024/05/09 00:47

nginx安装:我是直接按照官网上的方法安装
一、访问nginx官网:http://nginx.com/ (目前稳定版是nginx-1.2.2 )。进入下载页面(http://nginx.org/en/download.html),这个页面介绍的怎么安装nginx。对于centos的用户,nginx官方给出了rpm包源,下载后用yum可安装,也可以直接下载源码安装。在此我是用的是rpm源的安装方法。
二、rpm -ivh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
命令来下载rpm包
三、yum install nginx

四、设置开机自启,启动nginx,关闭nginx服务

>chkconfig nginx on

>/etc/init.d/nginx stop

>/etc/init.d/nginx start

五、nginx的配置文件目录都在/etc/nginx下(包括fastcgi的配置,下面要用到)。

六、测试:直接在浏览器中输入http://192.168.1.220(你机器的ip地址)访问

如果出现,那么恭喜你,nginx安装成功!

Welcome to nginx!



mysql安装:确保先于php安装,因为这个才能保证php正确加载mysql扩展
一、yum install mysql mysql-server php-mysql
二、查看mysql安装情况。
>mysql -u root
如果能进入,那么mysql安装成功。
设置root密码
>mysql -u root password mypassword

(如果是源码和rmp安装,官方下载地址:http://mysql.mirrors.hoobly.com/Downloads/ 

mysql的版本众多,对于我这个beginner来说有点为难啊!)


关于mysql的安装,如果yum来安装,centos的默认源是5.0的,版本太老了。所以研究了怎么从官方获取最新rpm源来安装。

获取源:

wget http://www.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.5.25a-1.rhel5.x86_64.rpm/from/http://cdn.mysql.com/--------》mysql的服务端
wget http://www.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.5.25a-1.rhel5.x86_64.rpm/from/http://cdn.mysql.com/---------》mysql的客户端

wget http://www.mysql.com/get/Downloads/MySQL-5.5/MySQL-devel-5.5.25a-1.rhel5.x86_64.rpm/from/http://cdn.mysql.com/---------》mysql的开发包,要支持php,必须安装此包,不然会出现找不到mysql.h,客户端没有绑定错误

rpm -ivh MySQL-server-5.5.25a-1.rhel5.x86_64.rpm MySQL-client-5.5.25a-1.rhel5.x86_64.rpm MySQL-devel-5.5.25a-1.rhel5.x86_64.rpm

 yum install MySQL-server-5.5.25a-1.rhel5.x86_64.rpm MySQL-client-5.5.25a-1.rhel5.x86_64.rpm MySQL-devel-5.5.25a-1.rhel5.x86_64.rpm

安装php和php-fpm

一、php的版本选择以前的稳定版5.3.14。由于php5.3.x直接绑定php-fpm,所以php-fpm是没有php5.3.x的包。

二、通过源码安装php5.3.14。

wget http://cn.php.net/get/php-5.3.14.tar.bz2/from/this/mirror

tar -xvjf php-5.3.14

cd php-5.3.14

下载源码

三、安装(php源码安装的话,其参数会非常多。具体看你加载那些扩展)

> ./configure -enable-fpm --with-mysql=/usr/bin/mysql --with-curl --with-zlib_dir=/usr/lib64 --with-gd --with-mysqli

( -enable-fpm 开启php-fpm,cgi模式

--with-mysql=/usr/bin/mysql   /usr/bin/mysql是你的mysql客户端的地址

--with-mysqli 加载mysqli扩展

--with-curl加载curl扩展

--with-zlib_dir=/usr/lib64这个暂时不知道什么意思,但是不加上会出现:configure error:Try adding --with-zlib_dir=<DIR>……错误

--with-gd加载gd扩展

--with-mcrypt

--with-mhash

--with-mbstring

>make

>make install

四、配置nginx来支持php

找到/etc/nginx/conf.d/default.conf,打开编辑它

>vi /etc/nginx/conf.d/default.conf

去掉下面部分的注释用于支持 php 脚本:

    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;
    }

fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name; /usr/share/nginx/html指你的网站目录

include        /etc/nginx/fastcgi_params; 要确保找对文件地址


重启nginx服务

>/etc/init.d/nginx stop

>/etc/init.d/nginx start

启动php-fpm

>/usr/local/sbin/php-fpm

五、测试php文件

/usr/share/nginx/html目录下创建phpinfo.php文件

>vi phpinfo.php

其内容:

<?php

phpinfo();

六、测试

然后在浏览器中输入http://(你机器的ip地址)/phpinfo.php,如果出一个php的特色标志页面,就说明安装成功了

七、其他问题

error: mysql configure failed.问题

说实话,加载mysql扩展是废了我一番功夫。因为每次编译的时候都会error: mysql configure failed.这个问题。我看了一个config.log文件,但由于本人能力有限,没看出什么名堂。所以就借助Google找答案。结构是在64位的centos的mysql官方rpm都会有这个问题。(查看你的系统的版本:使用uname -a,如果出现   Linux  2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux 就说明是64位。而i386是32位的

解决方法:使用下面命令后,再重新编译php

ln -s /usr/lib64/mysql/ /usr/local/lib/mysql
ln -s /usr/include/mysql/ /usr/local/include/mysql

八、php-fpm重启

php5.3内置了fpm,那么fpm进程就只能用信号控制

>locate php-fpm.pid

cat /usr/local/php/var/run/php-fpm.pid

 >kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

>ps aux|grep php-fpm

九、安装phpmyadmin

到phpmyadmin官网上去下载最新的包(http://www.phpmyadmin.net/home_page/downloads.php)

cd /usr/share/nginx/html----->你的nginx网站目录

wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.2/phpMyAdmin-3.5.2-all-languages.tar.bz2

tar -xvjf phpMyAdmin-3.5.2-all-languages.tar.bz2

cp phpMyAdmin-3.5.2-all-languages phpmyadmin

cp config.sample.inc.php config.inc.php----> 一般这部不需要

十、加载php扩展

例如加载zip扩展

cd php-5.3.14(php的源码目录)

cd ext/zip(扩展对应的源码目录)

/usr/local/bin/phpize(用phpize扩展挂载工具)

 ./configure --with-php-config=/usr/local/bin/php-config 

make

make install

如果按装成功,会返回此扩展的安装目录(如/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

vi /etc/php.ini

在php.ini文件中加入

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/zip.so

重启php-fpm

(期间我安装扩展又出现来问题,冥冥修改了php.ini文件(此处的php.ini的路径是/etc/php.ini)但phpinfo()输出就是没有加载上。所有的编译和安装都没有报错。我也仔细查看了zip.so的路径也是正确。思索了一会突然看见phpinfo()输出信息中关于php.ini的描述是这样的

Configuration File (php.ini) Path/usr/local/libLoaded Configuration File(none)居然路径是在/usr/local/lib下,进去却没发现php.ini文件。原来我在源码安装时没有配置--prefix,所以php.ini的默认路径是/usr/local/lib。这时需要把/etc/php.ini考到/usr/local/lib下。

此外/etc/php.ini中的extension_dir的路径是/usr/lib64/php/modules

extension_dir=/usr/lib64/php/modules

modules所以最好把zip.so拷贝到/usr/lib64/php/modules下,然后在php.ini中加一句

extension=zip.so

然后重启php-fpm,就可以看到加载的扩展。

十一、安装过程中遇到的问题

1.安装php中的mcrypt出问题:mcrypt.h not found. Please reinstall libmcrypt

解决方法:

wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz 
 tar -zxvf libmcrypt-2.5.7.tar.gz ----->ps: 解压

 cd libmcrypt-2.5.7 
 mkdir -p /usr/local/libmcrytp 
 ./configure prefix=/usr/local/
 make
 make install 

假设安装在/usr/local/,在configure PHP的时候加上--with-mcrypt=/usr/local/lib

2.

参看资料:

1.php-fpm重启:http://blog.sina.com.cn/s/blog_6fb90ed30100u06p.html

2.ubuntu和linux上安装lnmp:http://www.cslog.cn/Content/ubuntu-10-04-nginx-0-8-52-php-fpm-5-3-3-apc-mysql-i/,http://blog.csdn.net/21aspnet/article/details/6581724

3.error: mysql configure failed问题:http://blog.csdn.net/wlx3351/article/details/5938964,http://mylinux.5d6d.net/thread-856-1-1.html

4.erro:mysql configure failed问题的另一种解决方法:http://www.bitbi.biz/%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85php%E5%87%BA%E7%8E%B0configureerrormysql-configure-failed%E8%A7%A3%E5%86%B3-115/