简介
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管理界面