LNMP平台的四个组件中,每个组件都承担着一部分关键作用。经过时间年的发展,各组件的兼容性的道路不断的完善,协作能力与稳定性不断增强,可以构建出非常优秀的的WEB应用系统。各组件的主要要求如下。(以下需要的所有源码包全部在这个链接中http://pan.baidu.com/s/1eSj99bc

一:LNMP 主要分为 Linux  nginxmysql PHP

1.Linux操作系统:作为lnmp的建构基础,提供用于支撑WEB站点的操作系统,能够与其他三个组件提供更好的稳定性、兼容性(AMP组件也支持WindowsUNIX等操作系统)

2.nginx 专为性能优化而开发,其最知名的优点是他稳定性和低系统资源消耗,以及对HTTP并发连接的最高处理性能(单单台物理服务器可支持30000-50000个并发请求)。

3.MySQL 数据库服务器:作为lnmp建构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料、业务数据等都可以存储到MySQL数据库中,其他程序可以通过SQL语句来查询、更改这些信息。

4.PHP/Perl/Python 网页编程语言:作为三种开发动态网页的编程语言,负责解释动态网页文件,并提供WEB应用程序的开发和运行环境。其中PHP 是一种被广泛应用的开源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合WEB应用开发。

二:lnmp平台的应用优势

1.成本低廉

2.可定制

3.易于开发

4.方便应用

5.安全和稳定

第一步:安装Linux操作系统

(我们用电脑安装一个VMware Workstation Pro 用来安装操作系统)

第二步:安装nginx

首先我们先安装依赖包以及编译包

yum install -ypcre-devel zlib-devel gcc gcc-c++ make

接着我们来解压源码包到/opt目录下(nginx-1.2.8.tar.gz

                           

创建一个属于nginx的用户

useradd -M -s/sbin/nologin nginx

进入/opt/ nginx-1.2.8进行源码包编译

./configure \

--prefix=/usr/local/nginx\

--user=nginx \

--group=nginx \

--with-http_stub_status_module  && \

make && makeinstall

编译完成之后检查是否编译错误

echo $?(输出为0时表示编译正确不为0则错误)

创建软连接(相当于windows的快捷方式)

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

检查nginx

nginx -t

制作管理脚本(方便使用service命令进行管理)

vi/etc/init.d/nginx

#!/bin/bash

# chkconfig: 35 9920

# description:Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case"$1" in

  start)

    $PROG

    ;;

  stop)

    kill -s QUIT $(cat $PIDF)

    ;;

  restart)

    $0 stop

    $0 start

    ;;

  reload)

    kill -s HUP $(cat $PIDF)

    ;;

  *)

        echo "Usage: $0{start|stop|restart|reload}"

        exit 1

esac

exit 0

给管理脚本添加可执行权限

chmod +x/etc/init.d/nginx

添加service管理

chkconfig –addnginx

配置统计页面

先进入/usr/local/nginx/conf

给配置文件做备份

mv nginx.confnginx.conf.back

过滤配置文件的注释(以#号开头的字符都是注释)

grep -v"#" nginx.conf.back > nginx.conf

编辑配置文件

vim nginx.conf

index index.html index.htm;括号结束插入(大约在32行左右)

location ~ /status{

        stub_status   on;

        access_log off;

        }

解释

{ location ~/status {           //访问位置为/status

        stub_status   on; //打开状态统计功能

        access_log off;        //关闭此位置的日志记录

 }

配置虚拟主机

先创建网页文件

mkdir -p/var/www/accp

mkdir -p/var/www/benet

然后输入html到网页中

echo <h1> accp</h1> > /var/www/accp/index.html

echo <h1> benet</h1> > /var/www/benet/index.html

nginx.conf末尾添加(在配置文件的末尾单独插入就不会有影响,注意格式,主要就是注意括号问题!)

server {

        server_name  www.benet.com;

        location / {

            root   /var/www/benet;

            index  index.html index.php;

        }

    }

    server {

        server_name  www.accp.com;

        location / {

            root   /var/www/accp;

            index  index.html index.php;

        }

    }

}

}(最后这个括号是原来的)

配置完成后用nginx –t检查是否有问题(没有问题输出如下)

 

nginx: the configurationfile /usr/local/nginx/conf/nginx.conf syntax is ok

nginx:configuration file /usr/local/nginx/conf/nginx.conf test is successful

在宿主机上的host文件末尾添加

虚拟机ip地址www.benet.com

虚拟机IP地址www.accp.com

开启nginx

Nginx

关闭防火墙

service iptablesstop

进行测试

用浏览访问www.accp.comwww.accp.com

 

到此为止nginx配置完成

第三步:安装mysql

安装一个mysql的依赖包

yum install –y ncurses-devel

解压mysql源码包到/opt/目录下(版本mysql-5.5.24.tar.gz

tar -zxfmysql-5.5.24.tar.gz -C /opt/

安装mysql的编译软件cmake(版本cmake-3.6.3.tar.gz

解压cmake的源码包到/opt/目录下

tar -zxfcmake-3.6.3.tar.gz -C /opt/

进入/opt/ cmake-3.6.3/

cd/opt/cmake-3.6.3/

进行源码包编译

./configure&& make && make install

检查编译是否正确

echo $?

进入到/opt/ mysql-5.5.24/目录下进行编译

cd/opt/mysql-5.5.24/

进行源码包编译

cmake  \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\

-DDEFAULT_CHARSET=utf8\

-DDEFAULT_COLLATION=utf8_general_ci\

-DWITH_EXTRA_CHARSETS=all\

-DSYSCONFDIR=/etc\

-DMYSQL_DATADIR=/home/mysql/\

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock\

-DWITH_MYISAM_STORAGE_ENGINE=1\

-DWITH_INNOBASE_STORAGE_ENGINE=1\

-DWITH_ARCHIVE_STORAGE_ENGINE=1\

-DWITH_BLACKHOLE_STORAGE_ENGINE=1\

-DENABLED_LOCAL_INFILE=1\

-DWITH_SSL=system\

-DMYSQL_TCP_PORT=3306\

-DENABLE_DOWNLOADS=1\

-DWITH_SSL=bundled&& \

make &&make install

拷贝文件便于mysql启动

cpsupport-files/my-medium.cnf /etc/my.cnf

cpsupport-files/mysql.server /etc/init.d/mysqld

给启动文件添加可执行权限

chmod 755/etc/init.d/mysqld

添加service更好的管理mysql

chkconfig --add/etc/init.d/mysqld

配置开机自启

echo"PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile

运行脚本

./etc/profile

添加mysql的用户(为了系统的安全性所以不允许mysql用户登录)

useradd  mysql -s /sbin/nologin

mysql可读权限

chown -Rmysql.mysql /usr/local/mysql

初始化数据库

/usr/local/mysql/scripts/mysql_install_db\

--user=mysql \

--ldata=/var/lib/mysql\

--basedir=/usr/local/mysql\

--datadir=/home/mysql

创建软连接

ln-s/var/lib/mysql/mysql.sock/home/mysql/mysql.sock

到此为止mysql配置结束

开启mysql

service mysqldstart

登录mysql

mysql

第四部:安装PHP

先安装PHP的依赖包

yum -y install \

libjpeg-devel \

libpng-devel \

freetype-devel \

zlib-devel \

gettext-devel \

libXpm-devel \

libxml2-devel \

fontconfig-devel \

openssl-devel \

bzip2-devel

解压PHP源码包到/opt目录下(版本php-5.6.11.tar.bz2

tar -jxfphp-5.6.11.tar.bz2 -C /opt/

进入/opt/ php-5.6.11目录

cd/opt/php-5.6.11/

编译PHP(编译过程中有warning属于正常)

./configure \

--prefix=/usr/local/php5\

--with-gd \

--with-zlib \

--with-mysql=/usr/local/mysql\

--with-config-file-path=/usr/local/php5\

--enable-mbstring\

--with-jpeg-dir \

--with-openssl \

--disable-ipv6 \

--enable-fpm&& \

make &&make install

编译完成之后我们用echo $?来检查编译是否出问题

(输出为0时表示编译正确不为0则错误)

echo $?

拷贝模板到PHP所在的目录下

cpphp.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安装加速器

解压加速器源码包到/opt目录下(版本ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

Tar–zxfZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz–C /opt/

进入加速器源码包的PHP目录下

cdZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x

把配置文件拷贝到PHP目录下

cpZendGuardLoader.so /usr/local/php5/lib/php

PHP识别加速器,编辑配置文件

vi/usr/local/php5/php.ini

在末尾添加

[Zend GuardLoader]

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

zend_loader.enable=1

开启nginx支持PHP功能

进入到cd /usr/local/php5/etc/

把配置备份文件变成配置文件

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

PHP创建用户

useradd -M -s/sbin/nologin php

修改配置文件(修改以下配置文件)

pid =run/php-fpm.pid

user = php

group = php

pm.max_children=50

pm.start_servers =20

pm.min_spare_servers= 5

pm.max_spare_servers= 35

开启加速器

/usr/local/sbin/php-fpm

检查是否开启

netstat -tnal |grep 9000

nginx支持PHP功能

编辑nginx的配置文件

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

location条目下面添加

location ~ \.php${

            root           /var/www/benet;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            include        fastcgi.conf;

        }

保存退出后检查配置是否有问题

nginx –t

编辑测试页

vim/var/www/benet/index.php

添加以下内容

<?php

phpinfo();

?>

 在网页测试“http://192.168.10.188/index.php”输入这个,后面还是要直接写

index.php”的,虽然写了“fastcgi_index index.php;”这个支持php格式的,

但还是不支持的

建立数据库,授权

mysql -u root

mysql> CREATEDATABASE sky;

mysql>GRANT allON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123';

mysql>flushprivileges;

测试数据库

编辑的php配置文件

vi/var/www/benet/index.php

(删除原来的内容添加以下内容)

<?php

$link=mysql_connect('192.168.10.188','skyuser','admin123');

if(!$link) echo"Fail !!";

else echo"Success !!";

mysql_close();

?>

如果输出的是Success!!那么表示你成功了

之后我们要在lnmp的建构上可以安装论坛、网页等。

下一个博客会发表web的缓存、双机热备份、等