0

我有以下常量:FSROOT设置如下:getcwd(). 我可以在我的应用程序中的任何地方使用这个常量,而不必担心路径,例如:require_once(FSROOT . '/includes/php/something.php).

但是,我最近在我的应用程序中实现了一些文件,并且在某些事件中我需要删除一些文件,这是我在本地执行的操作:

unlink( FSROOT . '/somefile.pdf' );

在我的本地环境中,这非常有效。但是在服务器上我收到一个错误:

unlink(): open_basedir restriction in effect. File(/mnt/var/[...]/app/somefile.pdf) is not within the allowed path(s): (/var/[...]/app/)

所以问题似乎/mnt/是从返回的目录getcwd()但与我允许的路径不匹配!

我有点困惑,因为FSROOT路径可以在任何函数中使用,但unlink(). 这也是我不想改变的原因。有没有其他方法可以删除文件?还是我必须手动创建另一个常量来使用unlink()

或者我应该使用 getcwd() 的替代方法吗?

4

2 回答 2

0

您是否尝试过将 dirname 与FILE结合使用来获得正确的路径?

dirname(__FILE__)
于 2013-01-04T13:49:38.523 回答
0

原来我以非持久方式存储文件的路径,我的主机有时会在服务器上移动我的应用程序,所以路径会改变,并且 unlink() 会尝试访问不存在的路径......所以这里真的没有什么可以回答的,抱歉。

于 2013-01-06T11:40:42.243 回答