require_once函数导致服务器错误

3

我正在尝试在php中使用require_once("");函数,但每次使用时都会导致服务器错误。我知道我使用的路径是正确的,因为我已经多次检查了我的文件目录,并且在编写这个php代码时也一直在跟随视频教程。有什么想法可以解决这个服务器错误吗?

       <?php
            require_once("../../includes/session.php");
       ?>

调用此函数的页面位于一个共享文件夹中,距离session.php两个子文件夹。这个文件是index.php,位于public/admin。调用require_once的页面在public/admin/index.php中,并且它们共享的文件夹是photo_gallery。
错误是:HTTP错误500(内部服务器错误):服务器在尝试满足请求时遇到了意外的情况。
我所做的所有调试都是在调用require_once之前和之后打印出hello语句,并且当我在之后发布hello时没有输出任何内容。
这是我检查错误日志时收到的错误: [08-Aug-2012 11:01:04] PHP解析错误:/home3/visittom/public_html/photo_gallery/includes/session.php的第47行出现语法错误,意外的'{'。

1
尝试使用完整路径,然后查看是否按预期工作。如果是,则知道您的包含方式错误。您是否可能从包含本身中包含更多内容? - Erwin Moller
旁注:为什么不在配置文件中设置 include_path - mlishn
你确定错误是由require_once语句引起的吗?HTTP错误500通常表示Web服务器出现错误(配置不正确)。 - EyalAr
尝试从命令行中将您的页面作为脚本运行(而不是通过Web服务器运行),这样您就可以找出是什么原因导致Web服务器返回HTTP 500错误。 - EyalAr
3个回答

2

require和include路径是相对于声明它们的文件而言,而不一定是用户加载的页面。所以如果你的index.php包含了另一个页面,并且该页面包含require_once,那么可能会遇到问题。

此外,检查Web服务器错误日志,这将提供有关500错误的更多详细信息。


1

尝试使用绝对路径而不是相对路径

所以你需要的是 - require_once(dirname(dirname(__FILE__)) . '/includes/session.php');

告诉我这样行不行


0

如果PHP无法访问文件,无论是因为给出了错误的路径还是由于权限问题导致文件无法访问,它也会抛出这些错误。

chmod 755 /path/to/file.php

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接