安装 nginx1.0.12,php5.2.17,mysql5.5.28构建LNMP环境.........


1.使用yum安装或升级一些所需的程序库:

yum -y install gcc gcc-c++ autoconf glibc glibc-devel ncurses ncurses-devel glib2 glib2-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel libxml2 libxml2-devel openssl openssl-devel zlib zlib-devel bzip2 bzip2-devel curl curl-devel pcre pcre-devel libtool-ltdl-devel wget automake make patch

2.下载所需要的档案,创建档案源包目录放置:

mkdir /www/lnmp        #创建lnmp安装路径
mkdir /www/src/lnmp    #源码包路径
cd /www/src/lnmp


wget http://nginx.org/download/nginx-1.0.12.tar.gz
wget ftp://ftp.mirrorservice.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download
wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
wget ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz
wget http://cn2.php.net/get/php-5.2.17.tar.gz/from/this/mirror
wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz



或者将这些源码包通过FTP上传


3.安装nginx

# nginx运行用户使用www,上篇文章里已创建

cd /www/src/lnmp
tar zxvf nginx-1.0.12.tar.gz
cd nginx-1.0.12
./configure --user=www --group=www --prefix=/www/lnmp/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-http_realip_module
make && make install
cd ..


4.安装mysql

1)安装bison和cmake   
提示:MySQL 5.5 版本的安装需要这两个软件,bison我们可以用方便的yum直接安装好,cmake则用编译安装的办法。

yum -y install bison

cd /www/src/lnmp
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
tar zxvf cmake-2.8.4.tar.gz
cd cmake-2.8.4/
./configure
gmake
gmake install
cd ..



2)安装mysql 5.5.28
 
# 创建mysql运行用户和组
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

cd /www/src/lnmp
tar zxvf mysql-5.5.28.tar.gz
cd mysql-5.5.28
cmake -DCMAKE_INSTALL_PREFIX=/www/lnmp/mysql -DMYSQL_DATADIR=/www/lnmp/mysql/data -DSYSCONFDIR=/www/lnmp/mysql 
gmake
gmake install

cd /www/lnmp/mysql
chmod +w /www/lnmp/mysql
chown -R mysql:mysql /www/lnmp/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf

编辑my.cnf
[mysqld]段增加
datadir = /www/lnmp/mysql/data
wait-timeout = 30
max_connections = 512
max_connect_errors = 10000000

搜索log-bin=mysql-bin,前面加上#号,禁止生成mysql日志文件,因为日志文件如果长期不注意会把硬盘撑满,我也采取了其他方法备份数据库。

安装数据
./scripts/mysql_install_db --user=mysql

添加系统启动
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 755 /etc/rc.d/init.d/mysql
chkconfig --add mysql
chkconfig --level 3 mysql on



5.编译php:
首先编译几个扩展库:
1) libiconv 支持字符编码转换

cd /www/src/lnmp
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/www/lnmp
make
make install
cd ..

2) libmcrypt, mcrypt 加密算法库
安装加密算法库,下面mcrypt库会依赖此库

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
 make
make install
/sbin/ldconfig
cd ..

安装mhash哈希函数库,下面mcrypt库会依赖此库

tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
cd ..

建立符号链接到/usr/lib,否则编译mcrypt时会出现上述两个依赖库not found的错误

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/lib64/libjpeg.so /usr/lib/
ln -s /usr/lib64/libpng.so /usr/lib/
ln -s /www/lnmp/lib/libiconv.so /usr/lib/libiconv.so
ln -s /www/lnmp/lib/libiconv.so.2 /usr/lib/libiconv.so.2

tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
/sbin/ldconfig
./configure
make
make install
cd ..



3) 然后给php打上补丁,参考http://php-fpm.org/wiki/Documentation说明,给php5.2加上php-fpm补丁,开始编译php:

tar zxvf php-5.2.17.tar.gz
cd php-5.2.17
cp ../php-5.2.17-fpm-0.5.14.diff.gz .
gunzip php-5.2.17-fpm-0.5.14.diff.gz
patch -p1 < php-5.2.17-fpm-0.5.14.diff

./configure --prefix=/www/lnmp/php --with-config-file-path=/www/lnmp/php/etc --with-mysql=/www/lnmp/mysql --with-mysqli=/www/lnmp/mysql/bin/mysql_config --with-iconv-dir=/www/lnmp --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --with-bz2 --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-json --without-pear --disable-debug

make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /www/lnmp/php/etc/php.ini
cd ..


配置开机自动启动Nginx + PHP
vi /etc/rc.local

在末尾增加以下内容:

/www/lnmp/php/sbin/php-fpm start
/www/lnmp/nginx/sbin/nginx