发布于 2010-04-26 18:57:28
mod_php
的意思是PHP,作为一个Apache模块。
基本上,当将mod_php
作为Apache模块加载时,它允许Apache解释PHP文件(这些文件由mod_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
__)
发布于 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版本更好,如果您正在测试许多新的设置,并希望看到即时响应。
发布于 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。
指定您的服务器操作系统将有助于其他人更具体地回答。
https://stackoverflow.com/questions/2712825
复制相似问题