发布网友 发布时间:2022-04-06 00:40
共2个回答
懂视网 时间:2022-04-06 05:01
php中popen不能使用的解决方法:通过执行【chown www.www -R dir】命令来改变目录或文件的所用者,或者执行【chmod 7】命令改变文件权限。
原因分析:
(推荐教程:php视频教程)
1、权限问题
如果进行文件/目录 的操作,需要注意php是否有操作的权限,可以使用chown 和chmod两个命令来进行所有者和操作权限的修改。chown www.www -R dir 改变目录或文件的拥有者 chmod改变文件权限 chmod 7。
2、不要使用缩写或者省略参数
在服务器上,使用ll命令,或者svn up更新当前目录,都是没问题的,但是在php中使用则均未获得任何结果,猜测为两者对命令的分析处理不一样,也即是执行环境,不是简单地php把此命令传递给shell。以后使用时,尽量加上所有需要的参数。
热心网友 时间:2022-04-06 02:09
看来你对 PHP 的理解有偏差啊。。PHP 和系统程序是两回事。。你用 popen 只是让 PHP 对系统下令执行了某个功能。之后 PHP 等待执行结果。
也就是说,PHP 只是一个下命令的人,执行这个事情的是操作系统。
你用 exit 只能中断 PHP 的等待,而已经执行的应用程序方面,如果它不能自己结束运行,那你得用另一个命令去 kill 了它。追问可能是我没描述清楚:
比如我用popen启动一个shell脚本。php进程号是1,shell进程号是2.
我用exit退出了php,但是进程号为1的进程还在
追答PHP 是会等待被它启动的程序执行结束的。。如果 shell 永远不结束。那 PHP 进程也会一直停在那里。