【问题标题】:virtual hosts alias and php include虚拟主机别名和 php 包括
【发布时间】:2017-03-03 14:05:47
【问题描述】:

我目前遇到问题,因为我需要在我的虚拟主机中使用 Alias。

这是我的别名配置:

Alias /projects/proj_one/core /Applications/XAMPP/xamppfiles/htdocs/projects/core

因此,当我在 proj_one 内时,它工作,而我只是使用像 <img 'src=core/..'> 这样的 HTML

但是当我想使用<?php require_once('core/file.php') ?> 它告诉我找不到文件:failed to open stream: No such file or directory in

所以我认为 php 只是在项目中寻找 core/ 并没有明显找到它,因为它不理解来自虚拟主机的别名。

如何通过 Alias 告诉 php 这个文件在其他地方?

非常感谢

【问题讨论】:

    标签: php html apache


    【解决方案1】:

    虚拟主机别名适用于 apache 而不是 php。 当您需要或包含您应该使用的文件时。

    require_once(__DIR__.'/core/file.php');
    

    如果目录 core 位于您所包含的文件所在的目录中。

    其中__DIR__ 始终是当前目录。

    假设你在 index.php 中调用 require 并且你的项目结构是:

    /home/apps/application
               |-index.php
               |-core
                   |-file.php
    

    然后这段代码:

    require_once(__DIR__.'/core/file.php');
    

    会起作用的。

    如果你的结构是:

    /home/apps/application
               |-public
               |   |-index.php
               |-core
                   |-file.php
    

    然后:

    require_once(__DIR__.'/../core/file.php');
    

    这会起作用。

    【讨论】:

    • 嗯,是的,我错了,我实际上认为我不能用 PHP 访问 vhost 之外的文件,因为我不能用 HTML 和 JavaScript 来做,因为它可能是客户端的。不过非常感谢!
    【解决方案2】:

    这个错误的原因:

    "failed to open stream: No such file or directory in"
    

    是你使用了相对路径,而不是绝对路径:

    "require_once('core/file.php')";
    

    只要使用绝对路径就可以了。

    require_once(__DIR__.'/core/file.php');
    

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 2017-09-28
      • 2020-10-18
      • 2021-03-22
      • 2012-04-26
      • 2015-01-07
      • 2015-06-17
      • 2012-10-04
      • 2015-11-24
      相关资源
      最近更新 更多