亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 無法找到文件,即使它存在

PHP 無法找到文件,即使它存在

PHP
SMILET 2023-10-15 15:11:47
我在 Ubuntu 18.04 上使用 Apache 2 運行 PHP 7.4.9。我的 PHP 錯誤日志中出現此錯誤:“PHP 致命錯誤:require_once():無法在 /var/www/testing.php 中打開所需的 'HTMLPurifier.auto.php' (include_path='(其他目錄):/usr/share/php:(其他目錄)')第 8 行,引用地址:http://localhost:8080/testing.php”所以我檢查了該文件是否存在于/usr/share/php:# ls -lah /usr/share/php> -rwxrwxrwx   1 www-data www-data  274 Aug 15 15:53 HTMLPurifier.auto.php所以它就在那里。權限是 777,因為我在嘗試解決問題時更改了它們。然后,我訪問了phpinfo();瀏覽器中的一個文件,并檢查該目錄是否位于包含路徑中并且open_basedir為空:Directive       Local Value   Master Valueinclude_path    (other dirs)  .:/usr/share/phpopen_basedir    no value      no value然后我創建了另一個 PHP 文件并編寫了此文件來檢查 php 是否可以看到該文件:<?phpclearstatcache();$dir = '/usr/share/php/';$filename = 'HTMLPurifier.auto.php';$fullpath = $dir . $filename;var_dump($dir);var_dump($filename);var_dump($fullpath);var_dump(is_dir($dir));$all_files = scandir($dir);var_dump($all_files);var_dump(file_exists($fullpath));var_dump(file_exists($dir . $all_files[12]));當我在瀏覽器中訪問它時,我得到:string(15) "/usr/share/php/" // $dirstring(21) "HTMLPurifier.auto.php" // $filenamestring(36) "/usr/share/php/HTMLPurifier.auto.php" // $fullpathbool(true) // is_dir($dir)// $all_filesarray(40) {  (other files)  [12]=> string(21) "HTMLPurifier.auto.php"}bool(false) // file_exists($fullpath)bool(false) // file_exists($dir . $all_files[12])所以 PHP 可以掃描目錄,可以看到那里的文件,但說它(或目錄中的任何其他文件)不存在。/var/www我測試了向內部傳遞一個文件file_exists并且它有效。我也嘗試重命名該文件,但一無所獲。是什么賦予了?
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

在Linux中,普通用戶(例如普通工作用戶或網絡服務器分配的用戶)需要目錄權限“搜索”(即位掩碼)--x才能1訪問目錄內的文件。權限-r-或位掩碼2僅使您能夠讀取目錄內的文件名。

要解決該問題,您必須將目錄的 chmod 更改/usr/share/php755.


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號