dongtazu3080 2014-03-12 13:58 采纳率: 100%
浏览 31

系统命令不在PHP中执行

I have a php script where some system commands are running fine and others are not. The commands that are not running can be copy and pasted to the shell and be ran just fine.

System: OSX 10.9.2 (everything is updated).

I have tried many different commands like the following.

backticks, exec(), shell_exec(), system(), passthru()

This command works fine.

exec("drush si -y --db-url=mysql://user:pass@localhost:3306/dbname");

But these commands do not run.

exec("drush sql-sync @remote.staging @dev.anme -y");
exec("git ls-remote --heads git@github.com:blablaname/name.git");

The commands that do not run can be copy and pasted into the shell and run great. I have made sure the script is being ran in the proper directory using the getcwd() function.

  • 写回答

1条回答 默认 最新

  • duanbei6427 2014-03-12 14:13
    关注

    If you call php program having exec() from web browser,It executes as www user. So www user may not have privilege to connect/sync to remote host.That's why it works on localhost and failing on remote host.

    So one solution is

    1)save the command as bash script
    2)set uid bit(It can be root or user having sufficient privilege).
    3)execute that bash script by exec so that it will run as previlged user.
    4)You should ip restrict your program since setuid is dangerous.

    setuid

    评论

报告相同问题?

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私