Ubuntu下apache2ctl status访问80端口而非8080端口如何解决
sudo apache2ctl status 的实现逻辑是调用w3m访问Apache内置的server-status状态页拉取运行信息,Ubuntu源里打包的Apache默认给这个命令写死的访问地址是http://localhost:80/server-status。你手动把服务监听端口改成8080之后,这个默认访问地址没有同步更新,自然会出现80端口无服务、w3m加载失败的报错。
先确认
mod_status状态模块已启用,同时给状态页开放本地访问权限
编辑状态模块配置文件:sudo nano /etc/apache2/mods-available/status.conf
找到<Location /server-status>配置块,调整为允许本地访问,参考配置:<Location /server-status> SetHandler server-status Require local </Location>保存退出后执行以下命令启用模块、重启Apache生效:
sudo a2enmod status && sudo systemctl restart apache2修改
apache2ctl的默认状态查询地址,注意不要直接改/usr/sbin/下的执行脚本(包升级时会被覆盖),直接在Apache全局环境变量配置里指定即可实现持久化生效
编辑环境变量配置文件:sudo nano /etc/apache2/envvars
在文件末尾追加一行配置,指定你修改后的8080端口状态页地址:export APACHE_STATUSURL="http://localhost:8080/server-status"验证修复
保存退出后重新执行sudo apache2ctl status,w3m就会正常访问8080端口的状态页,不会再出现之前的加载报错。
内容的提问来源于stack exchange,提问作者Mahesh

