好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

fastcgi支持PHP fastcgi支持PHP

很多站长朋友们都不太清楚fastcgi支持PHP,今天小编就来给大家整理fastcgi支持PHP,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 cgi、fastcgi、php-cgi、php-fpm异同 2、 如何配置apache以fastcgi模式运行php 3、 如何判断php是否支持fastcgi cgi、fastcgi、php-cgi、php-fpm异同

1. cgi

    - 通用网关接口,就是外部应用程序(cgi程序)与web服务器之间的接口标准。

    - nginx是内容分发者,如果是请求index.php,根据配置文件内容得知不是静态文件,就会去找对应的cgi程序进行解析

    - cgi就是规定要传那些数据,以什么格式传递给后方进行处理的协议

    - cgi工作模式,一个请求发送过来,启动cgi解释器(创建进程)-> 逻辑处理 -> 退出 (fork and exec 模式) 每次都需要重新创建进程,加载配置,浪费系统资源

2. fastcgi

    - 快速通用网关接口,常驻型的cgi,不用每次都fork进程,其会使cgi解解释器进程常驻内存,所以性能较高

    - master-worker模型,服务器启动时载入fastcgi进程管理器

    - fastcgi会进行自身初始化,初始化时会创建多个进程

    - 请求到达web服务器后,fastcgi进程管理器会选择并通过socket连接到一个cgi解释器

3. php-cgi

    - php自带的cgi管理器

    - php-cgi的缺点,不能平滑重启,需要重启php-cgi才能使php.ini生效

4. php-fpm

    - php-fpm是php的一种fastcgi的实现,管理php的fastcgi进程池

    - 能够调度php-cgi程序

    - 能够实现平滑重启

    - php-fpm创建一个master进程,然后创建进程池,监听socket,fork出多个子进程,子进程各自accept请求,php-fpm的子进程同时只能响应一个请求,处理完一个请求才可以accept下一个请求,多进程,同步阻塞模型

    - master和worker进程之间不直接进行通信,master通过共享内存获取worker进程信息,master进程发送信号通知worker进程

    - php-fpm可以同时监听多个端口,每个端口对应一个worker pool

    - worker是cgi程序,php-fpm是fastcgi协议的php是实现

如何配置apache以fastcgi模式运行php

第一步:下载安装的文件

1. Apache 版本 httpd-2.2.21-win32-x86-no_ssl.msi

2. mod_fcgid 版本 mod_fcgid-2.3.6-win32-x86.zip

3. MySQL 版本 mysql-5.5.19-win32.msi

4. PHP 版本 php-5.3.5-nts-Win32-VC6-x86.zip

提示:

1. 建议选择无SSL功能的Apache版本来完成开发,我们这里使用了httpd-2.2.21-win32-x86-no_ssl.msi。

2. 建议选择由Apache官方所提供的mod_fcgid 作为FastCGI模块。我们这里使用目前最新版本2.3.6。 mod_fcgid官方地址

3. Windows下安装MySQL就选择.msi安装包格式,我们选择了mysql-5.5.19-win32.msi ,双击根据向导安装即可,简单方便。

4. PHP我们选择用php-5.3.5-nts-Win32-VC6-x86.zip 这个版本。这个是nts(非线程安全)版本,是针对PHP的FastCGI安装方式。

第二步:安装文件

1. 在要安装的磁盘建一个文件夹。为了以后管理方便我们在D盘的根目录下创建一个WAMP文件夹。 D:\WAMP(WAMP是 windows+apache+mysql+php的缩写)。

2. 在WAMP文件夹下创建一个WWW文件夹,用来存放你的PHP网站程序。D:\WAMP\WWW。

3. 安装Apache服务器,把Apache服务器安装到 D:\WAMP\Apache 文件夹。具体Apache安装过程可以参考文档 Apache安装图解。

4. 把下载的php-5.3.5-nts-Win32-VC6-x86 解压到 D:\WAMP\PHP 文件夹。

5. 安装MySql数据库,把MySQL安装到 D:\WAMP\MySQL文件夹。具体MySQL安装过程可以参考文档MySQL安装图解。

第三步:配置 Apache

首先使用文本编辑工具(推荐 EditPlus )打开 D:\WAMP\Apache\conf\httpd.conf 文件,这个文件是Apache的配置文件,下面几步都是在修改这个文件的内容。

要注意的是修改完 httpd.conf 文件需重新启动Apache服务,新设置才会生效。

1. 设置监听端口

打开 httpd.conf 文件后,找到 Listen(大概在第46行),将它后面的数字改为8080,如下:

Listen 8080

这个参数用来设置Apache服务器的监听端口,一般默认为80。修改为8080 是为了避免和Windows 2003系统的IIS端口号冲突,如果你没有启用IIS,也可以使用默认的80端口号。

2. 修改网站存放目录

我们知道Apache默认的网站存放目录为Apache安装目录下的htdocs文件夹。当你更改网站存放目录,就必须修改相应的Apache配置。

在配置文件 httpd.conf 中查找 DocumentRoot,将其修改为指向网站目录的正确文件夹。我们这里改为

DocumentRoot "D:/WAMP/www"

同时,查找 This should be changed to whatever you set DocumentRoot to,在它下面有行 <Directoy 默认的DocumentRoot >,将其修改为你自己配置的DocumentRoot 路径。我们这里修改为:

<Directory "D:/WAMP/www">

3. mod_fcgid 配置

我们将下载的 mod_fcgid-2.3.6-win32-x86.zip 压缩包中的“mod_fcgid.so”文件复制到apache的“modules”目录。

打开 httpd.conf 文件,在最后加入如下配置:

LoadModule fcgid_module modules/mod_fcgid.so

<IfModule mod_fcgid.c>

AddHandler fcgid-script .fcgi .php

#php.ini的存放目录

FcgidInitialEnv PHPRC "D:/WAMP/PHP"

# 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出

FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000

#php-cgi每个进程的最大请求数

FcgidMaxRequestsPerProcess 1000

#php-cgi最大的进程数

FcgidMaxProcesses 5

#最大执行时间

FcgidIOTimeout 120

FcgidIdleTimeout 120

#php-cgi的路径

FcgidWrapper "D:/WAMP/PHP/php-cgi.exe" .php

AddType application/x-httpd-php .php

</IfModule>

修改DocumentRoot 路径的配置为:

<Directory "D:/WAMP/WWW">

Options Indexes FollowSymLinks ExecCGI

Order allow,deny

Allow from all

AllowOverride All

</Directory>

注意:上面红色文字部分。在option中添加一个属性ExecCGI

4. 修改目录首页文件

在配置文件 httpd.conf 中查找 DirectoryIndex index.html 将其修改成:

DirectoryIndex index.html index.htm index.php

DirectoryIndex 指的是当客户浏览器访问的路径是一个目录时,Apache默认执行的文件。

以我们所修改的为例:当客户浏览器访问一个目录时,Apache会去找该目录下的index.html,如果没有再找index.htm,还没有再找 index.php。都找不到则默认显示该目录下的文件列表。参考文档:如果防止Apache显示文件列表

第四步:配置PHP

打开PHP安装目录,即D:\WAMP\PHP,我们可以看到目录下有两个这样的文件 php.ini-development 和 php.ini-production,第一个是开发使用的配置文件,第二个是生产环境的配置,因为我们是在本机做开发,所以选择前者。将php.ini-development复制一份到同目录下,并改名为 php.ini。这个php.ini 就是当前使用的配置文件,以下几步都是在修改这个php.ini文件的内容。要注意的是,修改php.ini文件后需重新启动Apache服务,新设置才会生效。

1. 指定PHP扩展库的存放目录

在Windows下PHP的扩展库通常以 DLL 形式存放在PHP的ext目录中。

使用文本工具打开php.ini文件,查找extension_dir = "ext",也就是在 On windows 下面那一行。把它前面的分号“;”去除掉,改为如下:

extension_dir = "D:/WAMP/PHP/ext"

extension_dir 表示PHP扩展库的具体目录,以便调用相应的DLL文件。

2. 开启相应的扩展库

默认情况下许多PHP的扩展库都是关闭的,比如默认PHP不支持连接Mysql数据库,需开启相应的扩展库。

这里我们开启一些常用的扩展库。

查找 ; Windows Extensions(大概在941行),在它的下面是extension列表。

找到如下扩展:

;extension=php_curl.dll

;extension=php_gd2.dll

;extension=php_mbstring.dll

;extension=php_exif.dll

;extension=php_mysql.dll

;extension=php_mysqli.dll

;extension=php_pdo_mysql.dll

;extension=php_pdo_odbc.dll

;extension=php_sockets.dll

;extension=php_xmlrpc.dll

;extension=php_xsl.dll

把以上extension 前面的分号 “;” 去掉。如果你希望加载其它扩展模块,方法相同,只要去掉前面的分号即可。

提示1:重启Apache提示 “unable to load dynamic library......php_curl.dll”,加载php_curl.dll错误。解决方法是拷贝 PHP 目录下的 libeay32.dll 和 ssleay32.dll 到 windows 目录或 windows/system32 目录下,只要是系统 Path 环境变量里包含的路径就可以。如果不想拷贝,你也可以直接把 PHP 路径放到系统 Path 环境变量里。 右击我的电脑=>属性=>高级=>环境变量=>系统变量里有个Path,双击打开,把你的PHP路径加个分号“;”再前面( ;D:\WAMP\PHP ),添加进去就OK了。重启Apache不再提示该错误。

提示2:Exif 扩展是用来显示图片的 exif 信息的,因为该扩展需要 mbstring.dll 支持,所以必须将 extension=php_exif.dll 这一行写到extension=php_mbstring.dll 的后面。

提示3:如果PHP自带的扩展库不能满足你的需要,你可以去 pecl.php.net 查找并下载你需要的库。windows用户可以去 pecl4win.php.net 或者 下载已经编译好的DLL文件,也可以去 载PECL集合压缩包。

提示4:很多人在找php_zip.dll,其实从php5.3开始已经集成了zip扩展,你可以用<?php phpinfo() ?> 找到zip扩展的说明。

3. 让PHP支持短标签

在 php.ini 配置文件查找 short_open_tag = Off (大概在266行)把它修改成:short_open_tag = On 让其支持短标签。

php的代码一般包含在<?php .... ?>的标签内,设置 short_open_tag = On 之后,可以写成更简洁的形式:<? .... ?>。

4. 配置PHP的Session功能

在使用session功能时,我们必须配置session文件在服务器上的保存目录。我们需要为session建立一个可读写的目录,这个目录最好独立于网站目录之外。

这里把目录上建在了D:\WAMP\sessiontmp,然后在 php.ini 配置文件中找 ;session.save_path = "/tmp" (大概在1467行),去掉前面的分号“;” ,改为如下:

session.save_path = "D:/WAMP/sessiontmp"

如何判断php是否支持fastcgi

支持的!CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等

关于fastcgi支持PHP的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于fastcgi支持PHP fastcgi支持PHP的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did210759
更新时间:2023-05-03   阅读:17次

上一篇: php保留html输入 html保存input输入的值

下一篇:php短信定时发送 php定时发布文章

最新资料更新

  • 1.phpvc6vc9的简单介绍
  • 2.php获取阴历 php获取日期
  • 3.php输出jq代码 php输出hello
  • 4.token验证php Token验证失败异地登陆什么意思
  • 5.php的token请求 php简单的token验证
  • 6.php变量获取图片 php调用图片
  • 7.php代理访问源码 php 代理
  • 8.phph5开发 php开发程序
  • 9.php图片打不开 php打不开文件
  • 10.php体彩投注 体彩官方投注
  • 11.php下载csv乱码 php下载文件名乱码
  • 12.php判断多个数字 php判断字符串是否为数字
  • 13.php薪资1680 php一个月能挣多少钱
  • 14.php正则获取图片 php使用正则表达式
  • 15.包含phpautoconf的词条
  • 16.主流php框架比较 php框架排行2020
  • 17.手机文件php怎么打开 手机php格式文件怎么打开
  • 18.关于PHPchmod的信息
  • 19.php手机qr php手机编程软件
  • 20.php协议input php协议,json

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]