PHP的命令行(cmd)执行问题

PHP的命令行(cmd)执行问题,php,shell,yii,command-line,Php,Shell,Yii,Command Line,我尝试运行一个非常简单的PHP代码,在我的PC上打开一个名为“Cyberghost”的程序。在这段代码中,我使用了shell_exec和exec,如下所示 <?php echo shell_exec('cyberghost /wait '); echo shell_exec('whoami'); echo exec('cyberghost /wait '); echo exec('whoami'); ?> 第一个命令尚未执行,程序尚未打开。但是第二个命令运行得很好,并返

我尝试运行一个非常简单的PHP代码,在我的PC上打开一个名为“Cyberghost”的程序。在这段代码中,我使用了shell_exec和exec,如下所示

<?php
echo  shell_exec('cyberghost /wait ');
echo  shell_exec('whoami');
echo  exec('cyberghost /wait ');
echo  exec('whoami');
?>

第一个命令尚未执行,程序尚未打开。但是第二个命令运行得很好,并返回(ahmed\ahmed saleh ahmed\ahmed saleh),这是完全正确的

你知道怎么解决这个问题吗


[编辑]注意:我在环境变量路径中添加了Cyberghost路径。当我使用if条件时,它显示所有命令都已成功执行。

好吧,我已经找到了问题的答案

因此,我必须首先指出,上述细节只是我主要问题的一个简单版本。我试图创建一个程序,通过cyberghost更改IP地址,然后打开一个仅在美国有效的URL。 执行以下cyberghost命令行时: cyberghost/连接/等待

它表明在更改您的IP地址之前,该命令已成功执行。改变发生在大约20秒后,所以我的任务总是无法打开USA URL


要解决这个问题,您需要执行一个命令行,等待20秒(至少)

cyberghost是否在正在打开的shell的路径中?我猜不是。请改为尝试
shell\u exec(“'c:\program files\whatever\cyberghost”/wait”)
。执行失败会导致什么错误?@Mark B:是的,我已将cyberghost添加到环境变量的路径中。而且它在命令行中工作得很好,没有完整的path@Mureinik:我没有收到任何错误。当我使用if条件时,命令已经被成功激活。虽然它没有打开程序