案头见蠹鱼,犹胜凡俦侣。这篇文章主要讲述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-fpmdone
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$
roothtml;
fastcgi_passunix:/run/php-fpm.sock;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_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();
?>
【Nginx架构篇LNMP动态网站环境部署】如果测试为faile,请检查数据库授权结果。
推荐阅读
- MYSQL 8VSMYSQL 5.7 到底ORACLE是怎么想的()
- 使用 KubeKey 搭建 Kubernetes/KubeSphere 环境的"心路(累)历程"
- 如何清空DNS缓存Windows&linux
- mysql多数据库文件导入的脚本
- 为何软件都默认安装在C盘(不知道的快来看看!)
- 如何一键修改软件默认安装路径(简单又省事~)
- 运维小白成长记——第十三周
- rpm&yum你选谁
- 第十五周学习作业