很想知道服务器是怎样运行的php文件

作者&投稿:曲海 (若有异议请与网页底部的电邮联系)
想运行一个php文件~

1. 打开编辑器
<?php
echo "Hello World";
?>
保存为test.php,放在xampp的htdocs文件夹下
2.运行xampp
3.打开浏览器
输入http://localhost/test.php,就可以运行了(不可以直接右键用chrome等打开 显示不出来正确结果)

WAMP、LAMP里,A是Apache,P是PHP,PHP在Apache下一般是以服务器模块方式安装,这些模块在Apache体系结构里属于可选功能层,Apache用apr_proc_create()函数为每个模块创建一个子进程,每个进程的内存空间独立,可以防止互相干扰。
WNMP、LNMP里的N是Nginx,Nginx主要通过FastCGI接口调用PHP之类的外部程序。
FastCGI是一个编程接口,可以将HTTP服务器和脚本解析服务器分开。Apache、Nginx、Lighttpd都实现了FastCGI接口。
如果想找个实现FastCGI接口的例子,推荐看Nginx的源码(ngx_http_fastcgi_module.c)。
Apache源码里跟FastCGI接口有关的大致是这几个文件:
fcgistarter.c
fcgi_protocol.h
mod_proxy_fcgi.c
更多内容可以搜“Apache源码分析”、“Nginx源码分析”、“FastCGI”。

问题1.服务器是怎样运行的php文件?
服务器启动时会根据配置文件来确定加载哪些模块,比如安装并配置了PHP后,服务器(比如Apache)的配置文件中便有了这个模块,启动时就会加载它。裆服务器接收到请求时,如果请求的是单纯的HTML页面,服务器(比如Apache)会直接把这个页面返回给请求。如果是PHP页面,服务器(比如Apache)会识别php页面中的php标签<?php ?>,并调用PHP模块来执行PHP文件,执行完后,将结果返回给请求。
问题2:C:\WINDOWS\system32文件夹下放置了windows系统公用的一些动态连接库、系统支持文件等,这些文件被系统上的多个程序公用,比如system32下的net.exe,它的作用就是提供网络支持配置等,你在设置网络连接、网上邻居甚至用IE上网时都可能会调用这个文件。因此,system32包括了但不限于为服务器服务的文件。以php_curl.dll为例,php_curl.dll并不是独立就可以工作的,它也需要其他的扩展来支持,而这些扩展就可能包括系统system32下的ssleay32.dll,如果你的system32下没有这个dll,那么你当然需要拷贝一个过来了。
问题3:服务器启动 php启动是怎样的过程呢?
服务器启动跟PHP启动没有直接关系。PHP仅仅提供对PHP文件的解释,服务器则是对外提供web服务。服务器之所以加载PHP是因为页面是用PHP写的,需要PHP来执行,否则就会直接把PHP文件返回给请求了。
问题4:看你提出的问题,你应该是一个初级开发者,目前可以不用深刻的了解这些内容,等你对web开发接触一段时间后再思考这些问题更有效也更有意义。
问题5:PHP帮助文件是最好的老师。也可以到www.phpchina.com里和网友交流疑难问题。这是一个以PHP技术为中心,面向软件开发者、程序爱好者的开源技术网站及交流社区。
问题6:一步一步来吧,不要着急哦,老手都是从菜鸟起步的。

转载以下,希望对你有帮助:

你有没有想过PHP是怎么在浏览器里输出“你好世界”的?我也是看了PHP内核和扩展后才知道的。也许有些朋友也想知道其中原理,那就让我们开始吧。

在上一篇网志里我简单介绍了“在我浏览这个页面之前都发生了些什么?”这个问题。如果你错过了就点这里看看吧。现在我要讨论的是“PHP是怎样在浏览器里输出内容”这个问题。

简介

先看看下面这个过程:

1. 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;
2. PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);
3. PHP总共有三个模块:内核、Zend引擎、以及扩展层;
4. PHP内核用来处理请求、文件流、错误处理等相关操作;
5. Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
6. 扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库;
7. 当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;
8. 最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上。

深入探讨

等等,没有这么简单。以上过程只是个简略版,让我们再深入挖掘一下,看看幕后还发生了些什么。

1. Apache启动后,PHP解释程序也随之启动;
2. PHP的启动过程有两步;
3. 第一步是初始化一些环境变量,这将在整个SAPI生命周期中发生作用;
4. 第二步是生成只针对当前请求的一些变量设置。

PHP启动第一步

不清楚什么第一第二步是什么?别担心,我们接下来详细讨论一下。让我们先看看第一步,也是最主要的一步。要记住的是,第一步的操作在任何请求到达之前就发生了。

1. 启动Apache后,PHP解释程序也随之启动;
2. PHP调用各个扩展的MINIT方法,从而使这些扩展切换到可用状态。看看php.ini文件里打开了哪些扩展吧;
3. MINIT的意思是“模块初始化”。各个模块都定义了一组函数、类库等用以处理其他请求。

一个典型的MINIT方法如下:

PHP_MINIT_FUNCTION(extension_name){

/* Initialize functions, classes etc */

}

PHP启动第二步

1. 当一个页面请求发生时,SAPI层将控制权交给PHP层。于是PHP设置了用于回复本次请求所需的环境变量。同时,它还建立一个变量表,用来存放执行过程中产生的变量名和值。
2. PHP调用各个模块的RINIT方法,即“请求初始化”。一个经典的例子是Session模块的RINIT,如果在php.ini中启用了Session 模块,那在调用该模块的RINIT时就会初始化$_SESSION变量,并将相关内容读入;
3. RINIT方法可以看作是一个准备过程,在程序执行之间就会自动启动。

一个典型的RINIT方法如下:

PHP_RINIT_FUNCTION(extension_name) {

/* Initialize session variables, pre-populate variables, redefine global variables etc */

}

PHP关闭第一步

如同PHP启动一样,PHP的关闭也分两步:

1. 一旦页面执行完毕(无论是执行到了文件末尾还是用exit或die函数中止),PHP就会启动清理程序。它会按顺序调用各个模块的RSHUTDOWN方法。
2. RSHUTDOWN用以清除程序运行时产生的符号表,也就是对每个变量调用unset函数。

一个典型的RSHUTDOWN方法如下:

PHP_RSHUTDOWN_FUNCTION(extension_name) {

/* Do memory management, unset all variables used in the last PHP call etc */

}

PHP关闭第二步

最后,所有的请求都已处理完毕,SAPI也准备关闭了,PHP开始执行第二步:

1. PHP调用每个扩展的MSHUTDOWN方法,这是各个模块最后一次释放内存的机会。

一个典型的RSHUTDOWN方法如下:

PHP_MSHUTDOWN_FUNCTION(extension_name) {

/* Free handlers and persistent memory etc */

}

这样,整个PHP生命周期就结束了。要注意的是,只有在服务器没有请求的情况下才会执行“启动第一步”和“关闭第二步”。

这些东西给你解释了你也一时半会的理解不了,刚学的话,建议你下载个集成环境的安装包,例如:phpnow 一般的需要的扩展它都帮你搞定了。(包括php常搭配的mysql数据库都帮你安装好)

文档的话你可以搜索:php中文文档(.chm格式)很多的。下载一个。。。

只有在服务器没有请求的情况下才会执行

下载lamp套件 用eclipse php开发 吧php代码放在apache的htdocs目录下 然后eclipse php下运行php代码


如何知道自己电脑的服务器是哪种?
你用的是那种服务器是看你电邮的提供商,譬如 网易的就是POP3 MSN的用HMTP 一般登录你的邮箱在系统信息里可以查看

我想知道域名,空间,服务器的区别
1 域名就是我们常说的网址,比如 baidu.com ,google.com 等,域名是用来访问网站的!并且有多种后缀,常见的有.com .net .cn .org等。2 空间就是常说的虚拟主机,是从一台服务器上面划分出来的一小部分磁盘空间,用于存放站点组件,数据等信息!空间的配置低,成本低,适合中小型网站使用 如...

怎么看服务器有几颗CPU,是几核的
可以使用cmd命令查询。1、打开服务器,按快捷卡“win+R”打开运行命令,输入命令"cmd”然后按回车。2、输入代码“systeminfo”,按回车,然后在反馈的信息中可以看到处理器的数量。3、再输入代码“wmic”,按回车键。4、最后输入代码“cpu get NumberOfCores”,即可查看到服务器的核心数,如下图所示,...

我想了解一下服务器最基本的知识.
磁盘阵列卡使用专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。IA服务器 通常将采用Intel(英特尔)处理器的服务器称之为IA(Intel Architecture)架构服务器,又称CISC(Complex Instruction Set Computer复杂指令集)架构服务器,由于IA架构的服务器是基于PC的体系结构,所以...

服务器的分类?我知道大致上可以分为三类:托管、租用以及虚拟主机,我想...
虚拟专用服务器(VPS)是利用虚拟服务器软件在一台物理服务器上创建多个相互隔离的小服务器。无需任何操作系统安装工作,这些小服务器(VPS)本身就有自己操作系统,它的运行和管理与独立服务器完全相同。虚拟专用服务器确保所有资源为用户独享,给用户最高的服务品质保证,让用户以虚拟主机的价格享受到独立...

大家好,我想知道一下服务器是否关机的问题?
首先查看不到服务器的资料,并不能代表服务器关。有可能是服务器设置某些选项,如开放时间,访问IP等,还有可能是设定连接数,当访问服务器的人超过设定数量时,后来者则无法再连接。要确定服务器是否关机,建意你可以试下PING服务器,如果不能PING通则有可能是关机,但不是绝对的。

怎样判断一台电脑是服务器!
4.主板.这个我了解的比较少,很少看到服务器有主板的说法,不过我觉得应该提提服务器的总线设计——多路,就是多个CPU如何能够协调工作。有兴趣建议你看看操作系统方面的书,看老外写的,很好!5.显卡.除了图形和3D设计(那个人家好象都叫工作站,哪位达人知道请告诉我对不对),服务器上的显卡基本上...

怎样查询站点web服务器类型
没有这么问的,百web是指网络,web服务器也就是网络服务器;网络服务器,一般就是我们常见到的网页服务器,文件下载服务器等;而这类服务器有的很专一度指提供网页服务或是下载服务;还有很多两种服务都提供问的;再有的就是一些UDP服务,像QQ的服务器一样的想知道是什么类型的服务器答,那就直接打开...

想知道如何查看服务器是否被ddos攻击?
1.命令行法。2.批处理法。上述方法需要手工输入命令且如果Web服务器IP连接太多看起来比较费劲,我们可以建立一个批处理文件,3.查看系统日志。上面的DDOS攻击软件两种方法有个弊端,只可以查看当前的DDOS攻击软件CC攻击,对于确定Web服务器之前 您好以上方法都检测是否被攻击的,如果受到攻击的话,最好能...

我有一个网站,经常打不开,我想知道域名和服务器经常出现哪些问题会导致...
您好,有可能是您本身的网络环境并不是很稳定,服务器超时了,outlook就会有这种提示,避免这种提示的操作是去调整outlook中的服务器超时时间,登陆到outlook中,点击工具-帐户-选中新浪的帐户-属性-高级-服务器超时,这个选项outlook中默认的为1分钟,请向上调整一下,就会延长时间。这种提示也就会少出来...

东河区19198307393: web服务器运行php脚本语言的流程是什么? -
姬匡蚓激: web服务器是用来接收HTTP请求并响应这个请求(如按照客户端的请求去对数据库数据进行操作),通常在WEB开发中如果客户端发起请求给服务端,那么必须有WEB服务器,否则这个请求是没人收的.在早期的WEB开发中都是使用CGI来处...

东河区19198307393: 服务器是怎么运行php源码里代码的?是不是要把所有代码导入数据库才能运行?那些是驱动代码 -
姬匡蚓激: 服务器运行php代码只要安装了php的运行环境就行,跟数据库是没有关系的

东河区19198307393: hbuilder 要怎么运行php文件 -
姬匡蚓激: 如果要运行PHP文件,请在服务器环境下,用浏览器打开PHP文件.比如http://localhost/你的PHP文件.这样才能运行PHP文件.

东河区19198307393: Eclipse上写的php文件怎么在服务器上运行 -
姬匡蚓激: 1,源码在服务器上面,通过url运行2,源码在本地服务器上,通过服务器运行,和服务器差不多3,配置eclipse的php cli模式,不需要任何一种Web服务器(包括Apache或MS IIS等),只需要安装php就可以,这也是最常用的的方法~

东河区19198307393: php程序运行过程 -
姬匡蚓激: PHP就是个脚本语言,或者叫宏语言,必须得到解释器来解读....php脚本后缀需要是php,当客户发送HTTP请求获得一个php文件时,服务器不会像其他文件一样,将文件传过去,而是去解读这个文件,他只解读php标签内中的内容,这需...

东河区19198307393: 一个php文件怎么在服务器中持续运行 -
姬匡蚓激: 不用php做这个,自己写个服务,或者数据库自己也可以实现.php是服务器端动态脚本语言,生命周期有限,客户端请求,服务器运行php,php执行结束,服务器将php的结果发给客户端,所以php不会一直在运行的~

东河区19198307393: php,html,css,js,mysql的运行顺序是什么 -
姬匡蚓激: 访问一个网页,服务器运行php解析程序,解析php,当用到mysql的时候链接mysql(当php解析完毕自动断开),当php解析完毕,开始返回html,浏览器开始解析html,监测到js和css都是独立文件时(很多时候css和js的代码都在html里了),就开始请求js和css文件,具体他们两个谁先请求,不太确定,推测是,在html中的顺序,浏览器在得到html的时候就开始显示网页,css完毕的时候,整体显示完整,js需要触动.

东河区19198307393: php websocket到底怎么用?难道服务端只能用命令行来运行php文件?服务端正常应该是怎么工作的? -
姬匡蚓激: 其实就是响应一次HTTP请求,在类文件内部会分析请求的来源,安全性,完整性

东河区19198307393: 要是使用自带的红帽自带的apache服务器,如何运行php文件? -
姬匡蚓激: unix下并非root用户就能干所有的事,最典型的就是安装oracle,非得要oracle修改php.ini文件 register_globals = On ok!重新启动一下apache服务器 /

东河区19198307393: php文件怎么运行的
姬匡蚓激: 方法一:申请PHP空间,上传,用浏览器打开PHP文件在 网站上的地址即可 方法二:架设本地PHP服务器.这个具体可以网上搜. 祝你成功!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网