使用 mod_fcgid 而不是 mod_php

使用 mod_fcgid 而不是 mod_php

在 ubuntu 和 centos 上我应该怎么做才能使用 mod_fcgid 而不是 mod_php。两者之间的主要优点和区别是什么

答案1

mod_php:

  • 比 mod_fcgid 快一点
  • 在httpd进程下运行
  • 可以访问 apache api(de.php.net/manual/en/ref.apache.php)
  • 不适合共享主机,因为所有域名都在同一个用户下运行

mod_fcgid:

  • 脚本在您想要的用户下运行(适用于共享主机)
  • 增强安全性
  • 可以运行的不仅仅是 php
  • 您可以运行多个 php 版本,即 php4、php5、php5.1、php5.2、php 5.3

答案2

在我的共享托管平台上,我使用 FastCGI 来运行 PHP,而不是直接调用它。它们默认通过 CGI 而不是模块来运行 PHP,因此对我来说,只需将以下内容添加到我的.htaccess文件即可:

 AddHandler application/myphp .php
 Action application/myphp /cgi-bin/myphp.fcgi

接下来我必须myphp.fcgi在我的 cgi-bin 目录中创建包含以下内容的脚本:

#!/bin/sh

# This ensures PHP doesn't try to run it's own
# process manager.
export PHP_FCGI_CHILDREN=0

# Replace this shell image with a PHP
# image.
exec /path/to/php -c /path/to/my/php.ini

这对我来说运行得很顺利,我的托管环境在硬件负载平衡器后面的近十几台服务器的集群中运行。

答案3

cgi = 每个请求都启动一个进程并将结果返回给客户端 fcgi = 应用程序(例如 Ruby/Django)或解释器(PHP)保持运行并且 Web 服务器转发请求并从中获取响应。

FastCGI 几乎总是更快(对于支持它的东西),但是一些非常古老的东西(例如 nagios)需要 cgi。cgi 的唯一真正优势是,在没有流量脚本的情况下,cgi 应用程序不占用内存,但通常 web 服务器足够智能,可以关闭一段时间未使用的 FastCGI 应用程序,所以这不是真正的优势

相关内容