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

时间:2014-06-14 08:50:06

标签: php cmd pdf-generation shell-exec docto

我在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中使用上面的代码获得所需的输出。 任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

似乎大多数问题都与权限或重定向有关。

您当前的用户凭据允许您在该目录中创建文件但是是否使用网络服务器用户名?

将stderr重定向到stdout以获取错误信息。

报价是否正确?

查看网络服务器错误日志。

答案 1 :(得分:0)

我是docto的作者。

这很可能是一个权限问题,因为php不一定具有在您的服务器上运行word的正确权限。

我自己在运行Word 2010的Windows 2012服务器上运行它,它运行正常。 DocTo安装在Webserver根目录上的子目录中。

PHP作为NTS系统权限运行

我也在使用exec而不是shell_exec,不确定是否有任何不同

答案 2 :(得分:0)


要解决此问题,必须在以下路径中创建“桌面”文件夹:
C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
C:\ Windows \ System32 \ config \ systemprofile \ Desktop

然后转到(控制面板\管理工具\服务)并右键单击您的Apache服务。请转到“登录”标签,然后启用“允许服务与桌面交互”选项。

然后重置您的Apache服务。

https://www.youtube.com/channel/UCYiyz1y8Qf4EZjMXodwH1iw/videos
https://www.linkedin.com/in/pmlearning/
谢谢