使用.user.ini和open_basedir防跨站php
一服务器上多个站点,我们可以利用php的.user.ini文件进行隔离
如A站点目录在 /home/web/a B站长在/home/web/b目录,现在要使相互隔离
php.ini中的.user.ini配置
把;open_basedir = 注释
要使.user.ini生效,要设置php.ini 中的
user_ini.filename = ".user.ini"
user_ini.cache_ttl = 300
要把前面的;号取消
toch ./home/web/a/.user.ini
echo 'open_basedir=./:/tmp/: /home/web/a/:/proc/ ' >./home/web/a/.user.ini
touch . /home/web/b/ .user.ini
echo 'open_basedir=./:/tmp/: /home/web/b/ :/proc/' > ./home/web/b/.user.ini
chmod 644 /home/web/a/.user.ini
chmod 644 /home/web/b/.user.ini
chown -R root:root /home/web/a/.user.ini
chown -R root:root /home/web/b/.user.ini
chattr +i /home/web/a/.user.ini
chattr +i /home/web/b/.user.ini
还需要在php.ini里配置
在disable_functions=后面加上如下eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,disk_total_space,disk_free_space,error_log,putenv,popen,ini_set,chmod,assert,pcntl_exec,phpfunc;
本文系作者 @天边的云 原创发布在Loshub站点。未经许可,禁止转载。
暂无评论数据