php exec system shell_exec無法執行,解決辦法


服務器上代碼 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函數,和文件的執行權限問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM