LNMP环境部署

简介

NMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
百度百科

环境

本教程中的各服务搭建在不同的服务器上 当然也可以搭建在同一个服务器上

主机环境

身份 系统 IP
Nginx 服务器 CentOS 6.7 172.17.0.7
MySQL 服务器 CentOS 6.7 172.17.0.2
PHP-fpm 服务器 CentOS 6.7 172.17.0.6

软件环境

软件名称 版本号 下载地址
Nginx 1.9.13 点击下载
MySQL 5.6.28 点击下载
PHP 5.6.19 点击下载

步骤

编译安装各组件

服务器 安装文档地址
Nginx 点击打开文档内容
MySQL 点击打开文档内容
PHP-fpm 点击打开文档内容

搭配组合

他们之间的搭配其实就是通过修改配置文件能互连起来 协调工作
如果跨主机搭建需要让Nginx和PHP-fpm能访问相同的web网页目录
或者只将PHP的页面放到PHP-fpm服务能访问到了路径即可
因为Nginx收到PHP页面的请求会将请求转发给PHP-fpm去处理 自己并不处理PHP的页面
但是如果其他的静态资源等 还是需要放到Nginx能访问到的路径
实验中 已经通过NFS共享方式让Nginx和PHP-fpm挂载相同的/var/www/html目录

配置PHP-fpm

打开编辑php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf

修改listen监听地址为0.0.0.0:9000
listen = 0.0.0.0:9000 

配置仅允许连接的客户机 默认运行所有主机连接 172.0.0.7是Nginx服务器的IP
listen.allowed_clients = 172.17.0.7

然后启动PHP-fpm的服务
service php-fpm start

配置Nginx

打开编辑nginx.conf
vim /usr/local/nginx/conf/nginx.conf

更改网站根路径和添加php页面的识别
location / {                                                          
        root   /var/www/html;                                             
        index  index.html index.htm index.php;                            
    }

去掉php段的注释 并按实际环境修改以下内容
location ~ \.php$ {                                                   
        root           /var/www/html;                                     
        fastcgi_pass   172.17.0.6:9000;                                   
        fastcgi_index  index.php;                                         
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;                                    
    }

重启或通知Nginx重新加载配置文件
/usr/local/nginx/sbin/nginx -s reload

配置MySQL

MySQL创建远程登录用户 php 只允许 172.17.0.6连接 密码 php123
grant all privileges on *.* to "php"@"172.17.0.6" identified by "php123";

验证是否搭配成功

在/var/www/html中编写index.php
    <?php
        phpinfo();
    ?>

在/var/www/html中编写dbtest.php
    <?php 
        $link=mysql_connect("172.17.0.2","root","123.com"); 
        if(!$link) echo "连接错误!"; 
        else echo "可以连接!"; 
    ?>

分别访问两个php文件
http://172.17.0.7/  和  http://172.17.0.7/dbtest.php
若浏览器出现大大的PHP Version 5.6.19 则index.php被正常识别
访问dbtest.php若出现 "可以连接!" 则数据库连接成果

以下是用curl访问dbtest.php的结果
[root@45c4f07c6049 etc]# curl http://172.17.0.7/dbtest.php
OK!可以连接

附录

搭建好LNMP后 好多用到PHP运行环境的页面就可以在上面运行了 
比如zabbix的web管理界面