Window下PHP三种运行方式图文详解
程序员文章站
2022-06-29 17:21:01
php能不能成功的在apache服务器上运行,就看我们如何去配置php的运行方式。php运行目前为止主要有三种方式: a、以模块加载的方式运行,初学者可能不容易理解,其实就...
php能不能成功的在apache服务器上运行,就看我们如何去配置php的运行方式。
php运行目前为止主要有三种方式:
a、以模块加载的方式运行,初学者可能不容易理解,其实就是将php集成到apache服务器,以同一个进程运行。
b、以cgi的方式运行,cgi英文叫做公共网关接口,就是apache在遇到php脚本的时候会将php程序提交给cgi应用程序(php-cgi.exe)解释,解释之后的结果返回给apache,然后再相应请求的用户。
c、以fastcgi的方式运行。这种形式是cgi的加强版本,cgi是单进程,多线程的运行方式,程序执行完成之后就会销毁,所以每次都需要加载配置和环境变量fork-and-execute(创建-执行)。而fastcgi则不同,fastcgi 像是一个常驻 (long-live) 型的 cgi,它可以一直执行着,只要激活后,不会每次都要花费时间去 fork 一次。fastcgi进程管理器自身初始化,启动多个cgi解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自web server的连接。下面我就分边配置这三种运行方式:
1、无论上述哪种方式运行下面的配置通常都会加上,解压php安装包到c:/php5/,重命名php.ini-recommend文件为php.ini,分别寻找如下字段编辑,去除前面的分号(注意不要去错分号,好多是注释信息,仔细辨认)。
error_reporting = e_all //开启报错,便于程序员查错 line 342
display_errors = on //显示错误 line 373
extension_dir = "c:/php5/ext" //php的扩展选项文件所在的目录 line 542
date.timezone = asia/shanhai //时区配置 line 716
2、以模块的方式运行,在apache(c:/program files/apache software foundation/apache2.2/conf)的配置文件里添加如下配置
loadmodule php5_module "c:/php5/php5apache2_2.dll" //大约line 127
phpinidir "c:/php5/php.ini"
//修改配置
directoryindex index.html index.php//追加index.php
addtype application/x-httpd-php .php //line 408左右添加
接着我们在apache的根目录下面,默认c:/program files/apache software foundation/apache2.2/htdocs新建php文件index.php,编辑添加如下代码:
<?php
phpinfo();
?>
然后我们在地址栏输入http://localhost/会出现如下界面:注意红色部分和配置的关系
3、cgi的方式运行,需要做如下的配置首先php配置文件
cgi.force_redirect = 0 //本来是 1 并且去掉注释符号;
修改apache的配置,去掉原来的模块配置
addtype application/x-httpd-php .php
loadmodule php5_module "c:/php5/php5apache2_2.dll"
phpinidir "c:/php5/php.ini"
=>加入以下配置
addhandler cgi-script .cgi // line 396
然后我们在目录c:/program files/apache software foundation/apache2.2/cgi-bin新建一个cgi文件test.cgi编写如下代码:
#!c:/php5/php-cgi.exe
<?
php php phpinfo();
?>
loadmodule fcgid_module modules/mod_fcgid.so // line 128追加
fcgidinitialenv phprc "c:/php5" //php配置文件 line 129追加
addhandler fcgid-script .php //添加句柄 即后缀 什么样的文件需要fastcgi解释 line 407追加
fcgidwrapper "c:/php5/php-cgi.exe" .php //解释器路径 line 408
options indexes followsymlinks execcgi //line 221 追加 execcgi 意思是目录允许执行cgi脚本
是否成功安装,只需要做个php文件检查就可以了,我们就用上面的index.php文件:
终于把php的运行方式讲完了,初学者一定要亲自试验一下,这篇教程具有一定的难度,要反复思考才能理解其中的意思,涉及到一些专业知识,当然你暂时可以直接使用模块运行方式,等自己对php有了一定的理解之后可以再回头看看这篇文章,今天我花了几个小时的时间整理php的运行方式,由于作者本人的水平有限,错误之处在所难免!
php运行目前为止主要有三种方式:
a、以模块加载的方式运行,初学者可能不容易理解,其实就是将php集成到apache服务器,以同一个进程运行。
b、以cgi的方式运行,cgi英文叫做公共网关接口,就是apache在遇到php脚本的时候会将php程序提交给cgi应用程序(php-cgi.exe)解释,解释之后的结果返回给apache,然后再相应请求的用户。
c、以fastcgi的方式运行。这种形式是cgi的加强版本,cgi是单进程,多线程的运行方式,程序执行完成之后就会销毁,所以每次都需要加载配置和环境变量fork-and-execute(创建-执行)。而fastcgi则不同,fastcgi 像是一个常驻 (long-live) 型的 cgi,它可以一直执行着,只要激活后,不会每次都要花费时间去 fork 一次。fastcgi进程管理器自身初始化,启动多个cgi解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自web server的连接。下面我就分边配置这三种运行方式:
1、无论上述哪种方式运行下面的配置通常都会加上,解压php安装包到c:/php5/,重命名php.ini-recommend文件为php.ini,分别寻找如下字段编辑,去除前面的分号(注意不要去错分号,好多是注释信息,仔细辨认)。
复制代码 代码如下:
error_reporting = e_all //开启报错,便于程序员查错 line 342
display_errors = on //显示错误 line 373
extension_dir = "c:/php5/ext" //php的扩展选项文件所在的目录 line 542
date.timezone = asia/shanhai //时区配置 line 716
2、以模块的方式运行,在apache(c:/program files/apache software foundation/apache2.2/conf)的配置文件里添加如下配置
复制代码 代码如下:
loadmodule php5_module "c:/php5/php5apache2_2.dll" //大约line 127
phpinidir "c:/php5/php.ini"
//修改配置
directoryindex index.html index.php//追加index.php
addtype application/x-httpd-php .php //line 408左右添加
接着我们在apache的根目录下面,默认c:/program files/apache software foundation/apache2.2/htdocs新建php文件index.php,编辑添加如下代码:
复制代码 代码如下:
<?php
phpinfo();
?>
然后我们在地址栏输入http://localhost/会出现如下界面:注意红色部分和配置的关系
3、cgi的方式运行,需要做如下的配置首先php配置文件
复制代码 代码如下:
cgi.force_redirect = 0 //本来是 1 并且去掉注释符号;
修改apache的配置,去掉原来的模块配置
复制代码 代码如下:
addtype application/x-httpd-php .php
loadmodule php5_module "c:/php5/php5apache2_2.dll"
phpinidir "c:/php5/php.ini"
=>加入以下配置
复制代码 代码如下:
addhandler cgi-script .cgi // line 396
然后我们在目录c:/program files/apache software foundation/apache2.2/cgi-bin新建一个cgi文件test.cgi编写如下代码:
复制代码 代码如下:
#!c:/php5/php-cgi.exe
<?
php php phpinfo();
?>
如果同时打开多个则会有很多php-cgi.exe,并且在执行完成之后消失:
4、php的fastcig方式运行,首先需要去下载fastcgi模块,默认是没有带这个模块的,而cgi是自带的;下载地址http://httpd.apache.org/mod_fcgid/;解压复制其中的mod_fcgid.so和mod_fcgid.pdb,接下来做如下的配置:
复制代码 代码如下:
loadmodule fcgid_module modules/mod_fcgid.so // line 128追加
fcgidinitialenv phprc "c:/php5" //php配置文件 line 129追加
addhandler fcgid-script .php //添加句柄 即后缀 什么样的文件需要fastcgi解释 line 407追加
fcgidwrapper "c:/php5/php-cgi.exe" .php //解释器路径 line 408
options indexes followsymlinks execcgi //line 221 追加 execcgi 意思是目录允许执行cgi脚本
是否成功安装,只需要做个php文件检查就可以了,我们就用上面的index.php文件:
终于把php的运行方式讲完了,初学者一定要亲自试验一下,这篇教程具有一定的难度,要反复思考才能理解其中的意思,涉及到一些专业知识,当然你暂时可以直接使用模块运行方式,等自己对php有了一定的理解之后可以再回头看看这篇文章,今天我花了几个小时的时间整理php的运行方式,由于作者本人的水平有限,错误之处在所难免!
上一篇: 吃饼不消化怎么办