本文給大家介紹有關php exec system shell_exec無法執行的問題,主要內容是講解執行php exec() system() shell_exec()沒有結果,結果為NULLD的方法,希望對需要的朋友有所幫助~
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用
php exec() system() shell_exec()無法執行,沒有結果,結果為NULLD,解決辦法
服務器上代碼 index.php:
<?php $cmd = 'php -v'; exec($cmd, $arr); echo '<pre>' var_dump($arr);
登錄后復制
瀏覽器訪問后,打印結果是:NULL
說明服務器沒有開啟php警用了exec();【推薦學習:PHP視頻教程】
解決辦法:
1、加入函數查看當前運行的用戶:
<?php var_dump(get_current_user()); $cmd = 'php -v'; exec($cmd, $arr); echo '<pre>' var_dump($arr);
登錄后復制
顯示:root
2、到服務器修改文件權限:
$ chmod 777 index.php
登錄后復制
查看index.php的所屬用戶及權限:
$ ll
登錄后復制
結果:
-rwxrwxrwx 1 root root 1595 Sep 20 10:18 index.php
登錄后復制
3、查看php.ini 是否禁用了這些函數:
$ cd /usr/local/php/etc $ vim php.ini
登錄后復制
找到disable_functions =
把exec, system,exec_shell去掉,用到哪個去哪個;
4、重啟php服務,這一步很重要:
$ /etc/init.d/php-fpm restart
登錄后復制
然后進行測試,瀏覽器訪問服務器結果:
大部分還是因為php.ini禁用exec函數,和文件的執行權限問題。