在控制台中
sh /var/www/bash.sh
该脚本在 ffmpeg 命令脚本中运行...
当尝试运行脚本时,从 php 下
exec("$(sh /var/www/bash.sh)");
exec("sh /var/www/bash.sh");
它不起作用,它加载 html 页面并重置。该脚本将文件添加到目录中,从控制台运行,文件就在那里。从 php 启动,崩溃,没有文件......
在控制台中
sh /var/www/bash.sh
该脚本在 ffmpeg 命令脚本中运行...
当尝试运行脚本时,从 php 下
exec("$(sh /var/www/bash.sh)");
exec("sh /var/www/bash.sh");
它不起作用,它加载 html 页面并重置。该脚本将文件添加到目录中,从控制台运行,文件就在那里。从 php 启动,崩溃,没有文件......
选项 1。
在脚本的开头
shell
,添加负责执行脚本代码的解释器的明确指示。在你的情况下,这是sh
- 你可以使用命令locate sh
或来查看它的位置whereis sh
,通常是 this/usr/bin
。因此,在脚本的开头添加这一行然后使您的
shell
脚本可执行,为此,请使用命令chmod
为其附加一个标志x
(eXecutable
)现在您可以像任何其他程序一样运行此文件,并相应地直接调用
exec
选项 2。
PHP
- 在 Web 服务器端调用的脚本通常代表与 Web 服务器本身相同的用户运行。这通常是用户www-data
。该用户不知道程序在操作系统中的位置,不像普通用户登录后知道环境变量中指定的程序的所有路径PATH
。因此,您需要做的就是在调用时指定解释器的完整路径sh
(我已经在选项 1 中指出了如何找到它的位置)exec