我有一个在服务器上运行的PHP代码,但我们将该代码迁移到另一台服务器,现在该代码无法运行,特别是我们希望使用带有exec指令的PHP运行.exe文件
我调试脚本,它看起来工作正常,IUSR用户和IIS_IUSR具有正确的权限,实际上exe文件正在运行,但是,当它运行时,它需要生成一些文件,这是导致问题的部分,该程序正在尝试在AppPool目录上创建文件,例如: C:\ mypath中\ somewebsite.com \8áª\ MyProgram \
其中C:\ MyPath \ somewebsite.com \是AppPool根目录,MyProgram \是应用程序正在创建的目录
其中\8áª随机生成并随时更改我们尝试运行程序,使用Process Monitor调试我可能会收到错误:PATH NOT FOUND和/或NAME INVALID,在我们修改用户的上一个服务器上IIS运行脚本(现在我们在IIS 8.5上是IIS 6上),并且文件是在用户的主目录上创建的,没有随机目录,例如: C:\ Users \用户MYUSER \ MyProgram \
其中MyUser是我们分配的用户,但在新服务器上,无论我们是否更改用户,我们都会在AppPool目录中获取文件
我认为我们可以解决这个问题,如果我们能够为IUSR用户定义一个路径并将其设置为“home”路径但是我找不到修改IUSR用户的位置,我知道这是一个内置用户IIS创建但我不确定是否可以为该用户编辑该设置。
我已经提到过我们使用IIS但是作为额外的数据,我们通过Windows Server 2012 R2运行它
有什么建议吗?
答案 0 :(得分:0)
您的主题/问题是:
IIS不允许在PHP上使用excec命令运行.exe文件
这是正确的行为!你不想通过PHP运行.exe文件,真的。您必须首先在cmd.exe上授予IUSR执行权限,但您可以为所有虚拟用户授予管理员权限。
答案 1 :(得分:0)
很多时间之后,但是PHP方面还可以,问题出在.exe文件上,exe文件创建了一些用于同一exe程序的文件,但是它使用相对路径,因此当进程运行时,找不到生成的文件,这会导致错误