我读了很多类似的问题,但没有任何关系与我合作
即时使用wamp 2.2,Apache 2.0,PHP V5.3.8
safe_mode = off - disabled_functions从php.ini中删除我正在尝试执行
exec("chrome.exe google.com");
当我尝试
时没有任何反应exec("calc");
windows显示了在不同用户中执行calc的奇怪消息,尽管我将用户的apache服务更改为Administrator并且我使用
验证用户exec("whoami");
问题出在哪里?
答案 0 :(得分:0)
CMD和php shell的环境路径可能不一样。
您要么必须提供文件的完整路径,要么export
首先在chrome.exe
中显示chrome.exe
的路径
另外,我相信2> errors.txt
打开一个页面需要XServer,php无法在shell中打开图形界面。这些命令不会作为父命令传递给实际的shell,因此php文件无法为您“启动”应用程序。
请阅读exec函数的具体内容:
PHP exec
Reference
同时尝试添加exec()
以查看执行程序时的错误。
-
程序需要知道要连接的X服务器,并且需要具有连接到该服务器的权限。使用DISPLAY环境变量指定X服务器;如果您从终端运行PHP程序,通常会自动设置 X,或来自GNOME面板或类似的东西;但是,如果您以其他方式运行PHP脚本,则可能无法知道要连接的X服务器。
X有多种指定连接服务器权限的方法,但最常见的方法是在用户主目录中使用名为“.Xauthority”的文件。因为只有在X服务器上登录的用户才能读取此文件,所以他们是唯一可以运行GUI程序的用户。因此,如果您将PHP用户作为在X服务器上登录的同一用户启动,则不应该对权限有任何问题。但是,如果PHP程序作为其他用户运行,则必须授予该用户访问X服务器的权限。
参考:http://bytes.com/topic/php/answers/838364-cant-launch-graphical-apps-php-exec-ubuntu-8-04-system (我知道该链接适用于Linux,并且不会为Windows提供完全相同的解决方案,但{{1}}仍需要知道要引用哪个X接口)
答案 1 :(得分:0)
停止Apache作为服务运行。
当Windows运行服务时,它不会直接作为启动服务器或管理的用户直接运行,因此很可能在服务环境中启动chrome,因此您不会在桌面上看到它加载有两种方法绕过这个
停止apache服务浏览到你的apache目录并运行httpd.exe manualy然后尝试你的脚本它应该工作或者如果它不需要通过web请求运行所以它不使用浏览器中的任何东西你可以允许它使用c:\wamp\php\php.exe yourfile.php
(您的php路径应替换为c:\wamp\php
)
答案 2 :(得分:0)
试试 PHP 脚本?
<?php shell_exec('notepad.exe');?>
它正在工作。