lnmp:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

   作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

   作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

   作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

编译环境:

Development tools

Additional Development

系统环境:nginx服务器用的CentOS-6.4-x86_64,客户端用的win7系统。

用到的安装包:

libevent-2.0.21-stable.tar.gz  http://pan.baidu.com/s/1pJ8Vgef

mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz http://pan.baidu.com/s/1c0b17Mg

nginx-1.4.4.tar.gz http://pan.baidu.com/s/1eQj4Z5K

php-5.5.8.tar.bz2 http://pan.baidu.com/s/1gdIENf1

phpMyAdmin-4.1.5-all-languages.zip http://pan.baidu.com/s/1qWBARBe

xcache-3.1.0.tar.gz  http://pan.baidu.com/s/1dD3jNQp

一、首先来安装mysql:

[root@localhost ~]# tar -zxvf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ 解压mysql安装包

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

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

给mysql目录创建一个链接mysql

[root@localhost local]# cd mysql

mysql目录下有一个INSTALL-BINARY二进制安装帮助文件,根据里边的提示进行安装就行了

[root@localhost mysql]# vim INSTALL-BINARY

可看到如下安装步骤:

shell> groupadd mysql

 79 shell> useradd -r -g mysql mysql

 80 shell> cd /usr/local

 81 shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

 82 shell> ln -s full-path-to-mysql-VERSION-OS mysql

 83 shell> cd mysql

 84 shell> chown -R mysql .

 85 shell> chgrp -R mysql .

 86 shell> scripts/mysql_install_db --user=mysql

 87 shell> chown -R root .

 88 shell> chown -R mysql data

 89 shell> bin/mysqld_safe --user=mysql &

 90 # Next command is optional

 91 shell> cp support-files/mysql.server /etc/init.d/mysql.server

照着上边的步骤一步一步做就好:

[root@localhost mysql]# groupadd mysql

[root@localhost mysql]# useradd -r -g mysql mysql

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

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

[root@localhost mysql]# scripts/mysql_install_db  --user=mysql

使用当前目录下scripts目录内的mysql_install_db以mysql账户生成初始化数据库。

做到这一步是出现错误:

wKioL1LiOzLj-FoJAACRGKPoPCE388.jpg

缺少libaio库,所以安装libaio

[root@localhost mysql]# yum --disablerepo=* --enablerepo=c6-media install libaio

[root@localhost mysql]# scripts/mysql_install_db  --user=mysql 再次执行此命令

[root@localhost mysql]# cp my.cnf /etc

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

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

[root@localhost mysql]# service mysqld start 启动mysqld服务

[root@localhost mysql]# netstat -tupln |grep mysqld 查看mysqld服务端口开启状况

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

[root@localhost mysql]# chkconfig mysqld on 设置为开机启动

[root@localhost mysql]# vim /etc/profile

PATH=$PATH:/usr/local/mysql/bin  将mysql生成的bin文件写入到系统的环境变量中

[root@localhost mysql]# . /etc/profile 重新读取 /etc/profile

此时已经可以在任何位置进入mysql

[root@localhost mysql]# mysqladmin -u root -p password '123' 创建一个管理员账户root,密码为123

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

/usr/local/mysql/lib   为了使mysql生成的lib文件能被其他程序所调用,在/etc/ld.so.conf.d/下创建一个mysql.conf 文件,并把bin文件的路径写进去

[root@localhost mysql]# ldconfig 刷新缓存

[root@localhost mysql]# vim /etc/man.config  

MANPATH /usr/local/mysql/man

为了使mysql生成的man文件能被其他程序所调用,在/etc/man.conf中把man文件的路径写进去。

到这里mysql安装完毕,接下里安装nginx;

二、安装nginx:

在安装nginx之前,要先安装pcre(基于pcre语言兼容的正则表达式 )和libevent(事件库) {使用源码安装  }

[root@localhost ~]# yum --disablerepo=* --enablerepo=c6-media install pcre pcre-devel


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

[root@localhost ~]# cd /usr/local/src/libevent-2.0.21-stable/

[root@localhost libevent-2.0.21-stable]# ./configure --prefix=/usr/local/libevent 指明安装目录

[root@localhost libevent-2.0.21-stable]# make && make install

[root@localhost libevent]# vim /etc/ld.so.conf.d/libevent.conf

/usr/local/libevent/bin

准备工作已经做完,接下来开始安装nginx:

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

[root@localhost nginx-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


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

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

[root@localhost sbin]# groupadd -r nginx 添加一个group组

[root@localhost sbin]# ./nginx -t

测试语法是否正确,发现虽然测试成功但是少了一个临时目录:

wKiom1LiO6fC0dHjAACgwEOHqxo726.jpg

[root@localhost sbin]# mkdir -pv /var/tmp/nginx/client/ 创建一个临时目录,再次测试

[root@localhost sbin]# ./nginx -t 再次测试,测试成功!

[root@localhost sbin]# ./nginx 启动nginx服务,可用netstat -tupln |grep 80 来测试是否启动成功!

然后要来给nginx编辑一个控制脚本:

[root@localhost sbin]# vim /etc/init.d/nginx

[root@localhost sbin]# chmod a+x /etc/init.d/nginx 给它执行权限

控制脚本代码如下:

#!/bin/bash

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

lockfile=/var/lock/nginx.lock

. /etc/init.d/functions


start () {

       if [ -e $lockfile ];then

       echo "the nginx is start"

       else

       echo "the nginx is starting..."

       sleep 1

       $prog && echo ok && touch $lockfile || echo fail

       fi

}

stop () {

       if [ ! -e $lockfile ];then

       echo "the nginx is stoped"

       else

       echo "the nginx is stopping..."

       sleep 1

       killproc $prog && echo ok && rm -rf $lockfile || echo fail

       fi

}

configtest () {

       $prog -t

}

case "$1" in

start)

       start

       ;;

stop)

       stop

       ;;

restart)

       stop

       start

       ;;

configtest)

       configtest

       ;;

*)

       echo "USAGE:start|stop|restart|configtest"

esac

[root@localhost sbin]# ./nginx -s stop 关掉nginx服务(在这里不能用控制脚本关闭)

[root@localhost sbin]# service nginx restart 用控制脚本重新打开

到这里nginx安装完成!


三、安装php:

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

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

[root@localhost 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

[root@localhost php-5.5.8]# make && make install


在这里,php作为一个独立的服务,它的控制脚本以及配置文件可从如下途径得到:

[root@localhost php-5.5.8]# cp php.ini-development /etc/php/php.ini 得到php.ini 文件

[root@localhost php-5.5.8]# cd sapi/fpm/

[root@localhost fpm]# cp init.d.php-fpm /etc/init.d/php-fpm  得到控制脚本

[root@localhost fpm]# chmod a+x /etc/init.d/php-fpm  给予可执行权限

[root@localhost fpm]# cp php-fpm.conf /usr/local/php/etc  得到配置文件


[root@localhost fpm]# cd /usr/local/nginx/html/

[root@localhost html]# vim index.php

<?php

phpinfo ();

?>

把调用的函数输出到页面上。

打开nginx的主配置文档:

[root@localhost html]# vim /etc/nginx/nginx.conf

编辑如下:

45行:多加一条 index.php

wKiom1LiPDbgjBNRAACZJo-qjk0498.jpg


65行:

wKioL1LiPCfxWzFqAAD4m4jSBws055.jpg

[root@localhost html]# service nginx restart

重新启动nginx:

然后访问http://192.168.80.10结果如下

wKiom1LiPJ3ycBajAAJO5cNSW88100.jpg



接下来测试与mysql是否连接成功:

重新编辑index.php文件:

<?php

$LINK=mysql_connect('127.0.0.1','root','123');

if ($LINK)

echo "ok";

else

echo "no";

?>

如果与mysql连接成功输出“ok”,否则输出“no”

然后访问http://192.168.80.10结果如下:wKiom1LiPL7xyoTZAACx3vdZw7o370.jpg下:



四、安装phpmyadmin;

[root@localhost ~]# unzip phpMyAdmin-4.1.5-all-languages.zip  解压安装包

[root@localhost ~]# mv phpMyAdmin-4.1.5-all-languages /usr/local/nginx/html/phpmyadmin

把解压好的目录放入/usr/local/nginx/html/下,并命名为phpmyadmin。

然后在浏览器中访问http://192.168.80.10/phpmyadmin:并登陆

结果如下:

wKioL1LiPOnDeIL5AAKPXM6JID8411.jpg


五、使用xcache实现对php的加速:

使用源码安装xcache-3.1.0.tar.gz

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

首先解压安装包

[root@localhost ~]# cd /usr/local/src/xcache-3.1.0/

[root@localhost xcache-3.1.0]# /usr/local/php/bin/phpize

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

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


成功之后在最后一行有产生的模块的目录,可以先把它记下来:

wKiom1LiPTXxoRJuAAB7RAf_sVE976.jpg


[root@localhost xcache-3.1.0]# service php-fpm restart 重启php-fpm服务


接下来为xcache创建一个账号,并设置密码,但是密码必须是用md5算法加密过的,可以先用下边这个命令来生成一个经md5加密的密码:

[root@localhost xcache-3.1.0]# echo -n "123456" |md5sum

比如说用md5算法处理一下132456这一列数字,可得到如下所示的密码:

wKioL1LiPWHCl5-XAABO5LIQx2s061.jpg

然后编辑

[root@localhost xcache-3.1.0]# mv xcache.ini  /etc/php5.d

[root@localhost xcache-3.1.0]# vim /etc/php5.d/xcache.ini

把xcache目录下的xcache.ini 移动到/etc/php5.d目录下,并编辑如下:

wKiom1LiPnvD2nRIAACOtcChM1c027.jpg

这个是xcache的目录:

wKioL1LiPljjC0VTAACRaM4xCZg228.jpg

添加一个账号admin,密码是刚才得到的md5加密过的“123456”

[root@localhost xcache-3.1.0]# mv htdocs/ /usr/local/nginx/html/admin

把xcache的管理界面移动到/usr/local/nginx/html目录下,并重命名为admin

然后在浏览器中访问:http://192.168.80.10/admin 会得到提示需要输入用户名和密码:

wKioL1LiPT6jzDYBAAG2qwz5n64327.jpg

wKiom1LiPWKTuedPAANu-qRmtNo149.jpg