php shell_exec遇到的一些坑

付费节点推荐


免费节点


节点使用教程


本打算今晚早点睡,却不想被这个问题给弄到一点多了。问题是这样的:大陆的家用网络访问github,是非常慢的。下载源码更是不方便。所以我的做法是去服务器 wget下来,再传回到本地。经测试,服务器(大陆或者国外)下载速度没限制。但是每次登陆服务器下载还是比较麻烦。所以想做一个web页面,只要输入地址执行,后端调用系统命令执行下载任务。最后返回下载url即可。但是测试发现返回结果都是空。

这里遇到的问题主要还是权限。

问题解决如下:

1.首先我们得去php.ini 开启 exec的权限:

#首先查找php.ini所在的位置[root@instance-rh1f8o1o default]# find / -name php.ini/usr/local/php/etc/php.ini[root@instance-rh1f8o1o default]#

编辑 php.ini,找到

disable_functions = passthru,system,chroot,chgrp,chown,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

我们将exec,shell_exec  去掉。

别忘了重启php-fpm 和nginx

2.查看nginx的当前用户是谁,发现是 www

[root@instance-rh1f8o1o default]# lsof -i:80COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAMEnginx      655 root    6u  IPv4 1047840      0t0  TCP *:http (LISTEN)nginx      656  www    6u  IPv4 1047840      0t0  TCP *:http (LISTEN)nginx      657  www    6u  IPv4 1047840      0t0  TCP *:http (LISTEN)bcm-agent 1420 root    9u  IPv4 1074573      0t0  TCP instance-rh1f8o1o:49810->100.67.96.39:http (ESTABLISHED)bcm-agent 1420 root   11u  IPv4 1074475      0t0  TCP instance-rh1f8o1o:49794->100.67.96.39:http (ESTABLISHED)[root@instance-rh1f8o1o default]#

然后我们需要将www增加root权限。方法如下:

## 编辑sudoers文件,找到这里,在root下方增加一行

www   ALL=(ALL)      NOPASSWD:ALL

[root@instance-rh1f8o1o default]# vim /etc/sudoers## Allow root to run any commands anywhereroot    ALL=(ALL)       ALLwww   ALL=(ALL)      NOPASSWD:ALL

这里注意,sudoers文件是只读的。所以编辑之前,我们需要给个可写权限

chmod 666 /etc/sudoers

到这里基本没啥问题了,如果你想使用wget命令,别忘记了,给项目目录及文件增加权限。如下:

[root@instance-rh1f8o1o default]# cd /home/wwwroot/default/[root@instance-rh1f8o1o default]# lslnmp.gif  ocp.php  phpinfo.php  phpmyadmin  p.php  wget[root@instance-rh1f8o1o default]# chmod 777 -R wget/[root@instance-rh1f8o1o default]#

以下是我的测试代码

<?php$cmd = 'wget -P /home/wwwroot/default/wget/ https://github.com/threadshare/php/archive/master.zip';$get = shell_exec($cmd);var_dump($get);$text = shell_exec("ls -l"); echo '====='.$text;?>

未经允许不得转载:Bcoder资源网 » php shell_exec遇到的一些坑

相关推荐

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册