【问题标题】:Apache: No such file or directoryApache:没有这样的文件或目录
【发布时间】:2015-06-12 18:36:13
【问题描述】:

我的网站在 apache 服务器上。 路径:/var/www/example.com/public_html

我正在尝试访问public_html 文件夹中的文件。

PHP

require('/application/config/development/dev_config.php');

错误

PHP 警告:需要(/application/config/development/dev_config.php):无法打开流:第 53 行的 /var/www/example.com/public_html/index.php 中没有此类文件或目录

当我尝试这样做时:

require('application/config/development/dev_config.php');

运行良好。 但是,我在我的项目中到处都使用了正斜杠。 有没有办法在.htaccess 文件中更改此设置?所以,我可以使用/访问它。

Apache 配置文件

<VirtualHost *:80>
   ServerAdmin admin@example.com
   ServerName example.com
   ServerAlias www.example.com
   DocumentRoot /var/www/example.com/public_html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

【问题讨论】:

  • 据我所知require 不依赖于 apache,您也可以使用查找和替换编辑器,这需要一些时间,但这样更好
  • 顺便说一句,某些IDE可以搜索整个项目以查找和替换
  • / 是一个通用术语。它可以在每个页面中。
  • ofc 你不会搜索 / 你会搜索 require('/application/ 并替换为 require('application/ idk 确实应该做什么,但它会是这样的

标签: php apache .htaccess


【解决方案1】:

Apache 和 PHP 对 / 的理解不同

Apache 将您的 web 根 视为您的根文件夹 (/var/www/example.com/public_html/),而 PHP 能够访问您的整个系统(所以“/”表示“/”)。这意味着虽然

<a href="/home.php">...</a>

真正的意思是/var/www/example.com/public_html/home.php,

header('Location:/home.php');

表示服务器系统根目录中的home.php 文件。

解决方案

在向 PHP 指示 Web 文件时,避免输入整个 Web 目录结构的最简单(恕我直言)方法是使用 $_SERVER['DOCUMENT_ROOT'] 变量。这会查询 Apache 以查找 Web 目录根目录的路径,您可以添加文件路径的其余部分,就好像您正在与 Apache 交谈一样。例如:

header('Location:'.$_SERVER['DOCUMENT_ROOT'].'/home.php');

PHP 会理解为/var/www/example.com/public_html/home.php。

【讨论】:

    【解决方案2】:

    /application 不存在,你要的实际文件夹是:

    /var/www/example.com/public_html/application/config/development/dev_config.php
    

    以 / 开头是在告诉系统查看文件系统的根路径(例如 /var 所在的位置)。

    application/config/development/dev_config.php 起作用的原因是因为您正在调用相对于当前文件夹的文件夹,因为您已经在 public_html 中

    【讨论】:

    • 是的.. 我知道这一切。如果有的话,我只需要解决方案。因为在项目中到处都很难改变。实际上,我正在将当前网站移动到不同的服务器。
    猜你喜欢
    • 2021-06-24
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2016-05-06
    • 2019-03-13
    相关资源
    最近更新 更多