我收到以下警告:警告:fopen(Uploaded_Files/dataFile1.txt):無法打開流:第 17 行 /opt/lampp/htdocs/PHP_Course_Practice/Superglobals/data_upload.php 中的權限被拒絕我正在使用 XAMPP 7.4.8-0使用我的 MacBook 作為本地主機來學習 PHP。我對編碼很陌生。我試過了:在 fopen() 中寫入文件 dataFile1.txt 的整個路徑,但這并不能解決問題檢查 PHP.ini 中的allow_url_fopen 已打開在 PHP 文件頂部包含整個路徑,但也沒有解決問題也嘗試過chown -R www-data:www-data folder(其中文件夾是文件夾的完整路徑)并且終端說chown: www-data: illegal group name也嘗試過sudo dseditgroup -o edit -a daemon -t user wheel(首先到 Superglobals 文件夾,然后到 Xampp 的根文件夾)fopen() 嘗試訪問并寫入文件的完整路徑是: /opt/lampp/htdocs/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt我不熱衷于使用 777,因為我在各種文章中讀到它使用起來不安全。代碼是:<?php$document_root = $_SERVER["DOCUMENT_ROOT"];$fileRoot = $document_root . "/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt";echo "Root: $document_root";include($document_root . "/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt");?><!DOCTYPE html><html dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body><?phpif (isset($_POST["submit"])) { $dataFile1 = fopen("Uploaded_Files/dataFile1.txt", "w"); $dataFile1Txt = "My age is " . $_POST["age"] . "."; fwrite($dataFile1, $dataFile1Txt); echo $dataFile1; fclose($dataFile1);}?><form action="data_upload.php" method="post"> <input type="text" name="age"> <input type="submit" name="submit"></form> </body></html>
3 回答

縹緲止盈
TA貢獻2041條經驗 獲得超4個贊
您應該嘗試檢查要打開的文件或目錄的權限。之后,您可以向該目錄添加遞歸讀寫權限,如下所示
$ chmod -R 770 /path/toyour/directory

千萬里不及你
TA貢獻1784條經驗 獲得超9個贊
檢查網絡用戶。
<?php echo exec("whoami");
并將用戶添加到您的組中。
sudo usermod -a -G <groupName> <userName>
最后,檢查文件的權限設置。

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
我解決這個問題的方法是下載并安裝非虛擬機版本的 XAMPP??磥?VM 版本的 XAMPP (LAMPP) 不適合本地主機上的權限,除非您熱衷于非安全打開 777。
- 3 回答
- 0 關注
- 304 瀏覽
添加回答
舉報
0/150
提交
取消