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

1.服务器是怎样运行的php文件?
我想路过了解服务器的执行解析过程,那摩在配置php和服务器就能够更好的理解
服务器接收到php文件的请求,首先要获得php的各种资源,扩展库,php路径,而php也需要了解服务器的位置等信息,服务器把php作为解释php文件的工具

谁能够具体说下这个过程怎样实现的,服务器启动加载了什么,那些东西有什么用途,php配置中各部分资源路径的设置时不是最重要的?

问题2笔录:我想装个php_curl.dll扩展,怎样做,我知道要拷到php的扩展目录ext下,在php配置中指定扩展目录路径,当加载扩展时,到这个目录提取扩展模块
extension=php_curl.dll表示要加载这个扩展

可还要做些什么吗,我看到有说还要考些dll,路ssleay32.dll等到C:\WINDOWS\system32里,为什么要这样做,C:\WINDOWS\system32的作用是什么,是为服务器服务的?服务器中配置中指明了这个目录,要从中加载这些dll?这些dll的作用是什么?

问题3:服务器启动 php启动是怎样的过程呢?

问题4.我想要很好的了解,需要详细了解php 和服务器中每个目录放置的文件的用途,很多我都不清楚,路php.exe,php-cgi.exe,php-win.exe,是什么应用程序?

问题5.还有php的相关资源要到哪里下载呢,路curl扩展都找不到,有没有好点的全些的中文资源站,php。net 是英文的,看不太懂

问题6:还有很多很多问题?
我是very菜鸟,对网络技术很感兴趣,可很多事情都是基础东西没有掌握,不会设置,而止步,路一些编程工具都找不到下载地址

问题太多了,哪位好朋友愿意帮助下,谢谢了,祝您心想事成,每天happy

问题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:一步一步来吧,不要着急哦,老手都是从菜鸟起步的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-04
转载以下,希望对你有帮助:

你有没有想过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生命周期就结束了。要注意的是,只有在服务器没有请求的情况下才会执行“启动第一步”和“关闭第二步”。
第2个回答  2011-04-29
这些东西给你解释了你也一时半会的理解不了,刚学的话,建议你下载个集成环境的安装包,例如:phpnow 一般的需要的扩展它都帮你搞定了。(包括php常搭配的mysql数据库都帮你安装好)

文档的话你可以搜索:php中文文档(.chm格式)很多的。下载一个。。。
第3个回答  2011-05-20
只有在服务器没有请求的情况下才会执行本回答被提问者采纳
第4个回答  2011-04-30
下载lamp套件 用eclipse php开发 吧php代码放在apache的htdocs目录下 然后eclipse php下运行php代码

相关了解……

你可能感兴趣的内容

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