Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php shell_exec未执行inkscape命令的sh文件_Php_Linux_Bash_Shell Exec_Inkscape - Fatal编程技术网

Php shell_exec未执行inkscape命令的sh文件

Php shell_exec未执行inkscape命令的sh文件,php,linux,bash,shell-exec,inkscape,Php,Linux,Bash,Shell Exec,Inkscape,1.sh 从shell执行shone.sh运行perfact,甚至在phpshell_exec(“shone.sh”)中运行perfact工作正常 2.sh #! bin/bash command="cp 357.svg 000.svg" echo "Executing Command"; exec $command; 从shellshtwo.sh运行良好 但使用phpshell\u exec(“shtwo.sh”)不执行 有人能告诉我为什么它不执行吗?试试: #! bin/bash comm

1.sh

从shell执行
shone.sh
运行perfact,甚至在php
shell_exec(“shone.sh”)中运行perfact工作正常

2.sh

#! bin/bash
command="cp 357.svg 000.svg"
echo "Executing Command";
exec $command;
从shell
shtwo.sh
运行良好

但使用php
shell\u exec(“shtwo.sh”)
不执行

有人能告诉我为什么它不执行吗?

试试:

#! bin/bash
command="/usr/bin/inkscape -f 357.svg -e 357.png"
echo "Executing Command";
exec $command;
看看输出是什么,也许它会给你一个权限被拒绝的错误。
可能还值得检查您正在与哪个用户一起运行(可能类似于www data)

警告:无法创建配置文件目录(权限被拒绝)消息:无法创建配置文件目录/var/www/.config/inkscape。消息:Inkscape将使用默认设置运行,并且不会保存新设置。(inkscape:…):libgnomevfs警告:无法创建~/.gnome2目录:权限被拒绝紧急保存已激活!紧急救援完成。Inkscape现在将关闭。如果可以重现此崩溃,则消息:Error:Inkscape遇到内部错误,将立即关闭。分段错误我不知道您是否能够在服务器上更改内容,但消息很清楚:inkscape想要创建一个config dir,不允许这样做。测试非常快速且肮脏:(sudo)chmod 0777/var/www/.config/inkscape或:设置正确的目录权限,以便您的用户(假设为www数据)可以写入该目录directory@klapvee谢谢你。从PHP脚本运行Inkscape时,我收到了相同的Inkscape错误消息。然后我以www数据的身份登录并执行了完全相同的命令,该命令产生了相同的警告,但仍然有效!我得出结论,丢失的.gnome2目录不可能是个问题。不管出于什么原因,添加它确实修复了inkscape崩溃。(有关信息,默认情况下为:/var/www/.gnome2。要确保路径正确,请使用args检查strace inkscape--的输出。
echo shell_exec("sh two.sh 2>&1;")