找不到虚拟主机对象

Posted

技术标签:

【中文标题】找不到虚拟主机对象【英文标题】:Virtual host Object not found 【发布时间】:2020-02-01 19:41:11 【问题描述】:

每次我尝试访问 https://sub.myproject.test/ 时都会弹出此消息:

找不到对象! 在此服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。 如果您认为这是服务器错误,请联系网站管理员。 错误 404 sub.myproject.test Apache/2.4.38 (Unix) OpenSSL/1.0.2q php/7.2.15 mod_perl/2.0.8-dev Perl/v5.16.3

httpd-vhosts.conf 我有:

<VirtualHost *:80>
    DocumentRoot "/mnt/data/myproject/sub.myproject.com/public_html"
    ServerName sub.myproject.test
    ServerAlias www.sub.myproject.test
    <Directory  "/mnt/data/myproject/sub.myproject.com/public_html/">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

httpd-ssl.conf 我有:

# catalog config
<VirtualHost *:443>
    DocumentRoot "/mnt/data/myproject/sub.myproject.com/public_html"
    ServerName sub.myproject.test:443
    ServerAlias www.sub.myproject.test:443
    ErrorLog "/opt/lampp/logs/error_log"
    TransferLog "/opt/lampp/logs/access_log"
    SSLEngine on

    SSLCertificateFile "/opt/lampp/etc/ssl.crt/server.crt"
    SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/server.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    <Directory "/mnt/data/myproject/sub.myproject.com/public_html/">
        SSLOptions +StdEnvVars +FakeBasicAuth

        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Allow from all
        Require all granted
    </Directory>
    BrowserMatch "MSIE [2-5]" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
    CustomLog "/opt/lampp/logs/ssl_request_log" \
          "%t %h %SSL_PROTOCOLx %SSL_CIPHERx \"%r\" %b"
</VirtualHost>

当然在/mnt/data/myproject 路径中我有sub.myproject.com 文件夹

如果您能帮我解决这个问题,将不胜感激

【问题讨论】:

【参考方案1】:

您的 VirtualHost 没问题(除了您不需要在 ServerName 和 ServerAlias 指令中放入 :443 外),但是当请求中未指定时,您永远不会告诉 Apache 默认显示哪个页面。

在每个虚拟主机中定义DirectoryIndex

例如:DirectoryIndex index.html 当请求为https://example.com/ ,因此域名后面什么都没有,Apache 将显示 index.html,来自DocumentRoot 目录。


与您的问题无关,您应该将ServerTokens ProdServerSignature Off 放入您的配置中,您的错误消息会显示很多信息。

【讨论】:

以上是关于找不到虚拟主机对象的主要内容,如果未能解决你的问题,请参考以下文章

内存违规:SIGSEGV 和“找不到虚拟表的链接器符号...”

虚拟机安装系统找不到硬盘

Vmware虚拟机找不到硬盘

打开虚拟机时说找不到vmx文件,该怎么办

为啥系统里装的虚拟机找不到

虚拟机里找不到vmx文件