suchen

Heim  >  Fragen und Antworten  >  Hauptteil

„Erforderliche Datei kann nicht geöffnet werden, PHP hat einen schwerwiegenden Fehler festgestellt“

<p>Ich erhalte die folgende Fehlermeldung von Apache: </p> <p><strong>[Sa 19. März 23:10:50 2011] [warn] mod_fcgid: stderr: PHP fatal error: require_once() [function.require]: Opening '/common/configs/config_templates.inc. php' ist fehlgeschlagen (include_path='.:/usr/share/pear:/usr/share/php') in Zeile 158 von /home/viapics1/public_html/common/configs/config.inc.php </strong> ;/p> <p>Ich bin definitiv kein Experte für Apache, aber die Dateien config.inc.php und config_templates.inc.php sind beide vorhanden. Ich habe auch versucht, zur Seite test.html zu navigieren, die ich im Verzeichnis common/configs/ abgelegt habe, daher glaube ich nicht, dass ein Berechtigungsproblem vorliegt. Ich habe auch die Berechtigungen für die Datei config_templates.inc.php festgelegt, um jedem Lese-, Schreib- und Ausführungsberechtigungen zu erteilen. Ich bin mir nicht sicher, was ich tun soll. Ich habe nachgesehen, ob es ein Verzeichnis /usr/share/php gibt, und festgestellt, dass es keines gibt, aber als ich PHP mit yum installiert habe, hieß es, es sei bereits die neueste Version. Irgendwelche Vorschläge? </p>
P粉345302753P粉345302753463 Tage vor529

Antworte allen(2)Ich werde antworten

  • P粉662802882

    P粉6628028822023-08-21 16:05:34

    如果您正在运行SELinux,您可能需要授予httpd读取/home目录的权限,请使用以下命令:

    sudo setsebool httpd_read_user_content=1

    Antwort
    0
  • P粉251903163

    P粉2519031632023-08-21 13:14:41

    这实际上不是一个与Apache相关的问题,甚至不是一个与PHP相关的问题。要理解这个错误,您必须区分虚拟服务器上的路径和文件系统中的路径。

    require操作符用于文件。但是像这样的路径

    /common/configs/config_templates.inc.php

    只存在于虚拟HTTP服务器上,而在文件系统中没有这样的路径。正确的文件系统路径应该是

    /home/viapics1/public_html/common/configs/config_templates.inc.php

    其中

    /home/viapics1/public_html

    部分被称为文档根目录,它将虚拟世界与真实世界连接起来。幸运的是,Web服务器通常在一个配置变量中拥有文档根目录,并与PHP共享。所以如果你将你的代码改成像这样

    require_once $_SERVER['DOCUMENT_ROOT'].'/common/configs/config_templates.inc.php';

    它将在任何目录中的任何文件中工作!

    更新:最终我写了一篇文章,解释了文件系统和Web服务器上的相对路径和绝对路径的区别,详细解释了这个问题,并包含了一些实际的解决方案。例如,当您从命令行运行脚本时,这样一个方便的变量是不存在的。在这种情况下,可以使用一种称为“单一入口”的技术来解决。您也可以参考上述文章了解更多细节。

    Antwort
    0
  • StornierenAntwort