构建LNMP(Linux、Nginx、MySQL、PHP)网站服务平台


1、Nginx简介

Nginx是一款高性能、轻量级Web服务软件,特点是稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,许多知名网站都使用Nginx提供Web服务,如新浪、网易、腾讯、51CTO、人人网等,其源于俄罗斯,市场占有率第三,Apache第一,微软的IIS第二。

2、LEMP(LNMP)网站平台

LEMP也称为LNMP平台,代表Linux下Nginx、MySQL、PHP这种网站服务器架构,同LAMP一样,LEMP也是应用越为广泛的网站服务器架构,受到许多Linux系统工程师的青睐。

 

一、编译安装Nginx

1、编译安装Nginx

①安装支持软件、创建运行用户

yum -y  install pcre-devel zlib-devel

useradd -M -s /sbin/nologin  nginx

②编译安装Nginx,启用http_ stub_status_module模块以支持状态统计

tar zxf nginx-1.0.8.tar.gz -C /usr/src/

cd /usr/src/nginx-1.0.8/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

make && make install

③调整、启动Nginx服务

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx

netstat -ntpl  | grep "80"

④安装文本模式浏览器elinks并访问web服务,按q退出

yum -y install elinks

elinks http://localhost

                    

Snip20181007_17.png

⑤编写Nginx服务脚本并添加为系统服务,方便管理

vi /etc/init.d/nginx

chmod a+x /etc/init.d/nginx

chkconfig --add nginx

chkconfig --list nginx

service nginx restart

注:elinks文本模式浏览器,速度快,但不显示图像等多媒体内容

 

二、状态统计及虚拟主机应用

1、访问状态统计

编辑Nginx服务的主配置文件,添加如下内容,以指定访问位置并打开状态统计功能

vi /usr/local/nginx/conf/nginx.conf

Snip20181007_18.png

圆角矩形标注: 访问位置为/status 打开状态统计功能 关闭此位置的日志记录 service nginx restart

在浏览器访问http://192.168.1.1/status,查看访问状态统计信息

Snip20181007_19.png

Active connections表示当前的活动连接数,server accepts handled requests表示已处理的连接信息,三个数字分别表示已处理的连接数、成功的TCP握手次数、已处理的请求数

 

2、基于域名的虚拟主机

①准备网站目录及测试文件

mkdir -p /var/www/benet

mkdir -p /var/www/accp

echo www.benet.com > /var/www/benet/index.html

echo www.accp.com > /var/www/accp/index.html

②调整主配置文件,添加如下内容

vi /usr/local/nginx/conf/nginx.conf

Snip20181007_24.png

service nginx restart

③分别输入www.benet.comwww.accp.com进行访问,验证虚拟WEB主机,如下所示

 Snip20181007_25.png

注:域名的解析可以自行搭建DNS服务,也可通过修改/etc/hosts文件实现

 

三、构建LEMP网站平台

1、安装MySQL数据库

yum -y remove mysql-server mysql

yum -y install compat-lib* termcap ncurses-devel

编译安装MySQL

useradd -M -u 27 -s /sbin/nologin mysql

tar zxf mysql-5.1.55.tar.gz -C /usr/src

cd /usr/src/mysql-5.1.55/

./configure  --prefix=/usr/local/mysql    --with-charset=utf8  --with-collation=utf8_general_ci  --with-extra-charsets=gbk,gb2312

make && make install

初始化数据库

cp support-files/my-medium.cnf /etc/my.cnf

/usr/local/mysql/bin/mysql_install_db --user=mysql

chown -R root:mysql /usr/local/mysql/

chown -R mysql /usr/local/mysql/var/

ln -s /usr/local/mysql/bin/*  /usr/local/bin/

ln -s /usr/local/mysql/lib/mysql/*  /usr/lib/

ln -s /usr/local/mysql/include/mysql/*  /usr/include/

③配置启动脚本,启动服务

cp support-files/mysql.server /etc/init.d/mysqld

chmod a+x /etc/init.d/mysqld

chkconfig --add mysqld

service mysqld start

netstat -anptu | grep mysql

mysqladmin -u root password 123

mysql -u root -p

2、安装PHP环境

yum -y remove php

yum -y install libxml2-devel libpng-devel pcre-devel

①编译安装PHP

tar zxf php-5.3.6.tar.gz -C /usr/src

cd /usr/src/php-5.3.6/

./configure --prefix=/usr/local/php5  --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-gd --with-zlib --enable-mbstring --enable-fpm

make && make install

:FPM(FastCGI Process Manager,FastCGI进程管理器用来对解析实例进行管理优化解析效率单服务器的LEMP架构通常使用这种方式配置时应启用此模块。

调整及配置

cp php.ini-development /usr/local/php5/php.ini

ln -s /usr/local/php5/bin/* /usr/local/bin/

ln -s /usr/local/php5/sbin/* /usr/local/sbin/

安装PHP加速器ZendGuardLoader提高PHP解析效率

tar zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/

cp ZendGuardLoader.so /usr/local/php5/lib/php/

vi /usr/local/php5/php.ini     -----添加如下内容

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

3、配置Nginx支持PHP环境

建立php-fpm.conf配置文件并进行修改启动php-fpm程序

cd /usr/local/php5/etc/

cp php-fpm.conf.default php-fpm.conf             

vi php-fpm.conf

pid = run/php-fpm.pid                     -----确认pid文件位置

user = nginx                              -----运行用户

group = nginx                             -----运行组

pm.start_servers = 20                     -----启动时开启的进程数

pm.min_spare_servers = 5                 -----最少空闲进程数

pm.max_spare_servers = 35                -----最多空闲进程数

/usr/local/sbin/php-fpm

netstat -anptu | grep "php-fpm"

②修改Nginx服务脚本,以便启动/停止Nginx服务时也自动启动/停止php-fpm

vi /etc/init.d/nginx

Snip20181007_20.png

③配置Nginx支持PHP解析

vi /usr/local/nginx/conf/nginx.conf

圆角矩形标注: 添加此部分内容Snip20181007_26.png

service nginx restart

4、创建PHP测试页面

①编辑测试页测试Nginx是否支持php功能

vi /var/www/benet/t.php

<?php

phpinfo();

?> 

访问测试页面,输入http://www.benet.com/t.php,如下所示表示Nginx已支持PHP

Snip20181007_21.png

②编辑测试页测试Nginx、MySQL、PHP是否协同工作

vi /var/www/benet/test.php

Snip20181007_22.png

访问测试页面,输入http://www.benet.com/test.php,如下所示则表示PHP解析及数据库连接均正常(可能需要稍等会才会正常显示)。

Snip20181007_27.png

 

四、使用LEMP平台部署“天空网络电影系统”

服务器:192.168.1.1

客户机:192.168.1.200

1、部署程序代码

tar jxf SKYUC_3.2.2_Free_For_PHP5.3.tar.bz2

mv SKYUC_3.2.2_Free_For_PHP5.3/wwwroot/ /var/www/benet/skyuc

cd /var/www/benet/skyuc/

chown -R nginx:nginx admincp/ data/ templates/ upload/

2、创建数据库和专用账户

mysql -u root -p

create database skyucdb;

grant all on skyucdb.* to runskyuc@localhost identified by '123';

3、安装Web应用

在客户端访问http://www.benet.com/skyuc/install/index.php进行安装

Snip20181007_28.png

确保系统环境、目录权限、缓存可写性等检测通过,否则安装将无法继续。

Snip20181007_29.png

配置数据库连接信息,并设置管理账号和密码

Snip20181007_30.png

转移install/目录并调整其权限,避免重复安装

mv install install.lock

chmod 600 install.locak

访问http://www.benet.com/skyuc/index.php站点,可以看到“天空网络电影系统”站点的首页

Snip20181007_31.png

访问http://www.benet.com/skyuc/admincp/index.php输入管理账号,可登陆管理后台

Snip20181007_32.png

结束!

 

补充:

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。

无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对VPS用户进行了优化。

下载站点:http://lnmp.org/

 

附:

Nginx快速入门视频课程:http://edu.51cto.com/course/14606.html


猜你喜欢

转载自blog.51cto.com/12402007/2294320