服務器上代碼 index.php:
<?php $cmd = 'php -v'; exec($cmd, $arr); echo '<pre>' var_dump($arr);
瀏覽器訪問后,打印結果是:NULL
說明服務器沒有開啟php警用了exec();
解決辦法:
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 是否禁用了這些函數:
1
2
|
$ 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函數,和文件的執行權限問題。