[英]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.