我有3个站点直播,升级和开发,devel站点有来自实时和数据库副本的所有文件的副本但是暂存不是因为它们都在同一物理服务器上(暂存和开发)我想从dev开始同步文件生活(它是30GB),但我的PHP脚本无法打开路径中的一个目录是符号链接的文件。
我有符号链接
/srv/www/staging.server.com/htdocs/people/ to /srv/www/dev.server.com/htdocs/people/
我有示例文件/srv/www/dev.server.com/htdocs/people/gnokii/zuluwarrior.svg
我可以从comman行和浏览器访问它(/srv/www/staging.server.com/htdocs/people/zuluwarrior.svg
}但是php无法打开该文件。
file_exists
返回false,file
返回空数组。 (我有将svg转换为png的代码,可以在live服务器和dev服务器上运行,但不会因为这个而在staging上运行。)
是否存在一些disble synlinks的php配置?我发现suhosin.executor.allow_symlink = Off
但我认为它是用于执行脚本的。任何想法,如何解决这个问题?
答案 0 :(得分:2)
我发现base_dir设置为'/srv/www/staging.server.com'并且suhosin.executor.allow_symlink
设置为关闭的原因
当使用open_basedir时,此标志会重新激活symlink(),即 在Suhosin中默认禁用> = 0.9.6。允许symlink()while 使用open_basedir实际上是一种安全风险。