簡體   English   中英

PHP 僅限於文檔根目錄,而非文件系統根目錄

[英]PHP restricted to document root, not file system root

我正在嘗試通過 php 更改位於 /etc/nginx 目錄中的文本文件。 我正在使用 fopen() 來執行此操作,但是,我無法訪問我的網站根文件夾之外的任何目錄。

例如,我將我的網站存儲在絕對路徑中:/webroot/mywebsite/,如果我嘗試讀取該文件夾之外的任何內容,例如 /etc/nginx,fopen() 就會死掉。

  • 我試過只使用../../etc/nginx,但找不到它
  • 我嘗試以 root 身份運行 PHP
  • 我嘗試將用戶“http”添加到根組
  • 我嘗試在 php.ini 中設置 open_basedir 變量
  • 我嘗試將 /etc 文件夾符號鏈接到 /webroot 文件夾,但找不到它
  • 我檢查了我的 Nginx 配置,所有 php 配置都沒有覆蓋 open_basedir
  • 我已經確認我正在編輯的 php.ini 實際上改變了 phpinfo();
  • 我沒有嘗試 chmodding 我的 Arch 安裝的根目錄。 我擔心這會破壞一些東西

當我回顯realpath("index.php")它返回 "/webroot/mywebsite/index.php"

這就是我一直在確認我是否可以訪問我的根目錄的方式,但它沒有改變。 我不知道我還能嘗試什么。 我的舊 Debian 安裝讓我只使用絕對路徑。 這是我的新 Arch 安裝,這是我第一次遇到這種情況。 我懷疑這可能是權限問題,但我不想修改我的整個操作系統根目錄。 還有其他建議嗎? 謝謝

出色地。 我很驚訝我在谷歌搜索了 4 個小時后卻找不到這個答案,但就是這樣。 希望我可以為某人省去麻煩。

問題出在此處:/lib/systemd/system/php-fpm.service

找到“ProtectSystem=full”行並將其設置為“false”。 Ta-da,我現在到處都可以訪問。

暫無
暫無

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

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