php shell_exec 可以 运行 命令但不能 sh 文件
php shell_exec can run command but not sh file
来自 PHP 我可以 运行 使用 shell_exec 命令但不能 运行 bash 文件
我运行这个命令
sudo ls /var/www/
我得到了结果
/var/www/1.sh
/var/www/2.sh
/var/www/3.sh
但是当我运行这个命令没有任何反应
$output = shell_exec('sudo sh /var/www/1.sh > /dev/null 2>&1');
echo "<pre>$output</pre>";
我在1.sh中添加了这段代码
#!/bin/bash
/usr/bin/echo "test" > TEST1.txt
它在我输入终端时有效 ./1.sh 所以只有 php 无效
服务器:centos
来自 PHP 我想我有执行命令的 root 权限
您的 bash 脚本已输出到 TEST1.txt 文件,而不是控制台!
试试看:
#!/bin/bash
/usr/bin/echo "test"
或者那样
$output = shell_exec('sudo sh /var/www/1.sh 2>&1');
echo "<pre>" .file_get_contents('/var/www/TEST1.txt'). "</pre>";
那个字符串是错误的!!!!
$output = shell_exec('sudo sh /var/www/1.sh 2>&1');
&1
没有原因,因为没有定义
$output = shell_exec('sudo sh /var/www/1.sh > /dev/null 2>&1');
在这种情况下&1
=== /dev/null
这将解决您的问题
$output = shell_exec('sudo /usr/bin/sh /var/www/1.sh > /dev/null 2>&1');
来自 PHP 我可以 运行 使用 shell_exec 命令但不能 运行 bash 文件
我运行这个命令
sudo ls /var/www/
我得到了结果
/var/www/1.sh
/var/www/2.sh
/var/www/3.sh
但是当我运行这个命令没有任何反应
$output = shell_exec('sudo sh /var/www/1.sh > /dev/null 2>&1');
echo "<pre>$output</pre>";
我在1.sh中添加了这段代码
#!/bin/bash
/usr/bin/echo "test" > TEST1.txt
它在我输入终端时有效 ./1.sh 所以只有 php 无效
服务器:centos 来自 PHP 我想我有执行命令的 root 权限
您的 bash 脚本已输出到 TEST1.txt 文件,而不是控制台!
试试看:
#!/bin/bash
/usr/bin/echo "test"
或者那样
$output = shell_exec('sudo sh /var/www/1.sh 2>&1');
echo "<pre>" .file_get_contents('/var/www/TEST1.txt'). "</pre>";
那个字符串是错误的!!!!
$output = shell_exec('sudo sh /var/www/1.sh 2>&1');
&1
没有原因,因为没有定义
$output = shell_exec('sudo sh /var/www/1.sh > /dev/null 2>&1');
在这种情况下&1
=== /dev/null
这将解决您的问题
$output = shell_exec('sudo /usr/bin/sh /var/www/1.sh > /dev/null 2>&1');