簡體   English   中英

無法在 Apache、Linux、cPanel 下的 PHP 應用程序根目錄之外寫入文件

[英]Cannot write a file outside of app root in PHP under Apache, Linux, cPanel

我可以完全訪問我的服務器。 我已經設置了 cPanel/Apache 配置以允許訪問目錄 /var/web/reuse(它不在我的文檔根目錄下),但我無法在 PHP 中創建或寫入文件。 我可以使用 PHP 讀取那里的文件。 根據 phpinfo,basedir 沒有。 我可以毫無問題地在我的文檔根目錄和后代中寫入文件。 我嘗試寫入的目錄具有 Linux 權限 drwxrwxrwx。 我正在使用完整的絕對路徑名編寫。 PHP 函數 is_writeable() 為文件的父目錄返回 false。

2018 年 10 月 15 日添加:

權限如下:

/ dr-xr-xr-x
/var drwxr-xr-x
/var/web drwxr-xr-x
/var/web/reuse drwxr-xr-x
/var/web/reuse/data drwxrwxrwx (I am trying to write here)

基於此描述的任何建議?

你可以檢查你的整個路徑。 可能您有一些沒有訪問權限的父目錄。

此外,您可以運行一個簡單的腳本來檢查 PHP 錯誤消息:

<?php
error_reporting ( E_ALL);
ini_set ( "display_errors", "on");
file_put_contents ( "/var/web/reuse/test.txt", "hello world!");
?>

你可能被open_basedir PHP 指令阻止了。

在控制台,您可以使用以下命令檢查您的目錄樹權限:

ls -lad /var
ls -lad /var/web
ls -lad /var/web/reuse

此外,您可以檢查 PHP 正在使用哪個用戶運行此腳本:

<?php
$userinfo = posix_getpwuid ( posix_getuid ());
var_dump ( $userinfo);
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM