You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置8080端口虚拟主机后,不加端口号访问异常求助

问题分析与解决办法

嘿,我来帮你捋清楚为啥不加:8080就访问不了你的虚拟主机,以及怎么解决这个问题~

核心问题根源

咱们平时访问不带端口的HTTP网址时,浏览器默认会用80端口发起请求,但你所有的虚拟主机都只绑定在了8080端口上。Apache在80端口上没有对应这些域名的虚拟主机配置,所以请求过来后找不到正确的站点,自然就显示异常了。

解决办法(分两种场景)

场景一:希望直接用域名(不带端口)访问(推荐)

这是最常规的做法,步骤如下:

  • 第一步:检查Apache主配置文件(一般是httpd.conf)里有没有Listen 80这一行,如果没有,就加上它(这是让Apache监听80端口的关键)。
  • 第二步:修改你的httpd-vhosts.conf,把每个<VirtualHost>块里的端口从8080改成80。举个例子,第一个虚拟主机修改后是这样的:
    <VirtualHost 127.0.0.1:80>
        ServerAdmin webmaster@danzuz.eu
        DocumentRoot "C:/xampp/htdocs/"
        ServerName danzuz.eu
        ServerAlias danzuz.eu
        ErrorLog "logs/danzuz.eu-error.log"
        CustomLog "logs/danzuz.eu-access.log" common
        <Directory "C:/xampp/htdocs/www/">
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
    另外两个虚拟主机也按照这个方式,把端口改成80就好。
  • 第三步:重启Apache服务,之后你访问danzuz.euwordpress1.danzuz.eu这些域名时,就不用再加:8080了。

场景二:必须保留8080端口监听(比如80端口被其他程序占用)

如果80端口被别的软件(比如IIS、迅雷之类的)占用了,没法用80端口,那可以试试这些操作:

  • 如果你只是想让用户访问时不用手动加端口,可以用端口转发工具,把本地80端口的请求转发到8080端口(不过这需要额外的工具配置)。
  • 或者,修改Apache的默认监听端口为8080:在httpd.conf里找到Listen 80,改成Listen 8080。不过这种方式下,浏览器默认还是会用80端口请求,用户还是得手动加:8080,只是Apache只监听8080了。

额外小提醒

你的第一个虚拟主机里,DocumentRoot设置的是C:/xampp/htdocs/,但<Directory>配置的是C:/xampp/htdocs/www/,这可能会导致htdocs根目录下的文件没有访问权限,不过这和当前的端口问题无关,只是顺便提一下,你可以根据需要调整成一致的路径。

内容的提问来源于stack exchange,提问作者Danzuz

火山引擎 最新活动