php访问根目录有问题?
我用的系统是CentOS,网站根目录是/var/www/html,根目录放有head.inc.php,当我在index.php里require('head.inc.php')时一切正常,require('./head.inc.php')时也正常,就是require('/head.inc.php')时候发现failed to open stream: No such file or directory的错误
前面的斜杠代表的是根目录,难道我设置有误?Apache的DocumentRoot和Directory都设置成了/var/www/html,www,html和文件都设置成了rwxr-xr-x,还有其他需要设置的吗?谢谢!
回复讨论(解决方案)
require('/head.inc.php') 指 /var/www/html/head.inc.php 也就是php认为head.inc.php是一个在html路径下的目录,而不是一个php文件。
或者你可以这样写:require(dirname(__FILE__).'/head.inc.php')
require 使用的是文件系统的路径而不是 web 的路径
谢谢changjay和xuzuning,但是dirname(__FILE__)获取的是当前文件的路径吧?我要获取根目录,例如有个子目录文件/var/www/html/report/index.php同样也要reqire根目录下的head.inc.php,如果用dirname(__FILE__)的话,就变成了require '/var/www/html/report/head.inc.php'
版主提到的是文件系统的路径,我想可能是这个原因,我试下改成/var/www/html/head.inc.php
是不是你这个网站节点的根目录没配置好!
版主,我试着改成了文件系统目录,可以了
zmzkkk,我已经把Apache的DocumentRoot和Directory都设置成了/var/www/html,还有其他要修改的吗?
网上说用/就表示根目录,好像include也是按文件系统目录的,这个问题google了半天也很少人提及
大家还有什么更好的解决办法?晚上结贴
是的 / 表示根目录
既然你的在做网站,那么你就不得不面对两个系统,也就是有两个根
网站的文件存放在操作系统的文件系统中, /var/www/html, /是文件系统的根
浏览器访问的是 http://localhost /index.php, /是 web 系统的根
web 系统的根是由你在 web 服务器中指定的,如
DocumentRoot = /var/www/html
其实 php 已经给出了解决方案:include_path
谢谢changjay和xuzuning,但是dirname(__FILE__)获取的是当前文件的路径吧?我要获取根目录,例如有个子目录文件/var/www/html/report/index.php同样也要reqire根目录下的head.inc.php,如果用dirname(__FILE__)的话,就变成了require '/var/www/html/report/head.inc.php'
版主提到的是文件系统的路径,我想可能是这个原因,我试下改成/var/www/html/head.inc.php
如果有配置文件的话,可以在配置文件里先把网站根目录赋值给一个变量,然后在需要的地方使用。
谢谢版主,但是我改了/etc/php.ini的include_path=".:/var/www/html",还是会出现:
Fatal error: require() [function.require]: Failed opening required '/head.inc.php' (include_path='.:/var/www/html') in xxx
我改后重启了linux,确认var,www,html以及html下面所有文件都是755,关闭了SeLinux(getenforce=permissive),但是还是错误。改成了你说的require('/var/www/html/head.inc.php')就可以,我再查查
Novolee,我也想过一个全局变量,但是绝对路径还是会泄露到php代码里
发现还有个变量$_SERVER['DOCUMENT_ROOT'],我用这个变量替代/又可以了
就是直接用/为什么还不可以
发现还有个变量$_SERVER['DOCUMENT_ROOT'],我用这个变量替代/又可以了
就是直接用/为什么还不可以
接受??及大?的做法: 使用你最早的方式 ./ 除非你的是打算在命令行下?行的?本那麽就??路??全.
发现还有个变量$_SERVER['DOCUMENT_ROOT'],我用这个变量替代/又可以了
就是直接用/为什么还不可以
前面不是有人回答了吗?直接用/,表示的是操作系统文件系统的根目录,而不是站点的根目录。
PhpNewnew,我的网页有好几层,但是header.inc.php,css样式表全部放在根目录里,所以直接用根目录加载这些会方便很多。./只能读取到当前目录
Novolee,是,但是php里就必须写成/var/www/html/head.inc.php了,有点担心这样的路径会不会不小心显示到网页里,所以还是用'DOCUMENT_ROOT了
谢谢大家,结贴

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet
