云计算运维学习---LNMP架构动态网页

   日期:2020-11-08     浏览:106    评论:0    
核心提示:LNMP架构一种常用的用来搭建动态网站页面的架构。L:代表Linux系统;即LNMP架构是在Linux系统上实现的。若是第一次学习部署动态网页的话,最好把selinux和防火墙都关闭N:代表nginx服务;ngnix服务主要用于处理用户的静态请求P:代表php服务;一、处理动态的页面请求。二、负责和数据库建立关系M:代表mysql服务;主要用户存储用户的字符串数据信息。(也可以使用mariadb服务代替)LNPM工作流程当客户端通过浏览器访问某个网站时,若是静态请求,那么nginx服务就可以直接

LNMP架构一种常用的用来搭建动态网站页面的架构。
L:代表Linux系统;即LNMP架构是在Linux系统上实现的。若是第一次学习部署动态网页的话,最好把selinux和防火墙都关闭
N:代表nginx服务;ngnix服务主要用于处理用户的静态请求
P:代表php服务;一、处理动态的页面请求。二、负责和数据库建立关系
M:代表mysql服务;主要用户存储用户的字符串数据信息。(也可以使用mariadb服务代替)

LNPM工作流程
当客户端通过浏览器访问某个网站时,若是静态请求,那么nginx服务就可以直接产生应答,给用户返回想要的信息数据;若是动态请求,nginx服务则无法处理。但是nginx服务会通过配置的"ngx_http_fastcgi_module"中的fastcgi_pass参数,把动态请求交给php-fpm进程管理池(php-fpm是针对PHP的一种FastCGI进程管理器),php-fpm会让进程池中的一个子进程接收动态请求,然后把请求交给wrapper服务处理。若是此动态请求不涉及数据的存储,那么就不会和mysql进行通信,直接把处理后的结果原路返回,呈现在用户浏览器上即可;若是需要进行数据的存取,php解析器就需要把请求翻译成mysql语言与mysql数据库进行同行,最后再把处理好的请求原路返回。

LNMP架构部署
实验准备:一台安装Linux系统的主机

  • mysql服务部署:(因为yum安装mysql会很慢,这里推荐mariadb,和mysql都是一个人写的)
    第一步:安装数据库软件

    第二步:启动数据库服务

    第三步:给数据库服务设置密码、登录数据库

  • PHP服务的部署:
    第一步:更新yum仓库、删除系统自带的PHP软件;若是不更新yum仓库的话,那么使用yum安装的php服务软件包就是最新的版本,最新的版本有点不稳定,所以更新一下yum仓库,让yum下载是选择旧的版本。我这里下载了7.1版本的;删除系统自带的PHP软件是为了避免影响此次的下载,若是系统里以前的PHP软件没有卸载干净,可能此次下载就会失败。


    第二步:安装php软件

    第三步:编写配置文件


    第四步:启动php服务

  • 实现nginx和php服务建立关系。(nginx服务的部署,我前面的博客有详细的介绍,在此就不再赘述)
    第一步:编写nginx扩展配置文件,并重启nginx服务

    注意点:若是不配置fastcgi_param指令,那么使用浏览器浏览动态网站时,返回的就是空白页面;这是因为默认只把URI信息传递给php处理,php处理完后因为不知道URL信息,所以不知道如何返回。所以一定要配置fastcgi_param指令,把document_root变量和fastcgi_script_name变量都传递给php。
    TIP:顺带把fastcgi_param指令的一些参数也介绍一下:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#脚本文件请求的路径
fastcgi_param  QUERY_STRING       $query_string; #请求的参数;如?app=123
fastcgi_param  REQUEST_METHOD     $request_method; #请求的动作(GET,POST)
fastcgi_param  CONTENT_TYPE       $content_type; #请求头中的Content-Type字段
fastcgi_param  CONTENT_LENGTH     $content_length; #请求头中的Content-length字段。

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #脚本名称 
fastcgi_param  REQUEST_URI        $request_uri; #请求的地址不带参数
fastcgi_param  DOCUMENT_URI       $document_uri; #与$uri相同。 
fastcgi_param  DOCUMENT_ROOT      $document_root; #网站的根目录。在server配置中root指令中指定的值 
fastcgi_param  SERVER_PROTOCOL    $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。 

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;#cgi 版本
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;#nginx 版本号,可修改、隐藏

fastcgi_param  REMOTE_ADDR        $remote_addr; #客户端IP
fastcgi_param  REMOTE_PORT        $remote_port; #客户端端口
fastcgi_param  SERVER_ADDR        $server_addr; #服务器IP地址
fastcgi_param  SERVER_PORT        $server_port; #服务器端口
fastcgi_param  SERVER_NAME        $server_name; #服务器名,域名在server配置中指定的server_name

#fastcgi_param PATH_INFO $path_info;#可自定义变量

# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200;

在php可打印出上面的服务环境变量
如:echo $_SERVER['REMOTE_ADDR']

第二步:编写动态资源文件(这里只编写一个简单的php文件用于测试)

第三步:访问测试

  • 建立php和mysql之间的关系
    第一步:在站点目录下编写php代码文件;php代码文件可通过调用"mysqli_connect()"函数建立php和mysql之间的连接

    第二步:进行测试

部署搭建网站动态页面
上面介绍了一下LNMP架构的部署,以及它们之间如何建立关系。下面通过一个真正搭建一个动态页面网站更直观的展现LNMP架构。
大家可以通过这个网站https://cn.wordpress.org/ 获取一个开源动态页面网站代码
第一步:将开源代码解压后放进网站的站点目录

第二步:修改nginx扩展配置文件

第三步:对数据库进行配置;因为动态页面要和数据库建立关系,用于存储、获取数据。所以先建立一个数据库用于此开源动态页面的存储、获取数据。

第四步:创建"wordpress"数据的管理用户

第五步:进行网站页面的初始化

点击submit完成初始化后,再进入Linux系统的wordpress数据库,就会发现已经创建了很多的表:

第六步:创建网页的登录用户和密码

最后点击"install WordPress",就完成一个真实动态页面的网站部署。实际工作中,开发人员会把代码发送给运维人员,运维人员基本就要按照以上的步骤把代码上线部署好。

测试部署的动态页面网站
打开我们部署好的网站的动态页面,发现页面的主题不是自己的菜,所以下面我就测试一下如何更改页面的主题。

  1. 第一步:首先你要到wordpress的官网https://cn.wordpress.org/ 下载一个自己喜欢的主题,在此我就不赘述了。
  2. 把自己下载的主题通过动态页面上传到网站里:

    选择好自己要上传的主题后,点击"install Now",发现跳出来下面这个页面:

    所以回到扩展配文件中,修改nginx服务允许上传的数据尺寸:

    重启nginx服务后,在浏览器中重新"www.cxsnb.com"进入到我们部署的动态页面中上传主题,又会出现下面的问题:

    所以还要再修改php的配置文件"/etc/php.ini’:

    重启php-fpm服务后,再次进入部署的动态页面进行上传主题,又会出现下面的情况。

    这是因为,客户端通过浏览器进入到nginx服务部署的网站后,用户的身份会发生改变。执行操作的用户身份会变成nginx服务worker进程的管理用户(我设置的是www用户),同时为了把nginx服务和php服务建立联系,也要把php的worker进程的管理用户也改为www。所以上传的主题中的"wp-conten"目录对于www这个用户权限不足,也就致使了上面图片中出现的错误。

    最后,重新再上传主题,就发现可以上传了:
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服