php system不執(zhí)行的解決辦法:1、將disable_functions等號后面的system去掉;2、添加當前站點的運行賬號權限;3、將文件的訪問路徑改為相對路徑,并將IECapt.exe復制到站點程序當前目錄下即可。
本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版、Dell G3電腦。
php system 不執(zhí)行怎么辦?如何解決PHP 無法執(zhí)行system()函數(shù)的問題?
問題闡述
PHP 無法執(zhí)行system()函數(shù)是什么原因呢?
解答
PHP 無法執(zhí)行system()函數(shù),可能有以下幾種情況:
(1)Warning: system() has been disabled for security reasons
該錯誤是由于服務器安全配置將system 函數(shù)關閉了,打開php.ini 文件,將disable_functions等號后面的system 去掉即可。
(2)Warning: system() [function.system]: Unable to fork
該錯誤是由于當前站點的運行賬號無法訪問cmd.exe,找到Windowssystem32cmd.exe 屬性,添加當前站點的運行賬號權限或users 組權限即可。
(3)在Web 訪問下執(zhí)行沒有任何響應也不報錯,使用php cli 命令行執(zhí)行卻可以正常返回結果,該錯誤一般是由Windows 系統(tǒng)路徑引起的,程序中可能是使用了絕對路徑去訪問程序,例如:
system('D:serverDLLIECapt.exe --url=http://tech.cncms.com --out="D:webtt.fei.cnhtdocsttttech.png"');
此時用命令行執(zhí)行結果正確,但用Web 訪問就會返回空白頁,沒有錯誤。
修改方法:將文件的訪問路徑改為相對路徑,并將IECapt.exe 復制到站點程序當前目錄下,并將代碼改為:
system('IECapt.exe --url=http://www.baidu.com --out=t/tech.png');
3再次訪問頁面,就可以正常輸出了。
推薦學習:《PHP視頻教程》