zoukankan      html  css  js  c++  java
  • php运行方式

    一篇文章:

    Window下PHP三种运行方式图文详解

    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(); 
    ?> 
     
     
    如果同时打开多个则会有很多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文件: 
     
    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文件: 
  • 相关阅读:
    71 是否同一棵二叉搜索树(25 分)
    75 平衡二叉树的根(25 分)
    72 树种统计(25 分)
    2018(容斥定理 HDU6286)
    直观的理解计算机中的数值编码
    如何关闭emacs开启时自己打开的欢迎界面
    图论:最短路径:广度优先搜索(C语言实现)
    ubunut 14.04 将Caps Lock设置为Control
    邻接表:C语言实现
    队列(C语言实现)
  • 原文地址:https://www.cnblogs.com/youxin/p/4139256.html
Copyright © 2011-2022 走看看