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了
谢谢大家,结贴

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.
