Ubuntu 20.04环境下Apache 2.4+PHP5.6访问网站显示目录列表而非index.php页面的问题求助
看起来你遇到的是Apache默认展示目录列表、没有自动加载指定的index.php首页的问题,结合你给出的配置和目录信息,我帮你梳理几个关键排查方向:
检查mod_dir模块是否启用
DirectoryIndex指令是由Apache的mod_dir模块负责处理的,如果这个模块没开启,Apache就不会识别index.php作为默认首页。执行以下命令启用并重启服务:sudo a2enmod dir sudo systemctl restart apache2更新Apache 2.4的访问控制语法
你当前vhost配置里用的是旧版的Order allow,deny和allow from all语法,虽然Apache 2.4兼容该写法,但可能和新权限规则产生冲突。建议替换为2.4的标准语法:
把vhost中<Directory>块里的:Order allow,deny allow from all修改为:
Require all granted修改完成后重启Apache生效。
确认PHP5.6模块已正确启用
Ubuntu 20.04默认不自带PHP5.6,你应该是手动安装的版本,需要确保Apache的PHP5.6模块已经启用:sudo a2enmod php5.6 sudo systemctl restart apache2如果提示模块不存在,可能需要重新安装
libapache2-mod-php5.6包。查看错误日志定位具体问题
直接查看网站错误日志能更快找到问题根源,打开你的网站错误日志:cat ${APACHE_LOG_DIR}/website.com-error.log日志里会记录比如PHP解析失败、文件权限异常或者模块加载错误等具体信息,可以根据提示针对性解决。
验证index.php的直接访问情况
你可以尝试直接访问https://website.com/index.php测试:如果能正常打开页面,说明问题出在默认首页的识别逻辑上;如果还是无法打开,那大概率是PHP解析配置或者index.php文件本身的问题。
备注:内容来源于stack exchange,提问作者igalsc

