PHP open_basedir的一些问题
open_basedir: 将用户可操作的文件【de wén jiàn】限制在【zhì zài】🥗某目录【lù】😴下🚖;
——————————————————————————–
如下【rú xià】🚖是php.ini中的原【zhōng de yuán】📟文说📤明以及【míng yǐ jí】默🤖认配置【rèn pèi zhì】🌋:
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory or
; per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
open_basedir = .
open_basedir可将用【kě jiāng yòng】户访问文件的📻活动范围限制在【zhì zài】🥗指定的【zhǐ dìng de】区域【qū yù】,通常是其家目录【lù】😴的路径,也可用符号【fú hào】”.”来代表🌌当前目🕟录【lù】😴。注意用【zhù yì yòng】open_basedir指定的【zhǐ dìng de】限制实【xiàn zhì shí】🧢际上是【jì shàng shì】前缀【qián zhuì】,而不是🔐目录【lù】😴名。举例来【jǔ lì lái】说📤: 若”open_basedir = /dir/user”, 那么目【nà me mù】录【lù】😴 “/dir/user” 和 “/dir/user1″都是可👸以访问😚的。所以如果要将访问限制在【zhì zài】🥗仅为指定的【zhǐ dìng de】目录【lù】🦇,请用斜🔓线结束路径名。例如设【lì rú shè】置成:“open_basedir = /dir/user/”
open_basedir也可以【yě kě yǐ】同时设【tóng shí shè】置多个🈵目录, 在【zài】Windows中用分【zhōng yòng fèn】号分隔【hào fèn gé】🎁目录,在【zài】任何其它系统中用✋冒号分隔【hào fèn gé】🎁目录。当其作用于📘Apache模块时,父目录中的【zhōng de】♌open_basedir路径自【lù jìng zì】动被继承🍡。
有三种【yǒu sān zhǒng】方法可🧦以在Apache中为指定的用户做独🎷立的设【lì de shè】置【zhì】🌲:
(a) 在Apache的🛤httpd.conf中Directory的🛤相应设【xiàng yīng shè】置方法【zhì fāng fǎ】🌋:
php_admin_value open_basedir /usr/local/apache/htdocs/
#设置多【shè zhì duō】🍸个目录【gè mù lù】🌪可以参考如下:
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) 在【zài】Apache的httpd.conf中🚦VirtualHost的相应设置方【shè zhì fāng】法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#设置多👈个目录可以参考如下【kǎo rú xià】🤽:
php_admin_value open_basedir /var/www/html/:/var/tmp/
(c) 因为【yīn wéi】VirtualHost中设置了open_basedir之后, 这个虚【zhè gè xū】拟用户【nǐ yòng hù】👘就不会🔩再自动继承php.ini中的【zhōng de】open_basedir设置值🐆了,这就难🤜以达到灵活的【líng huó de】配置措💽施, 所以建议您不要在【yào zài】VirtualHost中设置此项限制➖. 例如,可以在php.ini中设置open_basedir = .:/tmp/, 这个设【zhè gè shè】😫置表示【zhì biǎo shì】🏙允许访【yǔn xǔ fǎng】问当前目录【mù lù】👭(即【jí】PHP脚本文☝件所在😷之目录【zhī mù lù】👭)和/tmp/目录【mù lù】👭.
请注意: 若在【ruò zài】php.ini所设置【zhì】🎲的上传文件临时目录【shí mù lù】✊为🎵/tmp/, 那么设【nà me shè】置【zhì】🎲open_basedir时就必须包含/tmp/,否则会导致上传失败⬆. 新版【xīn bǎn】php则会提😦示【shì】”open_basedir restriction in effect”
警告信【jǐng gào xìn】息, 但🕵move_uploaded_file()函数仍👱然可以成功取【chéng gōng qǔ】🧖出【chū】👰/tmp/目录下的上传文件,不知道这是漏【zhè shì lòu】洞还是🚛新功能.
关键词【guān jiàn cí】🔋:PHP,open_basedir
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1