Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php php访问根目录有问题?

php访问根目录有问题?

Jun 23, 2016 pm 01:58 PM
php répertoire racine 访问

我用的系统是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了

谢谢大家,结贴

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Services CakePHP Services CakePHP Sep 10, 2024 pm 05:26 PM

Ce chapitre traite des informations sur le processus d'authentification disponible dans CakePHP.

See all articles