如果其中一个目录是符号链接,则无法在php中打开文件

时间:2012-07-19 12:18:53

标签: php path symlink

我有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但我认为它是用于执行脚本的。任何想法,如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我发现base_dir设置为'/srv/www/staging.server.com'并且suhosin.executor.allow_symlink设置为关闭的原因

  

当使用open_basedir时,此标志会重新激活symlink(),即   在Suhosin中默认禁用> = 0.9.6。允许symlink()while   使用open_basedir实际上是一种安全风险。