[英]What is mod_php?
mod_php
表示 PHP,作为Apache 模块。
基本上,当将mod_php
作为 Apache 模块加载时,它允许 Apache 解释 PHP 文件(那些由mod_php
解释) 。
编辑:使用 Apache 时,有(至少)两种运行 PHP 的方式:
mod_php
) :PHP 解释器被“嵌入”在 Apache 进程中:没有外部 PHP 进程——这意味着 Apache 和 PHP 可以更好地通信。
并在评论后重新编辑:使用 CGI 或mod_php
取决于您:这只是您的网络服务器配置的问题。
要知道您的服务器上当前使用的是哪种方式,您可以检查phpinfo()
的输出:应该有一些东西表明 PHP 是通过mod_php
(或mod_php5
)还是通过 CGI 运行。
您可能还想看看php_sapi_name()
函数:它返回 Web 服务器和 PHP 之间的接口类型。
如果您检查 Apache 的配置文件,在使用mod_php
,应该有一个LoadModule
行,如下所示:
LoadModule php5_module modules/libphp5.so
(右侧的文件名可以不同——例如,在 Windows 上,它应该是.dll
)
这个答案来自TuxRadar :
通过 Web 服务器运行 PHP 时,有两种不同的选择:使用 PHP 的 CGI SAPI 运行它,或将其作为 Web 服务器的模块运行。 每个都有自己的好处,但总的来说,该模块通常是首选。
将 PHP 作为 CGI 运行意味着您基本上告诉您的 Web 服务器 PHP 可执行文件的位置,并且服务器运行该可执行文件,并在您每次访问页面时为其提供您调用的脚本。 这意味着每次加载页面时,PHP 都需要读取 php.ini 并设置其设置,它需要加载其所有扩展,然后它需要开始解析脚本——有很多重复的工作。
当您将 PHP 作为模块运行时,PHP 确实位于您的 Web 服务器中——它只启动一次,只加载一次设置和扩展,还可以跨会话存储信息。 例如,PHP 加速器依赖于 PHP 能够跨请求保存缓存数据,这在使用 CGI 版本时是不可能的。
使用 PHP 作为模块的明显优势是速度 - 如果从 CGI 转换为模块,您将看到速度的大幅提升。 许多人,尤其是 Windows 用户,没有意识到这一点,并继续使用 php.exe CGI SAPI,这是一种耻辱——该模块通常快三到五倍。
不过,使用 CGI 版本有一个关键优势,那就是每次加载页面时 PHP 都会读取其设置。 当 PHP 作为模块运行时,您在 php.ini 文件中所做的任何更改都不会生效,直到您重新启动 Web 服务器,如果您正在测试大量新设置并希望看到即时响应,这使得 CGI 版本更可取。
您的服务器需要安装 php 模块,以便它可以解析 php 代码。
如果你在 ubuntu 上,你可以很容易地做到这一点
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
否则你可以用 php 编译 apache: http : //dan.drydog.com/apache2php.html
指定您的服务器操作系统将有助于其他人更具体地回答。
这意味着您必须将 PHP 作为模块安装在 Apache 中,而不是将其作为 CGI 脚本启动。
除了这些答案之外,mod_php 是 HTTPD 服务器中可用的最古老和最慢的使用 PHP 的方法。 不推荐使用,除非您运行的是旧版本的 Apache HTTPD 和 PHP。 PHP-FPM 和 proxy_cgi 是首选方法。
mod_php 是一个 PHP 解释器。
从文档中,mod_php 的一个重要问题是,
“mod_php 不是线程安全的,并迫使您坚持使用 prefork mpm(多进程,无线程),这是最慢的配置”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.