Python script through php on Amazon EC2

后端 未结 2 1658
小鲜肉
小鲜肉 2021-01-21 20:57

I am trying to run a simple python script through php on Amazon EC2 instance.

The file is working fine on terminal i.e am getting the output. But when am trying the same

2条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-21 21:16

    After a lot of "scratching my head", I finally figured it out.

    First of all you one need to figure out the current user who is executing the php. One can either check out php.info file or use

    $processUser = posix_getpwuid(posix_geteuid());
    print $processUser['name'];
    

    This will give you the user who is executing the code. In my case it was apache rather than www-data (I shouldn't have assumed so in first place).

    After that you will need to edit the sudoers file (etc/sudoers)

    Add the lines over there.

    apache ALL=NOPASSWD:/var/www/myfile.py
    apache ALL=NOPASSWD:/usr/bin/pythondestination
    

    or you can simply add

    apache ALL=(ALL)        NOPASSWD:ALL
    

    (You probably should just specify the path).

    Then execute the script through php.

提交回复
热议问题