首先了解一下LNMP这四个字母的意思:可以把四个字母分开来看:L:linux的操作系统;N:Nginx网站服务;M:mysql数据库;P:php解析环境。
本次主要能学会Nginx网站服务的基本构建;
学会构建Nginx主机;(这个和apache的网站服务的虚拟web主机类似,本次不做过多讲解)
学会部署LNMP网站服务平台
今天我准备了天空网络电影系统。所以简单的把这个点播系统部署上(http://www.skyuc.com/)
一:Nginx服务基础
Nginx的优点:(1)稳定性;(2)系统资源消耗低;(3)并发连接的高处理能力
1.安装及运行控制
编译安装Nginx
Nginx的配置及运行需要pcre,zlib等软件包的支持,一遍提供相应的库和头文件,能确保Nginx的安装顺利完成。所以需要安装yum仓库,方便安装依赖包。
创建运行用户和组
默认以nodody身份运行。建议为其建立专门的用户,能准确的控制起访问权限,增加灵活性,降低安全风险。这是Nginx网站服务的单独运行用户,不需要登录系统。
useradd -M -s /sbin/nologin nginx
编译安装Nginx
--perfix //指定Nginx的安装路径
--user //用于指定运行的用户
--group //用户指定运行的组
--with-http_stub_module //启动模块以支持状态统计
为了是Nginx服务器的运行方便,可以为主程序nginx创建链接文件,以便管理员直接执行“nginx”命令就可以调用Nginx的主程序。
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
2.Nginx的运行控制
检查配置文件
与apache的主程序httpd类似,Nginx的主程序也提供了“-t”选项来对配置文件进行检查,以便找出不当或错误的配置。配置文件Nginx.conf默认位于安装目录下的conf/子目录下。若要检查其他位置的配置文件,可使用“-c”选项来指定路径
启动.停止Nginx
直接运行Nginx即可启动Nginx服务器,这种方式是使用默认的配置文件,若要该用其他配置文件,需添加“-c配置文件路径”选项来指定路径。
通过检查Nginx程序的监听状态,或者在浏览器中访问此web服务,可以确认Nginx服务是否正常运行
netstat -anpt | grep nginx
主程Nginx支持标准的进程信号,通过kill或killall命令发送HUP信号表示重新加载配置,OUT信号表示退出进程,KILL信号表示杀死进程。
Nginx进程运行时,PID号默认存放在log/目录下的Nginx.pid文件中
3.配置文件nginx.conf
Nginx服务器的主配置文件/usr/local/nginx/conf/nginx.conf中,配置的语句格式为“关键字 值;”
全局配置
由各种配置语句组成,不使用特定的界定标记,全局配置部分包括Nginx服务的运行用户;工作进程数,错误日志,PID存放位置
#user nobody; //运行用户
woker_processes 1; //工作进程数量
#error_log logs/error.log; //错误日志文件的位置
#pid logs/nginx.pid; //PID文件位置
1/0事件配置
使用“events{}”界定标记,用来指定Nginx进程的1/0响应模型,每个进程的连接数等设置。
若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3万多个,具体还是要看服务器的硬件,网络带宽等因素
HTTP配置
使用“http{}”界定标记,包括访问日志,HTTP端口,网页目录,默认字符集,连接保持以及后续讲解的虚拟web主机,php解析等
二:LNMP架构及应用部署
众所周知,LAMP平台是目前应用最为广泛的网站服务器架构,其中的“A”对应这web服务软件Apache HTTP Server。随着Nginx在企业中的使用呈上升趋势,相信不久的将来LNMP架构会成为这个行业的主流,因此也受更多的Linux工程师所青昧。
1.构建LNMP平台
安装Mysql数据库
为了与Nginx,php环境保持一致,仍选择采用源代码编译的方式安装Mysql组件
yum -y install ncurses-devel(需要安装yum仓库,这是一个很多依赖包的软件,以便支持mysql数据库)
tar zxvf cmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure && gmake && gmake install(编译安装Mysql时需要用这个软件来编译,所以需要把这个软件装上)
tar zxvf mysql-5.5.22.tar.gz
cd mysql-5.5.22
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 --DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install
安装完毕后还没有完事,还需要优化数据库,初始化数据库,启动mysql服务
2.安装php解析环境
较新版本的php已经自带FPM(进程管理器)模块,用来对php解析实例进行管理,优化解析效率。需要添加“--enable-fpm”以启用此模块
编译安装php
yum -y install gd libxm12-devel libjped-devel libpng-devel
tar zxvf php-5.3.28.tar.gz
cd php-5.3.28
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-mbstring --enable-fpm --with-fpm --with-jpeg-dir=/usr/lib && make && make install
配置Nginx支持PHP环境
让Nginx能解析PHP网页,两种方法可以选择。其一:充当中介,将访问PHP页面的web请求转交给其他服务器去处理,其二:通过使用PHP的FPM模块来调用本机的PHP环境
启用php-fpm进程
参考php-fpm.conf配置文件,并修改其中的PID文件,运行用户,服务数等相关设置。然后启动php-fpm程序即可(默认监听本机的9000端口号)
php-fpm.conf文件中,pid配置行指出了PID信息的存放位置,对应的实际路径/usr/local/php5/var/php-rpm.pid.
配置Nginx至此PHP解析
无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php=fpm进程进行解析,都需要在“server{}”配置段中添加location设置,以便指定当访问.php网页是采取何种操作。
对于第一种方法(转交给其他web服务器处理),使用的配置语句如下
server {
......
location ~ \.php${
proxy_pass http://ip:80;
}
}
对于第二种方法(调用本机的php-fpm进程),使用的配置如下:
server {
......
location ~ \.php$ {
root /var/www/tanhong;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php
include fastcgi.conf;
}
}
三。在LNMP平台中部署web应用
1.下载并部署程序代码
天空网络电影系统是一套PHP视频点播系统,支持各种p2p流媒体软件,适合电影门户站,多媒体中心,网吧,酒店,教育等行业使用,官方网站为(http://www.skync.com)
将下载的程序文件解压,找到其中的wwwroot文件夹并将其放置到LNMP服务器的网站默认根目录(一般不会根据实际情况,可能网站的目录会放置在一个隐秘的位置)
yum -y install unzip
unzip SKYNC.v3.4.2.SOURCE.zip
cd SKYNC.v3.4.2.SOUTCE
mv wwwroot /usr/local/nginx/html/skync
cd /usr/local/nginx/html/skync
chown -R php:php admincp/ data/ templates/ upload
2.创建数据库
为了降低web应用程序对数据库的风险,建议设置专用的数据库及授权用户,而不是直接使用数据库的默认root用户
mysql -u root -p //验证root用户的密码
mysql> CREATE DATABASE skyncdb; //创建数据库
mysql>GRANT all ON skyncdb.* TO RUNSKYNC@localhost IDENTIFIED BY 'sky@uc123'
本文转自 宏强 51CTO博客,原文链接:http://blog.51cto.com/tanhong/1881223