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

ファイルのパスを非永続的な方法で保存していたことが判明しました。ホストがサーバー上でアプリを移動することがあるため、パスが変更され、unlink()が存在しないパスにアクセスしようとします...ですから、ここで答えるべきことは何もありません、ごめんなさい。

于 2013-01-06T11:40:42.243 に答える
0

dirname をFILEと組み合わせて使用​​して、正しいパスを取得しようとしましたか?

dirname(__FILE__)
于 2013-01-04T13:49:38.523 に答える