【问题标题】:Server fault (500) at require_oncerequire_once 的服务器故障 (500)
【发布时间】:2016-05-22 14:51:35
【问题描述】:

我有一个这样的目录结构:

/var/www/html/
|
+-dir1
  |
  +-dir2
  | |
  | +-problem.php
  +-target.php

所以绝对路径是 /var/www/html/dir1/dir2/problem.php/var/www/html/dir1/targt.php

我尝试将文件target.php 包含在文件problem.php 中,并带有require_once '../target.php'

据我所知,这是包含文件的正确语法,但我仍然得到一个带有 HTML-code 500 Server 错误的空白页面。如果我使用绝对路径,我会收到同样的错误。 如果我通过 domain.tld/dir1/target.php 直接在浏览器中浏览 target.php 我会得到 200 OK 所以我想这个文件是完整的。出于测试目的,我从 issue.php 中删除了所有其他数据,没有任何改变。

其他人遇到过这样的问题并有解决方案吗?

【问题讨论】:

  • 如何从您的域访问problem.php?是domain.com/dir1/dir2/problem.php吗?
  • 服务器进程是否可读文件?
  • @dchayka 是的,我像你写的那样访问它。
  • @EdHeal 可以被服务器进程读取,所有者、组和世界设置为rwx(这是一个离线测试服务器,所以暂时没有安全问题)
  • 包含路径相对于当前工作目录,而不是它们所使用的文件。错误 500 表示您没有查看 error.log。

标签: php


【解决方案1】:

我解决了这个错误。这是一个典型的初学者错误。我在problem.php中需要target.php

在@dchayka 问之前,我从来没有想过target.php 的内容,因为通过浏览器直接访问返回200。但这是一个错误,因为这个文件需要targets_include.php 需要problem.php

我在这些文件中使用了相对路径。正如@mario 所说,相对路径仅在当前工作目录中有效。用绝对值替换所有相对路径。

谢谢大家:)

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多