Answers:
mod_php
表示PHP,作为Apache模块。
基本上,当mod_php
作为Apache模块加载时,它允许Apache解释PHP文件(由解释mod_php
)。
编辑:使用Apache时,有(至少)两种运行PHP的方式:
mod_php
):PHP解释器便被“嵌入”到Apache进程中:没有外部PHP进程-这意味着Apache和PHP可以更好地进行通信。
并在评论后重新编辑:使用CGI还是mod_php
由您决定:这仅是Web服务器的配置问题。
要知道服务器上当前使用的是哪种方式,您可以检查以下输出phpinfo()
:应该有一些指示PHP是通过mod_php
(或mod_php5
)还是通过CGI运行的。
您可能还需要看一下该php_sapi_name()
函数:它返回Web服务器和PHP之间的接口类型。
如果您在使用时签入Apache的配置文件mod_php
,则应该有LoadModule
一行如下所示:
LoadModule php5_module modules/libphp5.so
(右侧的文件名可以不同-例如,在Windows上,应为.dll
)
mod_php
是迄今为止最常见的配置。
mod_php
这不是真正的PHP;这只是一个Apache插件。或者更确切地说,我认为您应该从PHP 到底是什么意思的定义开始回答。
这个答案来自TuxRadar:
通过Web服务器运行PHP时,有两种不同的选择:使用PHP的CGI SAPI运行它,或将其作为Web服务器的模块运行。每个模块都有其自身的优点,但是总的来说,通常首选该模块。
将PHP作为CGI运行意味着您基本上可以将Web可执行文件的位置告知Web服务器,并且服务器会运行该可执行文件,并在您每次访问页面时为您提供调用的脚本。这意味着每次加载页面时,PHP需要读取php.ini并设置其设置,它需要加载其所有扩展名,然后需要开始分析脚本的工作-有很多重复的工作。
当您将PHP作为模块运行时,PHP实际上位于您的Web服务器内部-它仅启动一次,仅加载一次其设置和扩展,还可以跨会话存储信息。例如,PHP加速器依靠PHP能够跨请求保存缓存的数据,而使用CGI版本则无法实现。
将PHP用作模块的明显优势是速度-如果将CGI转换为模块,将会大大提高速度。许多人,特别是Windows用户,并没有意识到这一点,而是继续使用php.exe CGI SAPI进行操作,这很可惜-模块的速度通常快三到五倍。
但是,使用CGI版本的一个主要优点是,每次加载页面时PHP都会读取其设置。使用PHP作为模块运行时,在重新启动Web服务器之前,对php.ini文件所做的任何更改都不会生效,如果要测试大量新设置并希望看到即时响应,则使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是首选方法。