首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是mod_php?

什么是mod_php?
EN

Stack Overflow用户
提问于 2010-04-26 18:55:41
回答 6查看 137.6K关注 0票数 112

在执行Zend tutorial时,我遇到了以下语句:

请注意,仅当您使用mod_php时,.htaccess中的php_flag设置才有效。

有人能解释一下这是什么意思吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-04-26 18:57:28

mod_php的意思是PHP,作为一个Apache模块

基本上,当将mod_php作为Apache模块加载时,它允许Apache解释PHP文件(这些文件由mod_php__解释)。

在使用Apache时,有(至少)两种运行的方式:

使用的

  • :PHP进程是由Apache启动的,它是解释PHP代码的PHP进程,而不是Apache本身使用PHP作为Apache模块(称为mod_php__):PHP解释器就像是“嵌入”在Apache进程中:没有外部PHP进程--这意味着Apache和PHP可以更好地通信。

<代码>F218

然后重新编辑,在评论之后:使用CGI还是mod_php由你决定:这只是你的And服务器的配置问题。

要知道服务器上当前使用的是哪种方式,可以检查phpinfo()的输出:应该有一些东西表明PHP是通过mod_php (或mod_php5__)还是通过CGI运行的。

您可能还想看看函数:它返回web服务器和PHP之间的接口类型。

如果您检入Apache的配置文件,在使用mod_php时,应该有一个LoadModule行,如下所示:

LoadModule php5_module        modules/libphp5.so

(右边的文件名可以不同--例如,在Windows上,它应该是一个.dll__)

票数 166
EN

Stack Overflow用户

发布于 2010-04-26 19:19:41

此答案取自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版本更好,如果您正在测试许多新的设置,并希望看到即时响应。

票数 61
EN

Stack Overflow用户

发布于 2010-04-26 19:06:05

您的服务器需要安装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:http://dan.drydog.com/apache2php.html编译apache。

指定您的服务器操作系统将有助于其他人更具体地回答。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2712825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档