如何在 Windows Server 2019 上启用 PHP 到 运行 XCOPY 命令
How do I enable PHP to run XCOPY commands on Windows Server 2019
我有一个从命令行运行的 Word 到 PDF 转换器,因此我们创建了一个中间件程序来通过 Classic ASP 接受命令。这行得通,因此我们将中间件程序创建为 Windows 服务,并且一切正常,直到我们从开发服务器(Windows Server 2012)移至生产服务器(Windows服务器 2019)。现在 Windows 服务不再工作并吐出有关无法找到或连接到 COM 的错误。
所以我放弃了中间件 Windows 服务并尝试使用 PHP 到 运行 Word 到 PDF 转换器。但这要么抱怨找不到 COM,要么只是挂起。
PDF 转换器开发人员建议使用 XCOPY 测试 PHP 命令,你瞧,真正的问题是...... PHP 没有 rights/permissions 来使用 XCOPY 或PDF 转换应用程序,或我们的中间件服务。 PHP 的一个例子是...
$answer = shell_exec('xcopy /S /I /Q /Y /F "C:\IN\Word.docx" "C:\OUT\"')
echo $answer;
所以 Windows Server 2012 和 2019 之间肯定存在安全差异。如何解决 and/or 授予 PHP 对 运行 应用程序的权限?
是的,UAC 已禁用,IN 和 OUT 文件夹的权限为所有人读取、写入和执行。
如何在 Windows Server 2019 上启用 PHP 运行 XCOPY 命令?
您的代码可在 Windows Server 2019 上与 PHP 一起使用。如果它在您的服务器上不起作用,请尝试以下操作:
检查 PDF 安装到 C:\PDF\ 而不是 C:\program Files\ 因为文件夹名称中的 space 可能是 PHP 是在 Apache 上设计的 运行 而不是 Windows.
在 IIS 管理器中检查 PHP 的处理程序映射。您可能会发现一两个:
- FastCGI
- PHP_via_FastCGI
它们都应该指向 C:\PHP\php-cgi.exe
如果仍然出现错误,请检查 C:\Windows\Temp\ 是否有任何 FastCGI 错误。
我有一个从命令行运行的 Word 到 PDF 转换器,因此我们创建了一个中间件程序来通过 Classic ASP 接受命令。这行得通,因此我们将中间件程序创建为 Windows 服务,并且一切正常,直到我们从开发服务器(Windows Server 2012)移至生产服务器(Windows服务器 2019)。现在 Windows 服务不再工作并吐出有关无法找到或连接到 COM 的错误。
所以我放弃了中间件 Windows 服务并尝试使用 PHP 到 运行 Word 到 PDF 转换器。但这要么抱怨找不到 COM,要么只是挂起。
PDF 转换器开发人员建议使用 XCOPY 测试 PHP 命令,你瞧,真正的问题是...... PHP 没有 rights/permissions 来使用 XCOPY 或PDF 转换应用程序,或我们的中间件服务。 PHP 的一个例子是...
$answer = shell_exec('xcopy /S /I /Q /Y /F "C:\IN\Word.docx" "C:\OUT\"')
echo $answer;
所以 Windows Server 2012 和 2019 之间肯定存在安全差异。如何解决 and/or 授予 PHP 对 运行 应用程序的权限?
是的,UAC 已禁用,IN 和 OUT 文件夹的权限为所有人读取、写入和执行。
如何在 Windows Server 2019 上启用 PHP 运行 XCOPY 命令?
您的代码可在 Windows Server 2019 上与 PHP 一起使用。如果它在您的服务器上不起作用,请尝试以下操作:
检查 PDF 安装到 C:\PDF\ 而不是 C:\program Files\ 因为文件夹名称中的 space 可能是 PHP 是在 Apache 上设计的 运行 而不是 Windows.
在 IIS 管理器中检查 PHP 的处理程序映射。您可能会发现一两个:
- FastCGI
- PHP_via_FastCGI
它们都应该指向 C:\PHP\php-cgi.exe
如果仍然出现错误,请检查 C:\Windows\Temp\ 是否有任何 FastCGI 错误。