PHP的ssh2_exec挂在“crontab -e”命令

我用ssh2_connect连接到远程服务器。 在我的安全日志中,我得到了

 Feb 22 11:41:57 centos sshd[3243]: Accepted publickey for subscr from 83.166.241.41 port 53306 ssh2 Feb 22 11:41:57 centos sshd[3243]: pam_unix(sshd:session): session opened for user subscr by (uid=0) 

所有的shell命令工作,但我试着“crontab -e”我的PHP脚本挂起

crontab日志中我看到

 Feb 22 11:41:57 centos crontab[3248]: (subscr) BEGIN EDIT (subscr) 

我试过“crontab -r”命令,它的工作原理。 在crontab日志中我看到

 Feb 22 11:41:37 centos crontab[3205]: (subscr) DELETE (subscr) 

所以我猜GUESS的所有权限都没问题。

我的问题是为什么PHP脚本只有当我运行时挂起

 ssh2_exec($conn, "crontab -e"); 

crontab -e发布交互式编辑器来修改正在运行的用户的crontab 。 如果你正在php中运行,你很可能没有本地terminal和任何可以显示编辑器的东西(除非你有一些特殊的模拟器,否则无法在浏览器中显示它)。