要查看 Docker 容器裡面的 php.ini 內容或確認其路徑,主要有以下三種最快的方法。您可以根據目前是在終端機(Terminal)操作,還是想直接在網頁上查看來選擇。
您不需要進入容器內部,只需要在宿主機(您的電腦)的終端機輸入以下指令:
**尋找 php.ini 的檔案路徑:**這會列出 Loaded Configuration File,例如 /usr/local/etc/php/php.ini。
docker exec -it <容器名稱或ID> php --ini
直接列印出 php.ini 的完整內容:(請將後面的路徑替換為您在第 1 步找到的實際路徑)
docker exec -it <容器名稱或ID> cat /usr/local/etc/php/php.ini
如果您只想檢查某個特定設定(例如 open_basedir):
docker exec -it <容器名稱或ID> php -r"echo ini_get('open_basedir');"
如果您想在容器內部的資料夾切換並查看設定:
進入容器的指令視窗(Bash):
docker exec -it <容器名稱或ID> bash# 如果報錯說沒有 bash,請嘗試改用 sh:# docker exec -it <容器名稱或ID> sh
在容器內尋找並讀取檔案:
# 查看 PHP 目前載入哪些設定檔
php --ini# 使用 cat 指令查看內容
cat /usr/local/etc/php/php.ini
**離開容器:**輸入 exit 即可回到您原本的電腦終端機。
如果您覺得用命令列很麻煩,可以直接讓 PHP 網頁把所有設定吐出來:
在您的專案網頁根目錄(對應到容器內 /var/www/html 的地方)建立一個名為 info.php 的測試檔案。
在檔案內寫入以下程式碼:
<?php
phpinfo();
打開瀏覽器,造訪您的網站(例如:http://localhost:8080/info.php)。
您會在網頁上看到一個藍色的大表格:
Ctrl + F 搜尋 open_basedir 或 display_errors,就能看到當前的防禦設定是啟用(On)還是關閉(Off)。⚠️ 資安小提醒: phpinfo() 會洩漏非常多伺服器敏感資訊(包含環境變數、路徑、系統版本)。檢查完畢後,請務必立刻將 info.php 刪除,以免被駭客利用來踩點。