Centos与Debian PHP环境变量问题。

原创
2016-06-23 14:17:01 897浏览

通过PHP shell_exec来执行 shell脚本。
shell脚本中有执行到python,

python脚本,os.path.expanduser('~')
在Centos系统是取到 /root/
而Debian系统是取到 /home/www

PHP的真实用户是www的,但上面shell脚本是以root权限运行的。


Centos下是取到root用户主目录
/root/

而Debian是取到www用户主目录
/home/www

现在怎么保持一致,有些晕了。


回复讨论(解决方案)

你把文件chown 一下,
用php里面的get_current_user,就应该都是www了

因为php执行时,是web server的当前用户,所以和你直接shell里面的用户是不一致的,如果你想保持一致的话,就别用~,或者在shell中执行python中使用www用户

其实也说明Centos中php执行的当前用户是root 。。。

你把文件chown 一下,
用php里面的get_current_user,就应该都是www了

这个没关系。

因为php执行时,是web server的当前用户,所以和你直接shell里面的用户是不一致的,如果你想保持一致的话,就别用~,或者在shell中执行python中使用www用户

其实也说明Centos中php执行的当前用户是root 。。。

有些差错,已解决了,是一致的。
现在都是www用户了,
php脚本(www用户) -> shell_exec() -> C(提权root用户) -> shell脚本(root用户) -> python(反而是www用户)
不太明白python怎么是取到www的主目录。
shell id -u 是0,也就是root的,按道理应该取到root的主目录吧。
python反而取到真实的php用户www的主目录。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。