当前位置:首页 » 编程语言 » phpshell运行

phpshell运行

发布时间: 2025-06-19 05:51:09

1. 如何让php执行shell

php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令.
虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码

例子:system("/usr/local/bin/webalizer/webalizer");

2. linux 中php执行shell_exec函数

shell_exec("/usr/local/bin/pdf2swf /home/xiazai/03.pdf -o /home/xiazai/1.swf; /usr/local/bin/jpeg2swf /home/xiazai/2.jpg -o /home/xiazai/2.swf ");
每条命令后加上分号

3. LINUX+NGINX下的PHP shell_exec()函数执行linux命令 2019-08-08

LINUX+NGINX下的PHP shell_exec()函数执行linux命令

环境说明

手燃衫头有一台linux的测试服务器,最近因为业务需要,需要通过php访问另一台服务器去执行某些命令。

由于另一台服务器已经对这台服务器开了私钥,所以在终端上是可以直接执行命令而不需要输入密码的。

问题

PHP无法使用exec命令,没有任何返回值。

解决途径

1.php.ini的配置有问题。

由于php是7.0以上的版本,取消了安全模式,所以考虑PHP.ini文件配置。

打开php配置文件,里面有一行disabel_function的值,此处记录了禁止运行的函数,在里面讲exec和shell_exec,system等函数删除。

2.权限问题

修改以后PHP可以运行部分命令了,但是部分外部程序和命令仍然不能运行。使用sudo返回失败。

于是运行“whoami”查看,环境下php-frm的运行角色镇段唯是www。

于是修改sudoers文件。

vi /etc/sudoers

将www添加到

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

下面:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

www ALL=(ALL) NOPASSWD:ALL

然后找到Default requiretty这一行,把他注释掉

# Default requiretty

ps:意思就是sudo默认需要tty终端,注释掉就可以在后台执行了.

重启nginx和php-fpm

service nginx restart

service php-fpm restart

这样,PHP就可以在需要御培执行外部命令的时候使用sudo利用root身份执行命令,而不会报错或者执行失败了!

热点内容
c语言基础语法 发布:2025-06-19 09:36:50 浏览:855
网站psd源码 发布:2025-06-19 09:36:41 浏览:670
阴阳师开发脚本 发布:2025-06-19 09:34:18 浏览:859
php小程序接口开发 发布:2025-06-19 09:19:22 浏览:218
删除数据库的数据 发布:2025-06-19 09:19:22 浏览:45
粘土小游戏的服务器ip 发布:2025-06-19 09:16:50 浏览:386
安卓系统哪里设置拦截 发布:2025-06-19 09:09:21 浏览:797
湖南xp服务器租用云主机 发布:2025-06-19 09:07:48 浏览:54
js获取上传的图片路径 发布:2025-06-19 09:06:16 浏览:923
jpg压缩比 发布:2025-06-19 09:06:02 浏览:306