PHP能不能成功的在Apache服务器上运行,就看咱们如何去配置PHP的运行方式。PHP运行目前为止主要有三种方式:php
a、以模块加载的方式运行,初学者可能不容易理解,其实就是将PHP集成到Apache服务器,以同一个进程运行。html
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的链接。下面我就分别配置这三种运行方式:shell
一、不管上述哪一种方式运行,下面的配置一般都会加上,解压PHP安装包到c:/PHP5/,重命名PHP.ini-recommend文件为PHP.ini,分别寻找以下字段编辑,去除前面的分号(注意不要去错分号,好可能是注释信息,仔细辨认)。apache
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
二、以模块的方式运行,在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/会出现以下界面:注意红色部分和配置的关系app
三、cgi的方式运行,须要作以下的配置php配置文件spa
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(); ?>
最后咱们访问http://localhost/cgi-bin/test.cgi,出现以下结果则说明配置成功了:
若是同时打开多个则会有不少php-cgi.exe,而且在执行完成以后消失:
四、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的运行方式,因为做者本人的水平有限,错误之处在所不免!