我无法访问此共享主机上的 httpd.conf 文件,但我想查看已启用/安装了哪些模块。有没有一种(简单)方法可以在不访问 httpd.conf 文件的情况下找到答案?例如,使用 PHP,您可以运行包含 phpinfo() 的文件来获取 PHP 信息。有类似的吗?Web 服务器是 lighttpd,据我所知,它与 apache httpd 基本兼容。
(是的,我会给托管支持人员发送电子邮件,但如果能提前知道,对以后有帮助)
答案1
Lighttpd 具有类似的功能,但无论谁告诉你配置文件是直接兼容的,那都是胡说八道。您不能将.htaccess
文件与 lighttpd 一起使用。
配置文件完全不同,并且一旦您使其工作,fastcgi 的工作方式类似,但您不能仅仅将 apache 配置放入 lighttpd 中并期望它们能够工作。
从实用角度来说,您可以预期会安装一组默认的 lighttpd 模块。如果您被允许直接编辑站点配置文件,则可以使用以下语法显式加载所需的任何模块:
server.modules += ( "mod_access", "mod_rewrite" )
一般来说,你应该通读lighttpd 配置文档,特别关注从 Apache 迁移。
如果 lighttpd 服务器已加载状态模块,您可能能够看到其中加载了哪些模块(如果您有权访问该 URL)。问题是,如果您无权更改配置文件,实际加载的模块对您来说根本无关紧要。如果您无法配置您的站点,则无法对加载的模块执行任何操作。
答案2
如果你将 mod_status 添加到 lighttpd 配置文件中
server.modules = ( ..., "mod_status", ... )
status.config-url = "/server-config"
然后相对 URL /server-config 将显示已加载哪些模块。我使用它从 lib 目录中删除未使用的模块来减少 lighttpd 磁盘空间使用量。如果系统的 sysadm 已启用 mod_status,您应该能够使用它来确定已加载哪些模块,包括默认加载的模块。
答案3
怎么样:
httpd -l # for static modules
httpd -M # for shared modules
或者在 Ubuntu 上:
apache2 -l # for static modules
apache2 -M # for shared modules