0
one.sh了shell_exec不從外殼執行SH文件Inkscape的命令
#! bin/bash
command="cp 357.svg 000.svg"
echo "Executing Command";
exec $command;
。
two.sh
#! bin/bash
command="/usr/bin/inkscape -f 357.svg -e 357.png"
echo "Executing Command";
exec $command;
從外殼sh two.sh
工作正常
但使用PHPshell_exec("sh two.sh")
不執行
任何一個可以告訴它爲什麼不執行?
警告:無法創建配置文件目錄(權限被拒絕)消息:無法創建配置文件目錄/var/www/.config/inkscape。消息:Inkscape將以默認設置運行,並且不會保存新設置。 (inkscape:..):libgnomevfs - 警告:無法創建〜/ .gnome2目錄:權限被拒絕緊急保存已激活!緊急保存完成。 Inkscape現在將關閉。如果您可以重現此崩潰,消息:錯誤:Inkscape遇到內部錯誤,現在將關閉。分段錯誤 – Urvish
我不知道您是否可以在服務器上更改內容,但是消息很明確:inkscape想要創建一個配置目錄並且不允許。 爲了測試確實是快速和骯髒的: (須藤)chmod爲0777 /var/www/.config/inkscape 或者: 設置正確的目錄權限,使您的用戶(假設www數據)在該目錄可寫 – klapvee
@klapvee謝謝你。從PHP腳本運行時,我遇到了相同的Inkscape錯誤消息。然後我以www-data的身份登錄並執行完全相同的命令,該命令產生了相同的警告,但它工作正常!*我得出結論:缺少的.gnome2目錄不會成爲問題。無論出於何種原因,添加它實際上確實修復了Inkscape崩潰。 (有關信息:默認情況下爲/var/www/.gnome2。爲確保您擁有正確的路徑,請檢查'strace inkscape --with-your-args'的輸出。) –