Web进阶LNMP网站部署1
什么是LNMP
LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=PHP
LNMP架构工作流程
首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。
当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回,如果是动态请求Nginx则通过fastcgi协议转交给后端的PHP程序处理,具体如下图所示
详细流程
1.用户通过http
协议发起请求,请求会先抵达LNMP
架构中的Nginx
2.Nginx
会根据用户的请求进行判断,这个判断是有Location
进行完成
3.判断用户请求的是静态页面,Nginx
直接进行处理
4.判断用户请求的是动态页面,Nginx
会将该请求交给fastcgi
协议下发
5.fastgi
会将请求交给php-fpm
管理进程, php-fpm
管理进程接收到后会调用具体的工作进程warrap
6.warrap
进程会调用php
程序进行解析,如果只是解析代码php
直接返回
7.如果有查询数据库操作,则由php
连接数据库(用户 密码 IP)发起查询的操作
8.最终数据由*mysql->php->php-fpm->fastcgi->nginx->http->user
部署LNMP架构
1.安装nginx
[root@web01 ~]# yum install -y nginx
2.安装php
# 1.更改yum源 [root@web01 ~]# wget http://us-east.repo.webtatic.com/yum/el7/webtatic-release.rpm [root@web01 ~]# yum localinstall webtatic-release.rpm -y # 2.生成缓存 [root@web01 ~]# yum makecache # 3.安装php [root@web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb # 4.统一用户 ## 创建www用户组 [root@web01 ~]# groupadd www -g 666 ## 创建www用户 [root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M ## 修改nginx配置文件使用www用户 [root@web01 ~]# vim /etc/nginx/nginx.conf user www; ## 修改php服务使用www用户 [root@web01 ~]# vim /etc/php-fpm.d/www.conf [www] user = www group = www # 5.启动php-fpm [root@web01 ~]# systemctl start php-fpm # 6.加入开机自启 [root@web01 ~]# systemctl enable php-fpm # 7.检查php的进程 [root@web01 ~]# ps -ef|grep '[p]hp-fpm' root 7570 1 0 16:00 ? 00:00:00 php-fpm: master process (/etc/phpfpm.conf) www 7571 7570 0 16:00 ? 00:00:00 php-fpm: pool www www 7572 7570 0 16:00 ? 00:00:00 php-fpm: pool www www 7573 7570 0 16:00 ? 00:00:00 php-fpm: pool www www 7574 7570 0 16:00 ? 00:00:00 php-fpm: pool www www 7575 7570 0 16:00 ? 00:00:00 php-fpm: pool www # 8.检查php端口 [root@web01 ~]# netstat -lntup|grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 7570/php-fpm: maste
3.安装数据库
# 1.安装mariadb [root@web01 ~]# yum install -y mariadb-server # 2.启动mariadb [root@web01 ~]# systemctl start mariadb # 3.开机自启mariadb [root@web01 ~]# systemctl enable mariadb # 4.检查MySQL端口(3306) [root@web01 ~]# netstat -lntup|grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7909/mysqld # 5.检查MySQL进程 [root@web01 ~]# ps -ef|grep '[m]ysqld' # 6.设置mariadb密码为123 [root@web01 ~]# mysqladmin -uroot password '123' ### 修改密码 [root@web01 ~]# mysqladmin -uroot -p123 password '678' # 7.客户端连接命令(登入数据库) [root@web01 ~]# mysql -uroot -p123
将Nginx和PHP建立连接
# 1.修改nginx配置文件 [root@web01 nginx]# vim /etc/nginx/conf.d/blog.conf server{ listen 80; server_name localhost; root /code/; location / { index index.php index.html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } $document_root:站点目录/code $fastcgi_script_name:指的是index.php # 2.创建站点目录 [root@web01 nginx]# mkdir /code # 3.编辑php测试文件 [root@web01 nginx]# vim /code/info.php <?php phpinfo(); ?>
测试PHP连接MySQL
[root@web01 nginx]# vim /code/mysql.php <?php $servername = "localhost"; $username = "root"; $password = "123"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "小哥哥,php可以连接MySQL..."; ?> <img style='width:100%;height:100%;' src=https://blog.driverzeng.com/zenglaoshi/php_mysql.png>
部署博客软件(wordpress)
wordpress官网:TP
# 1.下载wordpress [root@web01 code]# wget https://wordpress.org/latest.tar.gz # 2.解压 [root@web01 code]# tar xf latest.tar.gz # 3.递归修改wordpress文件权限 [root@web01 code]# chown -R www.www /code/wordpress # 4.编写wordpress的nginx配置文件 [root@web01 code]# vim /etc/nginx/conf.d/blog.conf server{ listen 80; server_name localhost; root /code/wordpress; location / { index index.php index.html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } # 5.连接到MySQL中,创建一个给wordpress使用的库 [root@web01 wordpress]# mysql -uroot -p123 ### 创建数据库 库名wp 字符集是utf8 MariaDB [(none)]> create database wp charset utf8 ### 查看有几个库 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | wp | +--------------------+ 5 rows in set (0.00 sec) # 6.打开浏览器访问http://10.0.0.7
原文链接:https://www.cnblogs.com/dsryyds/p/15111468.html
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END