chroot 是一种 Unix 系统的安全机制,它可以将一个进程和它的子进程限制在一个特定的目录树中,使得这些进程无法访问其他文件和目录。
PHP 也支持 chroot,可以将 PHP 运行在一个被限制的目录树中,从而提高 PHP 的安全性。PHP chroot 可以帮助用户防止恶意代码对服务器文件造成损坏,并且可以防止用户获取服务器上的敏感信息。
要使用 PHP chroot,必须在 php.ini 中启用 chroot 功能。要启用 chroot 功能,必须将 php.ini 中的 chroot 选项设置为 On。
[chroot] ; Whether or not to enable the chroot() function ; for security purposes. chroot = On
然后就可以使用 PHP 的 chroot() 函数来将 PHP 运行在一个被限制的目录树中了。chroot() 函数有三个参数:要被限制的目录、要执行的命令、要传递给命令的参数。例如:
$result = chroot("/var/www/html", "ls", "-l");
上述代码会首先将 PHP 限制在 /var/www/html 目录树中(即所谓的“根”目录),然后执行 ls -l 命令并把执行结果存储在 $result 变量中。
PHP chroot 是一个很好的安全机制,但是也有一些注意事项。例如:如果应用系统依赖外部库或者外部命令来工作(例如 ImageMagick 或者 ffmpeg ) ,就不能使用 chroot() 来保证安全性了。因此应该根据应用情况来决定是否使用 PHP chroot 来保证安全性。
PHP Directory 参考手册
改变根目录:
结果:
chroot() 函数改变当前进程的根目录为 directory,并把当前工作目录改为 "/"。
注意:该函数需要 root 权限,且仅在 GNU 和 BSD 系统上仅当使用 CLI、CGI、嵌入式 SAPI 时可用。该函数没有在 Windows 平台上实现。
参数 | 描述 |
---|---|
directory | 必需。规定新的根目录路径。 |
返回值: | 成功则返回 TRUE,失败则返回 FALSE。 |
---|---|
PHP 版本: | 4.0.5+ |
PHP opendir() 函数PHP Directory 参考手册实例 打开一个目录,读取它的内容,然后关闭:?php$dir = /images/;// Open a directo...
PHP array_chunk() 函数 完整的 PHP Array 参考手册实例 把数组分割为带有两个元素的数组块:?php $cars=array(Volvo,BMW,Toyota...
PHP array_diff_key() 函数 完整的 PHP Array 参考手册实例 比较两个数组的键名,并返回差集:?php $a1=array(a=red,b=green,c=b...
PHP array_fill() 函数 完整的 PHP Array 参考手册实例 用给定的键值填充数组:?php $a1=array_fill(3,4,blue);print_r($a1);?运...
PHP array_intersect_uassoc() 函数 完整的 PHP Array 参考手册实例 比较两个数组的键名和键值(使用用户自定义函数比较键名),...