Nginx+FastCGI(PHP)+MYSQL配置#####################################NAME:DogWin##Email&MSN:weblsfamily@gmail.com##QQ:154068936##Site:##Wife:李亮##GameName:乾坤一剑仙&仙女精灵&飞鸟的梦@武林外传|电信一神龙#####################################DogWin转载()1=i=9献给像我一样热爱LNMP&LAMP的人们nginx是个不错的HTTP服务器环境软件,功能强大,已经有很多大型网站在使用它了1.1nginx概述nginx简介Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engineX”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器.Nginx是由俄罗斯人IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半了。IgorSysoev在建立的项目时,使用基于BSD许可。在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。1.2nginx安装准备1.2.1nginx环境准备1.系统要求:Linux2.6+内核,本文中的Linux操作系统为redhatAS5.3。2.获取程序并安装RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包RedHat可以直接利用CentOS的RPM包安装。可以用rpm安装以下包,如有关联包,安装时一起安装。gccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrb5krb5-devellibidnlibidn-developensslopenssl-developenldapopenldap-develnss_ldapopenldap-clientsopenldap-servers以上包如果安装了的话,不需要再安装了。3.RPM包搜索网站://.其它准备工作如果采用半RPM安装的话,PHP的一些支持包,之前应该事先安装好,全部采用tar包安装的话,中间出现问题的可能性比较大。所以应事先安装好dg库的支持包,也可以采用tar安装。1.2.2nginx软件包准备Nginx所需要的软件包可以从下面位置获取,也可以记住名字在google中搜索。nginx-0.7.61.tar.gzphp-5.2.10.tar.gzphp-5.2.10-fpm-0.5.11.diff.gzmysql-5.1.35.tar.gzlibiconv-1.13.tar.gzlibmcrypt-2.5.8.tar.gzmcrypt-2.6.8.tar.gzmemcache-2.2.5.tgzmhash-0.9.9.9.tar.gzpcre-7.9.tar.gzeaccelerator-0.9.5.3.tar.bz2PDO_MYSQL-1.0.2.tgzImageMagick.tar.gzimagick-2.2.2.tgz1.3FastCGI安装Fastcgi可以安装到其它的电脑上,可以实现分步式处理,需要修改相关配置文件来实现,本章内容讲的是一台电脑上实现所有功能。1.3.1PHP支持环境准备编译安装PHP5.2.10所需的支持库:1.安装libiconv对文本进行编码间的转换,用它来处理中文各种编码之间的转换。#tarzxvflibiconv-1.13.tar.gz#cdlibiconv-1.13/#./configure--prefix=/usr/local#make#makeinstallcd../2.安装libmcrypt实现加密功能的库。#tarzxvflibmcrypt-2.5.8.tar.gz#cdlibmcrypt-2.5.8/#./configure#make#makeinstall#/sbin/ldconfig#注:这里不要退出去了。#cdlibltdl/#./configure--enable-ltdl-install#make#makeinstall#cd../../3.安装mhash(哈稀函数库)#tarzxvfmhash-0.9.9.9.tar.gz#cdmhash-0.9.9.9/#./configure#make#makeinstall#cd../ln-s/usr/local/lib/libmcrypt.la/usr/lib/libmcrypt.laln-s/usr/local/lib/libmcrypt.so/usr/lib/libmcrypt.soln-s/usr/local/lib/libmcrypt.so.4/usr/lib/libmcrypt.so.4ln-s/usr/local/lib/libmcrypt.so.4.4.8/usr/lib/libmcrypt.so.4.4.8ln-s/usr/local/lib/libmhash.a/usr/lib/libmhash.aln-s/usr/local/lib/libmhash.la/usr/lib/libmhash.laln-s/usr/local/lib/libmhash.so/usr/lib/libmhash.soln-s/usr/local/lib/libmhash.so.2/usr/lib/libmhash.so.2ln-s/usr/local/lib/libmhash.so.2.0.1/usr/lib/libmhash.so.2.0.14.安装mcrypt#tarzxvfmcrypt-2.6.8.tar.gz#cdmcrypt-2.6.8/#/sbin/ldconfig#./configure#make#makeinstall#cd../注:DG库所需要安装包,可以采用rpm包来安装,减少时间,由于php已经集成GD库,但前提支持包应事先安装,如zlib,png,jpeg,freetype等。如果完全想采用tar包安装的话,请参考lamp相关内容。1.3.2MySql环境准备建立mysql组,建立mysql用户并且加入到mysql组中#groupaddmysql#useraddmysql-gmysql#tarzxvfmysql-5.1.24-rc.tar.gz#cdmysql-5.1.24-rc#./configure--prefix=/usr/local/mysql--without-debug--with-extra-charsets=gbk--with-extra-charsets=all--enable-assembler--with-pthread--enable-thread-safe-client--with-mysqld-ldflags=-all-static/*不带共享库的形式编译mysqld*/--with-client-ldflags=-all-static--with-big-tables--with-readline/*要采用rpm方式安装ncurses或tar包安装*/--with-ssl/*要采用rpm方式安装openssl*/--with-embedded-server--enable-local-infile--with-plugins=innobase#make&&makeinstall#/usr/local/mysql/bin/mysql_install_db--user=mysql#以mysql身份初始化数据库#cp./support-files/mysql.server/etc/init.d/mysql#复制Mysql启动服务至系统#cp./support-files/my-medium.cnf/etc/my.cnf#chmod755/etc/init.d/mysql#cd/usr/local/mysql/#切换到cd/usr/local/mysql/目录下#chown-Rroot.#改变当前目录下的所有者为mysql用户#chown-Rmysqlvar#修改数据库目录的权限#chgrp-Rmysql.#改变当前目录下的mysql用户的文件为mysql组#/usr/local/mysql/bin/mysqld_safe--user=mysql/usr/local/mysql/bin/mysqladmin-urootpassword'admin'#设置管理员密码#/usr/local/mysql/bin/mysql-uroot-p#测试密码输入Enterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis6Serverversion:5.1.36-logSourcedistributionType'help;'or'\h'forhelp.mysql\q/*退出mysql*/#chkconfig--addmysql#添加mysqld服务到系统#chkconfigmysqlon#打开myslqd服务#servicemysqlstart#启动Mysql#/usr/local/mysql/bin/mysqladminshutdown#关闭数据库#查看mysql端口的打开情况#netstat-tunlpActiveInternetconnections(onlyservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Pnametcp000.0.0.0:33060.0.0.0:*LISTEN2936/#查看是否启动:#ps-ef|grepmysql注:在配置过程中,整体的配置思路从上往下,其中的一些功能可以用在实际的配置过程中,主要用于测试环节中。Mysql的优化部分这里没有给出,需要参考其它资料。1.3.3PHP安装支持FastCGI模式1.编译安装PHP(FastCGI模式)#tarzxvfphp-5.2.10.tar.gz#gzip-cdphp-5.2.10-fpm-0.5.11.diff.gz|patch-dphp-5.2.10-p1#cdphp-5.2.10/#./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir=/usr/local--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-gd--enable-gd-native-ttf--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-discard-path--enable-safe-mode--enable-bcmath--enable-shmop--enable-sysvse