您的位置:首页 > 其它

源码搭建LNMP平台

2013-06-30 21:20 393 查看
LNMP,即Linux+Nginx+Mysql+PHP,相对于经典的LAMP架构,它的特点是能更好的应付高并发的访问量,达到更高的效率。Nginx本身是专为性能优化而开发的,在实现上非常注重效率,它采用epoll和kqueue网络I/O模型,相比Apache的select模型,可以支持更多的并发连接,而只占用很低的系统资源。目前,Nginx在电子商务等高访问量的业务中都有很多的应用。
下面介绍一下用源码搭建LNMP平台的方法。

一. 安装Nginx
1. 安装Nginx之前需要先安装相应的组件.
(1).安装pcre库,pcre是一个Perl库,包括 perl 兼容的正规表达库。
wget http://webserver.googlecode.com/files/pcre-8.10.tar.gz
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10
./configure
make
make install ‍
(2).安装zlib库,zlib是提供数据压缩用的函式库。wget http://ncu.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

(3).安装 openssl库
wget http://down1.chinaunix.net/distfiles/openssl-1.0.1.tar.gz
tar zxvf openssl-1.0.1.tar.gz
cd openssl-1.0.1e
./config
make
make install

2. Nginx安装
wget http://nginx.org/download/nginx-1.4.1.tar.gz
tar zxvf nginx-1.4.1.tar.gz
cd nginx-1.4.1
./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module
make
make install
ln -s /usr/local/nginx-1.4.1 /usr/local/nginx

二.安装Mysql

1.添加帐号
useradd -M -s /sbin/nologin mysql

2.MySQL从5.5 开始使用cmake编绎,需安装cmake,ncurses-devel
yum install cmake ncurses-devel

3. Mysql安装配置
wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.30.tar.gz
tar zxvf mysql-5.5.30.tar.gz
‍cd mysql-5.5.30

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/etc \
-DWITH_DEBUG=0
注:编译的详细参数说明可参照此文档:http://www.blogjava.net/kelly859/archive/2012/09/04/387005.html
make
make install


copy源码包中的配置样例文件到etc目录下面,一般用my-medium.cnf即可。
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
启动mysql
/etc/init.d/mysqld start
修改PATH变量,增加mysql路径
echo "PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
source /etc/profile

设置root密码
mysqladmin -u root password "123456"
登录mysql
mysql -u root -p
查看mysql的库,可以看到已经生成默认的数据库。
show databases;






三.安装php1.安装php前,需安装相关的库。
(1).安装libxml2,libxml是一个用来解析XML文档的函数库。
wget ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz
tar zxvf libxml2-2.9.1.tar.gz
cd libxml2-2.9.1
./configure
make
make install

(2).安装libmcrypt,libmcrypt是加密算法扩展库。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法Encrypt 加密。
wget http://www.51osos.com/uploads/soft/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install

(3).安装libpng,libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作。
wget http://down1.chinaunix.net/distfiles/libpng-1.5.8.tar.xz
xz -d libpng-1.5.8.tar.xz
tar xvf libpng-1.5.8.tar
cd libpng-1.5.8
./configure
make
make install

(4).安装jpeg库,jpeg专门用于处理jpeg图片的库
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
tar zxvf jpegsrc.v9.tar.gz
./configure --enable-shared --enable-static ;分别对动态链接库和静态链接库的支持
make
make install

(5).安装FreeType,FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。

wget http://ftp.twaren.net/Unix/NonGNU//freetype/freetype-2.5.0.1.tar.gz
tar -zxvf freetype-2.5.0.1.tar.gz
cd freetype-2.5.0.1
./configure
make
make install

(6).安装Autoconf,Autoconf是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的shell脚本的工具。
wget ftp://alpha.gnu.org/pub/gnu/autoconf/autoconf-2.68b.tar.gz
tar zxvf autoconf-2.68b.tar.gz
cd autoconf-2.68b
./configure
make
make install

(7).安装gd库,gd是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
tar zxvf GD-2.0.35.tar.gz
cd GD-2.0.35
./configure --with-zlib --with-jpeg --with-png --with-freetype=/usr
make
make install

2.安装配置php
wget http://cn2.php.net/distributions/php-5.4.15.tar.gz
tar zxvf php-5.4.15.tar.gz
cd php-5.4.15
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gd --with-mcrypt=/usr --enable-soap --enable-mbstring -enable-sockets --enable-fastcgi --enable-fpm

make
make test
maek install
cp php.ini-production /usr/local/php5/etc/php.ini
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

启动php-fpm
/usr/local/php5/sbin/php-fpm

修改nginx配置文件,加入对动态页面转发的支持
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
修改完成后,运行sbin/nginx –t 验证nginx配置文件是否正常。





启动nginx
/usr/local/nginx/sbin/nginx
四.测试
1.测试 nginx与php的协同工作情况
在/usr/local/nginx/html 目录下创建一下phpinfo.php文件,内容如下:
<?php
phpinfo();
?>
打开浏览器访问http://域名/phpinfo.php,如果正常的话将显示php的信息,如下图:





2.测试mysql连接是否正常
在/usr/local/nginx/html 目录下创建一下testdb.php文件,内容如下:
<?php
$link=mysql_connect("localhost","root","123456");
if(!$link) echo "Fail !";
else echo "Success !";
mysql_close();
?>

打开http://域名/testdb.php,如果显示Sucdess!,则表示与数据库的连接正常。

在正式的生产环境中往往还需要根据实际情况对nginx和php做优化,限于篇幅原因,这里就不介绍了。到此,LNMP平台搭建完成。

本文出自 “Alex的IT运维世界” 博客,请务必保留此出处http://sr2009.blog.51cto.com/742434/1236087
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: