[英]command working in cmd but not through php shell_exec
我在 cmd 中有一個命令,如下所示
C:\wamp\www\editor\DocTo-master\exe\docto -f C:\wamp\www\editor\uploaded\uploaded_files_21_original\AffidavitinDIR-4.docx -O "C:\wamp\www\editor\uploaded\uploaded_files_21_original\pdf\21.pdf" -T wdFormatPDF
當我在 cmd 中運行它時,它工作得很好,並按預期提供輸出(doc 到 pdf)。 但是,當我在 php shell_exec 中放置相同的命令時
shell_exec('C:\wamp\www\editor\DocTo-master\exe\docto -f C:\wamp\www\editor\uploaded\uploaded_files_21_original\AffidavitinDIR-4.docx -O "C:\wamp\www\editor\uploaded\uploaded_files_21_original\pdf\21.pdf" -T wdFormatPDF');
我沒有在 php 中使用上述代碼獲得所需的輸出。 任何幫助將不勝感激
似乎大多數問題都與權限或重定向有關。
您當前的用戶憑據允許您在該目錄中創建文件,但網絡服務器用戶名是否可以?
將 stderr 重定向到 stdout 以獲取錯誤信息。
引用正確嗎?
查看網絡服務器錯誤日志。
我是docto的作者。
這很可能是權限問題,因為 php 不一定具有在您的服務器上運行 word 的正確權限。
我自己在運行 Word 2010 的 Windows 2012 服務器上運行它,它工作正常。 DocTo 安裝在 Web 服務器根目錄上方的子目錄中。
PHP 以 NTSystem 權限運行
另外我正在使用 exec 而不是 shell_exec 不確定這是否有任何區別
要解決此問題,您必須在以下路徑中創建桌面文件夾:
C:\\Windows\\SysWOW64\\config\\systemprofile\\Desktop
C:\\Windows\\System32\\config\\systemprofile\\Desktop
然后轉到(控制面板\\管理工具\\服務)並右鍵單擊您的 apache 服務。 轉到“登錄”選項卡並啟用“允許服務與桌面交互”選項。
然后重置您的 apache 服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.