一、lnmp简介

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

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

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

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

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

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

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

二、安装配置

1、安装环境

Centos6.4-64位操作系统最小化安装,

需要的软件包有mysqlnginxphp,还有一些额外添加支持功能的软件包。

2、安装mysql

因为在centos6.4上在安装系统时,就自动安装系统自带的mysql服务,所以我们要安装新版本的,所以还是将系统上现有的卸载就可以了。

[root@ahao yum.repos.d]# yum remove mysql-server

[root@ahao ~]# tar -zxvfmysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[root@ahao ~]# groupadd mysql //组合用户应该已经存在

[root@ahao ~]# useradd -r -g mysql mysql

[root@ahao ~]# cd /usr/local/

[root@ahao local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64/  mysql

[root@ahao local]# cd mysql

[root@ahao mysql]# chown -R mysql .

[root@ahao mysql]# chgrp -R mysql .

[root@ahao mysql]# scripts/mysql_install_db --user=mysql   //这里会出现错误,缺少libaio.so文件,需要安装:

[root@ahao mysql]# yum install libaio-devel

安装之后再次执行scripts/mysql_install_db --user=mysql

[root@ahao mysql]# ll data/    //查看是否生成了数据库文件

                  [root@ahaomysql]# chown -R root .

[root@ahao mysql]# chown -R mysql data  //将权限更改过来

[root@ahaomysql]# cp support-files/mysql.server /etc/init.d/mysqld  //生成控制脚本

[root@ahaomysql]# chmod a+x /etc/init.d/mysqld

[root@ahao mysql]# cp my.cnf /etc  //将配置文件放到etc目录下

[root@ahao mysql]# chkconfig --add mysqld

[root@ahao mysql]# chkconfig mysqld on

//在原先mysql服务中客户端已经生成,这里还需要客户端,删除原有的会牵扯太多软件的依赖,所以我们还是只卸载mysql工具,和mysqladmin 就可以了

[root@ahao mysql]# rm /usr/bin/mysqladmin

[root@ahao mysql]# rm /usr/bin/mysql

[root@ahao mysql]# vim /etc/profile //bin文件放到系统变量中去

PATH=$PATH:/usr/local/mysql/bin

[root@ahao mysql]# . /etc/profile  //重新读取环境变量

[root@ahao mysql]# mysqladmin -u root -p password -p '123'  //指定mysql管机员

[root@ahao mysql]# vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib //mysqllib文件放到系统环境中去,便于系统的调用

[root@ahao mysql]# vim /etc/man.config //将手册放到系统环境中

MANPATH /usr/local/mysql/man

   3、安装nginx

   在安装nginx之前,我们要先安装pcre(正则表达式的库)和,libevent事件库。

   [root@ahao mysql]# yum install pcre-devel

   [root@ahao ~]# tar -zxvf libevent-2.0.16-stable.tar.gz  -C /usr/local/src

   [root@ahao ~]# cd /usr/local/src/libevent-2.0.16-stable/

   [root@ahao libevent-2.0.16-stable]# ./configure  --prefix=/usr/local/libevent

   [root@ahao libevent-2.0.16-stable]# make && make install

   [root@ahaolibevent-2.0.16-stable]# cd /usr/local/libevent/

[root@ahao libevent]# vim /etc/ld.so.conf.d/libevevt.conf//libeventlib文件添加系统环境中去

/usr/local/libevent/lib

   [root@ahaolibevent]# ldconfig

   [root@ahao libevent]# ldconfig -pv | grep libevent  //查看是否可以查看到lib文件

   安装nginx

   [root@ahao~]# groupadd -r nginx

   [root@ahao ~]# useradd -r -g nginx -s /sbin/nologin -M nginx

   [root@ahao ~]# tar -zxvf nginx-1.4.4.tar.gz -C /usr/local/src

   [root@ahao ~]# cd /usr/local/src/nginx-1.4.4/

       [root@ahaonginx-1.4.4]# ./configure \

     --conf-path=/etc/nginx/nginx.conf \

    --error-log-path=/var/log/nginx/error.log \

    --http-log-path=/var/log/nginx/access.log \

    --pid-path=/var/run/nginx/nginx.pid \

    --lock-path=/var/lock/nginx.lock \

    --user=nginx \

    --group=nginx \

    --with-http_ssl_module \

    --with-http_flv_module \

    --with-http_stub_status_module \

    --with-http_gzip_static_module \

    --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


   这里会出现缺少openssl的库,也还是需要我们安装的

   [root@ahao nginx-1.4.4]# yum install openssl-devel

   //安装之后,再次运行上步操作

   [root@ahao nginx-1.4.4]# mkdir -pv/var/tmp/nginx/client/  //这些要生成的临时目录,为了便于后续操作,还是手动建立为好

   [root@ahaonginx-1.4.4]# mkdir -pv /var/tmp/nginx/fcgi/

   [root@ahao nginx-1.4.4]# mkdir -pv /var/tmp/nginx/proxy/  

   [root@ahao nginx-1.4.4]# make && make install

   [root@ahao nginx-1.4.4]# cd /usr/local/nginx/sbin

   [root@ahaosbin]# ./nginx –t   //测试你的配置是否有错

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

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

   [root@ahaosbin]# cd /etc/init.d/

   [root@ahaoinit.d]# touch nginx    //创建控制脚本

   [root@ahao init.d]# chmod a+x nginx

   脚本如下:

   #!/bin/bash

   # ./etc/init.d/functions

   prog=/usr/local/nginx/sbin/nginx

   lockfile=/var/lock/nginx.lock

   

   start (){

         if [ -e $lockfile ];then

        echo "the nginx server isstarted"

        else

        echo -n "the nginx server isstarting......"

        sleep 1

        $prog && echo -e"[\033[32mOK\033[0m] " && touch $lockfile ||echo"failer"

       fi

   

   }

   stop () {

          if [ ! -e $lockfile ];then

        echo "the nginx server isstoped"

        else

        echo-n "the nginx server is stoping......"

        sleep 1

        $prog -s stop  && echo "OK" && rm-rf $lockfile || echo "failer"

     fi

   }

   restart(){

    if [ -e $lockfile ]; then

             echo -n "the nginx isstoping..."

             $prog -s stop && echo  "OK" && rm -rf $lockfile ||echo "failer"

             echo -n "the nginx isstarting..."

             $prog && echo "OK"&& touch $lockfile ||echo "failer"

           fi

   }

   case"$1" in

   

   start)

       start

       ;;

   stop)

       stop

       ;;

   restart)

    stop

    start

      ;;

    *)

   echo"USAGE:start|stop|restart"

   esac

   测试启动nginx

   [root@ahao sbin]# service nginx start

   the nginx server is starting......[OK]

   [root@ahaosbin]# netstat -tupln | grep 80

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      11426/nginx  

证明是可以正常启动的。

[root@ahao sbin]# vim /etc/init.d/nginx  //nginx加入chkconfig的管理

加入配置:# chkconfig2345 88 44

                    # description: the web server

[root@ahaosbin]# chkconfig --add nginx  

[root@ahaosbin]# chkconfig --list |grep nginx  

nginx              0:off 1:off 2:on 3:on 4:on 5:on 6:off   //已经成功加入



4、安装php5.5.8

[root@ahao ~]# tar -jxvf php-5.5.8.tar.bz2 -C/usr/local/src

[root@ahao ~]# cd /usr/local/src/php-5.5.8/

[root@ahao php-5.5.8]# mkdir /etc/php /etc/php5.d

这两个目录是phpnginx配合使用一定要有的目录,我们先建立起来,以免后续出错。

[root@ahao php-5.5.8]# ./configure  --prefix=/usr/local/php  --enable-fpm --enable-sockets--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring --enable-xml --with-png-dir --with-jpeg-dir --with-zlib--with-freetype-dir --with-config-file-path=/etc/php--with-config-file-scan-dir=/etc/php5.d

但是这样的安装还是会有错误:

configure: error: xml2-config not found. Please check yourlibxml2 installation.

//缺少libxml2还是需要我们安装,其实这样的软件包有时候已经安装,缺少都是devel包,所以我们只需要安装devel包就可以了

[root@ahao php-5.5.8]# yum install libxml2-devel

安装之后继续执行上步操作。

执行成功之后:

[root@ahao php-5.5.8]# make && make install  //时间很长请耐心等待,只要不出现错误即可

[root@ahao php-5.5.8]# cp php.ini-development  /etc/php/php.ini

[root@ahao fpm]# chmod 744 /etc/init.d/php-fpm //更改权限

[root@ahao php-5.5.8]# cp sapi/fpm/php-fpm.conf/usr/local/php/etc/ //产生php-fpm配置文件

[root@ahao php-5.5.8]# service php-fpm start  //测试启动是可以的

Starting php-fpm done

[root@ahao php-5.5.8]# netstat -tupln | grep fpm

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      59253/php-fpm

[root@ahao php-5.5.8]# chkconfig --add php-fpm  //加入chkconfig的管理

成功之后,我们可以做个测试页面:

[root@ahao php-5.5.8]# cd /usr/local/nginx/html/  

[root@ahao html]# vim index.php

在里面添加:

<?php

Phpinfo();

?>

[root@ahao html]# vim /etc/nginx/nginx.conf  //配置测试页面的要求

wKiom1Li_wrAwS1GAABNh3AEE6g250.jpg

wKioL1Li_ufi_Y1uAADYAScyzFo780.jpg

测试一下:

wKioL1Li_s-DWrN8AAKgla3kA0E194.jpg

        5、测试

       安装phpmyadmin

[root@ahao ~]# unzip phpMyAdmin-4.1.5-all-languages.zip

[root@ahao ~]# mv phpMyAdmin-4.1.5-all-languages phpmyadmin

[root@ahao ~]# mv phpmyadmin/ /usr/local/nginx/html/

测试:

wKiom1Li_zGQermCAAFoCmA4MQg661.jpg

wKioL1Li_xHh27DBAAMv_iJ4E94362.jpg

证明是可以正常访问的


或者我们还可以安装一个php加速器(Xcache)来测试:

[root@ahao ~]# tar -zxvf xcache-3.1.0.tar.gz  -C /usr/local/src

[root@ahao xcache-3.1.0]# /usr/local/php/bin/phpize //phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

[root@ahaoxcache-3.1.0]#./configure--enable-xcache--with-php-config=/usr/local/php/bin/php-config

[root@ahao xcache-3.1.0]# make && make install

[root@ahao xcache-3.1.0]# cp xcache.ini /etc/php5.d/  

[root@ahao ~]# vim /etc/php5.d/xcache.ini

[root@ahao xcache-3.1.0]# cp -r htdocs/   /usr/local/nginx/html/xcacheadmin xcache的管理页面放到nginx的主站点目录下

                  //在文件中更改配置

     

wKiom1Li_0SzJnfaAALf5ToFhvU633.jpg


[root@ahao ~]# service php-fpm restart

我们可以测试访问web服务,在页面内搜索xcache就可以知道是否xcache启动了。

wKioL1Li_zCjGWgFAALTZu0sKxw623.jpg

查看进入管理页面:

wKiom1Li_2aA687-AAEvd7cWy2Q172.jpg

wKioL1Li_0SC3IfbAAIZZjwD9p4665.jpg


实现到这里我们的lnmp环境就已经搭建起来了,已经可以支持php动态页面。