如何使用php开发网站源码分享?简单的php网站源码

大家好,如何使用php开发网站源码分享相信很多的网友都不是很明白,包括简单的php网站源码也是一样,不过没有关系,接下来就来为大家分享关于如何使用php开发网站源码分享和简单的php网站源码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

PHP创建动态交互性站点的强有力的服务器端脚本语言,作为WEB领域的首选开发语言,因其部署简单、语法简单、开发效率高而广受开发者的喜爱。全世界80%的网站都使用PHP来开发。

但正因为这样的方便简单,很多PHP工程师都停留在使用的阶段,而没有真正的去了解过PHP的工作原理,这无疑是让大家不能深入理解到PHP的执行工作原理,结果就会导致无法对项目后期做出合理的性能优化方案

我们不要做到:“知其然而不知其所以然”\n

项目运行环境的组成部分

运行环境是一个程序语言必须条件,它是执行基础设施。

例如:打篮球需要篮球场、唱歌需要麦克风。如果没得这些条件将不能完成工作事项

PHP的执行环境可按照操作系统来划分,分别是Windows、linux、Mac系统等。虽然系统名称不一样,但是系统上面需要使用的软件都是一样的。分别是Apache、nginx、mysql、php

注:操作系统都是基于Unix内核开发出来的。Unix是基于C开发的\n

Apache和nginx都是web服务器,用于接收用户从电脑、手机软件和网页发送的http请求,可以理解为仓库的入口。

mysql是关系型的数据库,用于存储整个网站的数据内容,例如:用户信息、商品信息等。可以理解为存储商品的仓库。

PHP就是执行PHP代码的解释器,用于完成这个http请求需要所做的工作内容。可以理解为在仓库作业的工作人员。

php是nginx和mysql的中间枢纽中心,接入用户请求指令,找到对应的数据。在返回给发送方。

正是因为这系统和软件的关系,就分别产生了Windows简称的wamp、wnmp和linux下面的lanp、lnmp。就是把软件名称取其首字母组合生成。

如何接入PHP请求

用户请求接入需nginx来做,它是项目的操作入口。当我们把请求发生到nginx之后。

拿出nginx的参数配置:

server{\nlisten80;一般存放网址,表示配置的哪个项目\nroot/home/wwwroot/public;网站默认首页\n\ntry_files,按顺序检查文件是否存在,返回第一个找到的文件\n$query_string代表请求携带的参数\ntry_files$uri$uri//index.php?$query_string;当请求网站的php文件的时候,反向代理到php-fpm去处理\nlocation~\\.php${\nincludefastcgi_params;设置phpfastcgi进程监听的IP地址和端口\nfastcgi_indexindex.php;设置脚本文件请求的路径\n}\n}\n

nginx有如下步骤:

nginx会根据过来的http请求头里的Host字段里的值,来判断使用哪个server{}。如果请求头里没有Host字段,或者Host字段里的值,和Nginx配置文件里的server{}里的{server_name}都不匹配,则使用第一个server{},来处理这个请求nginx会首先测试HTTP请求的IP地址和端口号是否与server.listen中的IP:Port一致,然后再测试”Host”请求头字段的值是否与server.server_name中的name一致。如果都没有一致,则选择default_server进行处理。nginx首先查找最详细具体的prefixlocation记录,根据请求文件的来进行规则的匹配。

例如:toutiao.com/index.php请求匹配了/并且匹配”\\.php$”,因此,根据location的配置,将该请求发送给localhost:9000的FastCGI服务器.

fastcgi_param参数设置了SCRIPT_FILENAME值为/home/wwwroot/public/index.php,由该fastcgiserver执行该文件。其中:$document_root为root指定的配置,$fastcgi_script_name为请求URI,如这里为/index.php

最终根据规则的匹配把请求发生给PHP,然后再来解析PHP代码\n

PHP请求执行是谁来做?

nginx和php是2个软件,它们的之间的通信不在用普通的http协议来发送数据,因为nginx是web服务器,php是应用服务器,启动后由PHP-FPM来管理进程。nginx和php-fpm之间的传输协议采用fast-cgi,而不是默认的http协议。

fastcgi协议

fastcgi协议用来确定webserver(例如nginx),也就是内容分发服务器传递过来什么数据,什么样格式的数据

php-fpm进程管理器

php-fpm是对fastcgi协议的实现,是进程管理器,启动时包括master和worker进程俩部分,master进程监听端口,接收来自webserver请求,worker进程一般具有多个,每个worker进程都有一个cgi进程解释器,用来执行php代码

完整工作流程解析

用户发送请求会从解析域名开始,然后再发送服务器、执行响应结果。完成流程如下

用户输入域名访问网址—>域名进行DNS解析—>拿到对应IP服务器和端口—>nginx监听到对应端口的请求—>nginx对url进行location匹配—>执行匹配location下的规则—>nginx转发请求给php的进程—>php-fpm的master进程监听到nginx请求—>master进程将请求分配给其中一个闲置的worker进程—>worker进程执行请求—>worker进程执行结果通过标准输出stdout返回给nginx—>nginx通过HTTP协议html返回给客户端—>客户端在解析dom树,最终呈现页面

如有感悟,欢迎关注(* ̄︶ ̄)

文章到此结束,如果本次分享的如何使用php开发网站源码分享和简单的php网站源码的问题解决了您的问题,那么我们由衷的感到高兴!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平