您的位置:首页 > 其它

lnmp环境的源码搭建

2012-09-01 15:36 357 查看
一.lnmp

1.简介

LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQLphpMyAdmineAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntufedoragentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

2.特点

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。

Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。

3.优点

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

作为负载均衡服务器:Nginx 既可以在内部直接支持 RailsPHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

二lnmp源码架构案例

1.案例简介

①.案例原理

在linux平台中将nginx与mysql,php组合到一块。

②.案例环境

vmware 8.0.0 虚拟机模拟软件。redhat 5.4 操作系统。

一块网卡ip地址为192.168.10.244/24

使用host only方式连接。

修改物理机地址解析文件“hosts” 如下图:





此实验中仅使用“192.168.10.244 www.abc.com ” 即可

③.案例目的

搭建lnmp环境并可以正常提供简单的web服务。

④.实验所需的安装包

nginx-1.0.11.tar.gz //nginx源码包

libevent-2.0.16-stable.tar.gz //nginx中的事件相关包升级

mysql-5.5.15-linux2.6-i686.tar.gz//mysql的绿色软件包

php-5.3.7.tar.bz2 //php的源码包

lighttpd-1.4.20.tar.gz //与 php测试相关的源码包

2.mysql的配置

此案例中用的是绿色软件,可以直接使用不用编译安装

①.下载并进行安装前的准备工作





②.解压到“/usr/local/”目录下

执行“ln -s /usr/local/mysql-5.5.15-linux2.6-i686 /user/local/mysql”

③.向系统中加载调用的模块

在“/etc/ld.so.conf.d/”目下创建文件“mysql.conf”内容如下:

“/usr/local/mysql/lib”





④.创建快捷方式

ln –s /usr/local/mysql/include /usr/local/include/mysql_include

使得系统能够找到mysql的头文件。

⑤.创建mysql账号及组及相关配置

[root@donghao244 ~]# groupadd mysql // 创建mysql用户

[root@donghao244 ~]# useradd -r -g mysql mysql //增加mysql用户及组

[root@donghao244 ~]# cd /usr/local //切换到该目录

[root@donghao244 local]# ls

bin etc games include lib libexec sbin share src

[root@donghao244 local]# ln -s /usr/local/src/mysql-5.5.15-linux2.6-i686/ mysql

//新建连接,方便调用

[root@donghao244 local]# cd mysql/

[root@donghao244 mysql]# chown -R mysql . //修改当前的所有文件及目录的所有者为mysql

[root@donghao244 mysql]# chgrp -R mysql . //修改当前的所有文件及目录的所属组为mysql





⑥.使用mysql用户身份初始化数据库

[root@donghao244 mysql]# scripts/mysql_install_db --user=mysql

[root@donghao244 mysql]# chown -R root . //修改所有当前目录的所有文件及目录的所有者为root

[root@donghao244 mysql]# chown -R mysql data //修改所有当前目录的data目录的所有者为mysql

⑦.拷贝系统配置文件及将mysql加入系统控制服务中

[root@donghao244 mysql]# cp support-files/my-medium.cnf /etc/my.cnf

//新建my.cnf文件

[root@donghao244 mysql]# bin/mysqld_safe --user=mysql &

//以mysql的身份运行mysql数据库

[1] 23773

[root@donghao244 mysql# 120804 15:39:24 mysqld_safe Logging to '/usr/local/mysql/data/donghao244.cj.com.err'.

120804 15:39:24 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@donghao244 mysql]# netstat -tupln |grep 3306

tcp 0 0 :::3306 :::* LI

[root@donghao244 mysql]# cp support-files/mysql.server /etc/init.d/mysqld //可以使系统直接识别的控制脚本

[root@donghao244 mysql]# service mysqld stop //测试系统系统命令关闭mysql

Shutting down MySQL..120804 19:22:21 mysqld_safe mysqld from pid file /usr/local/mysql/data/donghao244.cj.com.pid ended

[ OK ]

[1]+ Done bin/mysqld_safe --user=mysql

[root@donghao244 mysql]# netstat -tupln |grep 3306 //服务 已关闭

[root@donghao244 mysql]# service mysqld start //测试开启服务

Starting MySQL... [ OK ]

[root@donghao244 mysql]# netstat -tupln |grep 3306 //查看端口及服务状态

tcp 0 0 :::3306 :::* LISTEN 4456/mysqld

[root@donghao244 mysql]# chkconfig --list |grep mysqld //查看加入控制列表

[root@donghao244 mysql]# chkconfig --add mysqld //将mysql服务加到chkconfig 控制中

[root@donghao244 mysql]# chkconfig --list |grep mysqld //查看加入控制列表

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@donghao244 mysql]# ll /etc/rc.d/rc3.d/ |grep mysqld //查看mysql在3级别的情况

lrwxrwxrwx 1 root root 16 Aug 4 19:24 S64mysqld -> ../init.d/mysqld

⑧.系统中加入识别的模块

[root@donghao244 mysql]# cat /etc/ld.so.conf.d/mysql.conf //向系统加载mysql的模块调用

/usr/local/mysql/lib

[root@donghao244 mysql]# ln -s /usr/local/mysql/include /usr/include/mysql 创建头文件连接

[root@donghao244 mysql]# ll /usr/include/mysql //查看系统默认路径下的头文件的情况

lrwxrwxrwx 1 root root 24 Aug 4 19:32 /usr/include/mysql -> /usr/local/mysql/include

[root@donghao244 mysql]# ldconfig -v |grep mys //查看与mysql相关的系统调用

/usr/local/mysql/lib:

libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

⑨.为mysql指定账号设置密码

/usr/local/mysql/bin/mysqladmin -u root -p password 123

3.php的编译安装

①.解压到指定文件夹下

tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/

cd /usr/local/src/php-5.3.7

②.检查编译环境,编译并安装

./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql --enable-fastcgi

make //编译

make install //安装





安装完成后的安装信息





4.源码升级ldevent(用于事件触发检测)

①.加压压缩文件

tar -zxvf libevent-2.0.16-stable.tar.gz

./configure //检测编译环境

make //编译

make install //安装

②.向系统加入加载模块的路径文件

vim /etc/ld.so.conf.d/ldevent.conf 内容如下:

“/ usr/local/lib”

ldconfig –v //查看模块





5.编译安装nginx

①.拷贝解压缩

tar -zxvf nginx-1.0.11.tar.gz

groupadd –r nginx

useradd -r -g nginx -s /sbin/nologin -M nginx

②.编译安装

./configure \ //检测编译环境

--prefix=/usr \ //指定安装的主目录

--sbin-path=/usr/sbin/nginx \ //主程序的安装路径

--conf-path=/etc/nginx/nginx.conf \ //配置文件的存放位置及名称

--error-log-path=/var/log/ngix/error.log \ //系统出错日志

--http-log-path=/var/log/ngix/access.log \ //服务的访问日志

--pid-path=/var/run/nginx/nginx.pid \ //nginx的运行pid文件及路径

--lock-path=/var/lock/nginx.lock \ //服务运行的锁文件

--user=nginx \ //默认的服务运行身份

--group=nginx \ //默认的服务运行所属组

--with-http_ssl_module \ //加入ssl模块

--with-http_flv_module \ //支持flv 流媒体模块

--with-http_mp4_module \ //支持MP4 模块

--with-http_stub_status_module \ //状态检测模块

--with-http_gzip_static_module\ //启用模块,需要 zlib 模块

--http-client-body-temp-path=/var/tmp/nginx/client/ \ //每个客户端口的临时文件

--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ //代理的缓存

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ //临时文件

--with-pcre //添加url 从定性

make //编译

make install //安装

③.修改配置文件,测试调用php与mysql

vim /etc/nginx/nginx.conf

37 server_name ww.abc.com;

45 index index.html index.htm index.php;

//支持默认“index.php” 主页文件

65 location ~ \.php$ {

66 root html;

67 fastcgi_pass 127.0.0.1:9000;

68 fastcgi_index index.php;

69 fastcgi_param SCRIPT_FILENAME /usr/html$fastcgi_script_name;

70 include fastcgi_params;

71 }

④.修改默认主目录

vim /usr/html/index.html

1 <?php

2 $quest=mysql_connect('127.0.0.1','root','123');

3 if ($quest)

4 echo "ok,ehhe,let's go...";

5 else

6 echo "sorry!!!";

7 phpinfo();

8 ?>

⑤.修改默认主页为php格式

mv /usr/html/index.html /usr/html/index.php

6.编译及安装lighttpd

①.拆包,编译并安装lighttpd

cd local/src/lighttpd-1.4.20

./configure --prefix=/usr/local/lighttpd //测试编译环境

make //编译

make install //安装

②.使用spawn-fcgi

拷贝spawn-fcgi 到nginx中

cp /usr/local/lighttpd/bin/spawn-fcgi /usr/local/nginx/sbin/

删除 /usr/local/lighttpd 目录

rm -rf /usr/local/lighttpd

启动 cgi

/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 8 -u nginx -f /usr/local/php5/bin/php-cgi

③.测试nginx的配置文件

[root@donghao244 ~]# /usr/sbin/nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

浏览器测试





关闭mysql测试!!!

service mysqld stop





开启mysql测试!!!

service mysqld start

.png]



此时的lnmp环境已经简单搭建完成

如果搭建简单的论坛和lamp环境下相同。

配置文件为“/etc/nginx/nginx.conf”。主目录为“/usr/html/”。

可以参考/article/4548529.html搭建基于nginx的基于主机名的虚拟主机。

nginx支持的虚拟主机为基于ip,基于端口,基与主机头,物理目录,别名等。方式搭建个人站点。

嗯,韩宇说的对呀!!!
本文出自 “交流群“143420878”” 博客,请务必保留此出处http://donghao123.blog.51cto.com/4879169/979429
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: