如何控制新生成的文件的属性?通过php.ini参数设置。
比如我的环境是,freebsd+mysql5+php5,现在要求让php生成出来的新文件(包括目录)都是777权限,通过php.ini能做到吗? http://php.net/manual/en/function.chmod.php 回复 2# maochanglu我的意思是,不通过chmod,通过php.ini强制使所有新生成的文件,属性都是777,可能吗。。? 用umask屏蔽字来控制,php进程的屏蔽字由apache/nginx的控制,启动apache/nginx的时候,加入umask为000就行了。但值得注意的是 不管屏蔽码是多少:
·新创建的文件默认不具有可执行允可权限。
·新创建的目录默认具有可执行允可权限。
本帖最后由 shang2010 于 2012-06-26 15:46 编辑
sunceenjoy 发表于 2012-06-26 14:32 static/image/common/back.gif
用umask屏蔽字来控制,php进程的屏蔽字由apache/nginx的控制,启动apache/nginx的时候,加入umask为000就行了 ...
所以你的回答还没有满足楼主需求,
我这边没有bsd,,:mrgreen: 回复 4# sunceenjoy
求详细说明!也就是说,通过控制apache,能让php生成出来的文件属性默认成777吗?利用/usr/local/apache2/bin/envvars 可以控制apache的umask吗?
关注中。关注中。关注中。 拿apache来说吧,vi /usr/local/apache2/bin/apachectl,在里面加入:
umask 000
因为apache启动的时候,子进程会继承父进程的一些环境变量,包括文件屏蔽字umask
从apachectl的前面几行可以看到:
if test -f /usr/local/apache2/bin/envvars; then
. /usr/local/apache2/bin/envvars
fi
所以你在envvars里面加入umask 000这个也是可以的. 回复 8# sunceenjoy
失败了。。修改之后不起作用。php mkdir()默认的属性依然没有改变(#不管我怎么修改umask,默认权限都是755的)。这个跟编译时的参数有关系吗? --with-suexec-umask 和这个有关系吗?
回复 8# sunceenjoy
我编译的时候没有使用--with-suexec-umask这个参数。
页:
[1]