文章目錄
在使用中赫斯提亞CP管理你的伺服器時,有時候你可能需要啟用一些預設禁用的PHP函數,像是shell_exec、passthru、system和exec。
這些函數非常強大,但也存在一定的安全風險,所以在啟用它們之前,請確保你的伺服器環境是安全的,並且只允許可信任的使用者存取。
為什麼需要啟用這些PHP函數?
這些函數在某些特定的情況下是非常有用的。
例如,當你啟用某些WordPress外掛的條件要求,或是你需要在伺服器上執行一些系統指令時,這些函數就顯得不可或缺。
儘管如此,這些函數也會帶來潛在的安全風險。
不當使用可能會導致伺服器被攻擊,因此請務必謹慎操作。
編輯php.ini文件
要啟用這些函數,首先需要編輯php.ini檔案。
這是PHP的配置文件,控制PHP的各種設定。

步驟一:找到php.ini文件
在HestiaCP中,你可以透過以下路徑找到並編輯php.ini檔案:
- 進入HestiaCP控制面板。
- 導航到伺服器設定。
- 點擊編輯PHP服務(將滑鼠懸停在服務名稱上時會顯示鉛筆圖示)。
- 選擇進階選項。
在這裡,你可以修改php.ini檔案。
步驟二:修改disable_functions設定
在php.ini檔案中,有一個叫做disable_functions的設定。
這個設定定義了哪些PHP函數是被停用的。
要啟用shell_exec、passthru、system和exec,需要將它們從disable_functions清單中刪除。
修改前的disable_functions設定:
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,system,passthru,shell_exec,proc_open,popen
在這個配置中,shell_exec、passthru、system和exec是停用的。
修改後的disable_functions設定:
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,proc_open,popen
在這個配置中,shell_exec、passthru、system和exec已經被刪除,因此啟用了這些函式。
步驟三:保存修改
完成修改後,儲存php.ini檔案。
確保所有變更已正確儲存,以便能夠套用新的配置。
重新啟動PHP服務
在完成php.ini檔案的修改並儲存之後,需要重新啟動PHP服務才能使變更生效。
你可以透過以下步驟重新啟動PHP服務:
- 返回HestiaCP控制面板。
- 導航到伺服器設定。
- 選擇PHP服務,然後點選重新啟動。
驗證配置
重新啟動PHP服務後,你可以透過執行一個簡單的PHP腳本來驗證這些函數是否已啟用。
例如,你可以建立一個包含以下內容的PHP檔案:
<?php
echo shell_exec('echo Hello World');
然後,透過瀏覽器存取該文件,如果輸出結果為“Hello World”,則表示shell_exec函數已經啟用。
安全建議
儘管啟用了這些函數,但請務必注意安全性。
確保你的伺服器是安全的,並且只有可信任的使用者可以存取這些功能。
定期更新伺服器軟件,並使用強密碼和其他安全措施來保護你的伺服器。
總結
透過本文,我們了解如何在HestiaCP中啟用PHP函式shell_exec、passthru、system和exec。
雖然這些函數非常強大,但它們也帶來了安全風險。
因此,在啟用這些函數時,請務必確保你的伺服器是安全的,並且只允許可信任的使用者存取。
希望這篇文章能對你有幫助,如果有任何問題,請隨時與我聯繫!
希望陳溈亮博客( https://www.chenweiliang.com/ ) 分享的《HestiaCP如何啟用PHP函式shell_exec、passthru、system、exec? 》,對您有幫助。
