Nginx架构篇LNMP动态网站环境部署
Posted 资本家的鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx架构篇LNMP动态网站环境部署相关的知识,希望对你有一定的参考价值。
LNMP工作原理
首先,浏览器发送http request 请求到服务器(nginx),服务器响应并处理请求,将一些静态的资源(css 图片, 视频)保存服务器上,然后将php脚本通过接口传输协议php-fcg传输给php-fpm(进程管理器),php-fpm不做处理,php-fpm调用php解析器进程,php解析器解析php脚本信息,php解析器可以启动多个进程,然后将解析后的脚本返回到php-fpm,php-fpm在通过fastcgi的形式将脚本信息传给nginx,服务器在通过http reponse 的形式传给浏览器,浏览器在进行解析与渲染后进行呈现。
1,LINUX准备
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=diable
2,Nginx部署
yum install -y nginx
3,php-fpm部署1
yum install -y php-fpm php-mysql php-gd
systemctl restart php-fpm
systemctl enable php-fpm
- php-fpm:php接收动态请求的程序
- php-mysql:php链接mysql的程序
- php-gd:图形库程序(GD库可以处理图片,或者生成图片)
netstat -anpt | grep 9000
测试php页面(php基本信息)
vim /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
vim /etc/nginx/conf.d/default.conf
location /
index index.php index.html;
启动nginx_fastcgi功能,解除#注释修改路径即可
vim /etc/nginx/conf.d/default.conf
location ~ \\.php$
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
解释:
fastcgi_param:这个配置的意思是 在浏览器中访问的.php文件,实际读取的是 $document_root(网站根目录)下的.php文件 -- 也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如果没有配置这一配置项时,nginx不回去网站根目录下访问.php文件,所以返回空白
通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,而这里的IP地址和端口就是FastCGI进程监听的IP地址和端口。
fastcgi_param指令指定放置PHP动态程序的主目录,也就是$fastcgi_script_name前面指定的路径,这里是/usr/local/nginx/html目录,建议将这个目录与Nginx虚拟主机指定的根目录保持一致,当然也可以不一致。
fastcgi_params文件是FastCGI进程的一个参数配置文件,在安装Nginx后,会默认生成一个这样的文件,这里通过include指令将FastCGI参数配置文件包含了进来。
重启并访问
systemctl restart nginx
http://192.168.19.100/index.php
4,php-fpm部署2
方法二:使用socket连接
vim /usr/local/php/etc/php-fpm.conf
listen = 127.0.0.1:9000
listen = /run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
ll /dev/shm/php-fpm.sock
srw-rw-rw-. 1 root root 0 Sep 18 04:55 /run/php-fpm.sock
vim /usr/local/nginx/conf/nginx.conf
去掉以下行的注释:
location ~ \\.php$
root html;
fastcgi_pass unix:/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
5,mysql 部署
编译安装:https://blog.51cto.com/u_15630500/5288573
yum -y install mariadb-server mariadb
安装mysql服务器程序和客户机程序
systemctl start mariadb
启动mysql服务器
systemctl enable mariadb
开机启动mysql服务器
mysqladmin password 123456
修改mysql的root密码为‘123456’
create database bbs;
准备数据库,存放app
grant all on bbs.* to phptest@192.168.19.100 identified by 123456;
授权phptest用户管理bbs库,请注意用户名密码主机参数需要更换。
flush privileges;
刷新权限
修改主页,测试MYSQL的链接状态
vim /usr/share/nginx/html/index.php
<?php
$link=mysql_connect(192.168.19.100,phptest,123456);
if ($link)
echo "Successfuly";
else
echo "Faile";
mysql_close();
?>
如果测试为faile,请检查数据库授权结果。
以上是关于Nginx架构篇LNMP动态网站环境部署的主要内容,如果未能解决你的问题,请参考以下文章