zoukankan      html  css  js  c++  java
  • Web服务器处理动态程序三种方式及Apache配置

    模块、CGI、FastCGI三种方式介绍

    以PHP脚本为例:

    模块方式是指Web服务器通过libphp5.so模块调用PHP服务,模块将相关函数嵌入Web服务请求处理流程,不需要额外解释器进程。注意,libphp5.so是PHP提供的,不是apache自带的。

    CGI模式是指Web服务器在本地启动一个解释器进程执行PHP脚本,解释完毕后关闭进程。这种方式只适用于本地,并且是串行执行,效率较低。

    FastCGI模式是指由单独的进程管理器如PHP-FPM启动并管理多个解释器进程,Web服务器只需将脚本传给相应端口即可执行,解释完毕后解释器进程不关闭,等待下一个请求。这种方式既适用于本地,也适用于分布式架构,并且多个进程并行处理,效率较高。

    简单总结:假设Web服务器是一家公司,模块方式是自己有多个部门,遇到问题能自己解决;CGI模式是自己部门不多,遇到事情就临时成立工作组,完成后就解散;FastCGI模式是自己专做擅长的事情,遇到其他问题选择外包给其他公司。你看,这和公司的演变很像吧!

    我一直觉得不论是技术还是社会都有一个基本的思维范式:分层、分类、分工。

    用Apache实现这三种方式

    1.PHP模块

    vim /etc/httpd/conf/httpd.conf  
    
    DirectoryIndex index.php index.html index.html.var
    LoadModule php5_module modules/libphp5.so
    <IfModule mime_module>
    AddType application/x-httpd-php .php
    AddType applicaiton/x-httpd-php-source .phps
    
    /etc/init.d/httpd restart
    

    2.CGI模式

    vim /etc/httpd/conf/httpd.conf 
    
    #LoadModule php5_module modules/libphp5.so
    Action application/x-httpd-php /cgi-bin/php-cgi
    
    cp /usr/bin/php-cgi /var/www/cgi-bin/
    /etc/init.d/httpd restart
    

    3.FastCGI模式

    待续

  • 相关阅读:
    线性代数回顾+深化(未完成版)
    HIT OS2020 Spring Lab2
    选择
    工业互联网
    leetcode-200 岛屿数量
    记网易面试题<二>
    记网易面试题《一》
    leetecode-14-最长公共子串-简单
    leetcode-1012 至少有1位重复的数字
    协程
  • 原文地址:https://www.cnblogs.com/Peter2014/p/7652683.html
Copyright © 2011-2022 走看看