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