一些Apache模块与编程语言有关,比如mod_php和mod_python。描述基本上是“允许在apache中使用php”或“允许在apache中使用python”。我试图理解这些类型的“语言”模块是如何工作的概述。
答案 0 :(得分:4)
这相对简单;当Web服务器启动时,它将在其核心内注册模块。语言解释器模块,如mod_php,将在页面请求处理程序中注册一个钩子。
这意味着当用户请求页面时,Web服务器会将请求传递给模块,该模块检查所请求的文件是否是注册为由模块后面的解析器执行的类型。在PHP的情况下,您最有可能添加“AddType application / x-httpd-php .php”或类似于httpd.conf文件,mod_php将在解析此类请求时将其考虑在内。
PHP现在可以控制请求,它将读取文件,解析,编译并执行它,然后将其返回到请求缓冲区,网络服务器将作为内容。
对于其他模块也是如此,虽然它们对请求的处理方式不同,但它们都做同样的事情。
答案 1 :(得分:1)
基本上,如果你安装和配置mod_php correctls,将执行apache DirectoryRoot中的php文件。 Mod_python的工作原理类似。
如果您在没有mod_php的情况下安装apache并且在htdocs文件夹的根目录下有foo.php,则http://yourdomain/foo.php会将该文档视为纯文本文件。安装和配置mod_php将导致脚本被解析为php脚本,并且输出将被发送到浏览器而不是原始文本..
贾斯汀