簡體   English   中英

命令在 cmd 中工作但不是通過 php shell_exec

[英]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 服務。

http://pmlearning.info

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM