一.lnmp
1.简介
LNMP是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。可以在VPS、独立主机上轻松的安装LNMP生产环境。
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
2.特点
Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
3.优点
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 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
此时的lnmp环境已经简单搭建完成
如果搭建简单的论坛和lamp环境下相同。
配置文件为“/etc/nginx/nginx.conf”。主目录为“/usr/html/”。
可以参考http://donghao123.blog.51cto.com/4879169/979400搭建基于nginx的基于主机名的虚拟主机。
nginx支持的虚拟主机为基于ip,基于端口,基与主机头,物理目录,别名等。方式搭建个人站点。
嗯,韩宇说的对呀!!!