Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-exec,shell\u exec,系统不工作_Php_Exec - Fatal编程技术网

PHP-exec,shell\u exec,系统不工作

PHP-exec,shell\u exec,系统不工作,php,exec,Php,Exec,我读了很多类似的问题,但没有一个适合我 im使用WAMP2.2、Apache2.0、PHPV5.3.8 safe_mode=off-禁用从php.ini中删除的_函数我正在尝试执行 exec("chrome.exe google.com"); 当我尝试时,什么都没有发生 exec("calc"); 尽管我将apache服务的用户更改为Administrator,并使用 exec("whoami"); 问题出在哪里?CMD和php shell的环境路径可能不同。 您必须首先给出文件的完整路径

我读了很多类似的问题,但没有一个适合我

im使用WAMP2.2、Apache2.0、PHPV5.3.8

safe_mode=off-禁用从php.ini中删除的_函数我正在尝试执行

exec("chrome.exe google.com");
当我尝试时,什么都没有发生

exec("calc");
尽管我将apache服务的用户更改为Administrator,并使用

exec("whoami");

问题出在哪里?

CMD和php shell的环境路径可能不同。 您必须首先给出文件的完整路径,或者在php中导出chrome.exe的路径

另外,我认为
chrome.exe
打开页面需要XServer,php无法在shell中打开图形界面。这些命令并没有作为父级传递给实际的shell,所以php文件不能为您“启动”应用程序

请阅读exec函数的详细信息:

还可以尝试添加
2>errors.txt
,查看程序执行过程中出现的错误

--

程序需要知道要连接到哪个X服务器,并且需要具有连接到该服务器的权限。使用DISPLAY环境变量指定X服务器;如果您是从中的终端运行PHP程序,则通常会自动设置 十、 或者从侏儒面板或类似的东西;但是,如果您以其他方式运行PHP脚本,它可能不知道要连接到哪个X服务器

X有多种指定连接到服务器的权限的方法,但最常见的方法是使用用户主目录中名为“.Xauthority”的文件。因为只有在X服务器上登录的用户才能读取此文件,所以他们是唯一可以运行GUI程序的用户。因此,如果您以登录X服务器的同一用户的身份启动PHP用户,那么权限方面应该没有任何问题。但是,如果PHP程序以其他用户的身份运行,则必须授予该用户访问X服务器的权限

参考:
(我知道link是针对linux的,对于Windows不会有完全相同的解决方案,但是
exec()
仍然需要知道要引用哪个X接口)

停止Apache作为服务运行

当windows运行服务时,它不是以启动服务器或管理服务器的用户的身份直接运行的。因此,它很可能是在服务环境中启动chrome,因此您不会看到它加载到桌面上。有两种方法可以解决此问题

停止apache服务浏览到您的apache目录并手动运行httpd.exe,然后尝试您的脚本它应该可以工作,或者如果它不需要通过web请求运行,那么它不使用浏览器中的任何内容,您可以允许它使用
c:\wamp\php\php.exe yourfile.php
(您的php路径应该替换为
c:\wamp\php

是否尝试使用php脚本?



它正在工作。

chrome.exe
在您当前的工作目录中还是PATH变量中?在CMD上执行chrome.exe google.com时,它工作正常。我必须问您如何以管理员身份运行apache,您是否以服务身份运行?Windows Vista/7中的哪些操作系统没有管理用户我的用户是管理员and我的操作系统是win7,我以管理员的身份运行WAMP,apache服务以管理员的身份运行admin@DaveRandomWindows 7没有“管理员”帐户这是一个用户组名,包含管理员提升权限Windows 7或Vista中没有管理员用户。这与ubuntu不同,ubuntu的根帐户仍然存在,只是将其锁定,MS将其删除,用于Windows域上使用多年的提升权限系统,为什么另一个PC可以给另一个Windows 7/Vista操作系统上的用户授予相同的权限,它通常在Windows中没有X服务器。OK,我知道了。我试图让JAR文件打开Chrome,它工作得很好,但是当我从PHP调用它时,什么也没发生。是因为JAR文件被认为是GUI程序还是有什么问题?你尝试过错误吗?使用
yourcommand 2>errors.txt检查?它将显示程序抛出的错误,这可能有助于更好地理解问题
<?php shell_exec('notepad.exe');?>