web-dev-qa-db-ja.com

PHP:現在の作業ディレクトリをスクリプトを実行するディレクトリと同じに設定する方法

私は自分のウェブサイトをあるサーバーから別のサーバーに転送している最中です。現在の作業ディレクトリを使用するis_readable関数を使用するphpスクリプトがいくつかあります。

古いサーバーでは、getcwd()を呼び出すと、スクリプトが実行されているフォルダーが出力されます。新しいサーバーでは、ルートディレクトリ「/」を出力します。

'/'の代わりに現在のフォルダーを使用するようにPHPを構成する方法を知りたいです。PHP古いサーバーですでに機能しているコード。新しいサーバーを構成できますが、変更する設定がわかりません。役立つ場合は、Apache2を使用しています。

編集:私の作業ディレクトリは私が思ったようにルートではないようです。 testFile.phpを作成してgetcwd()をエコーすると、phpファイルが存在するディレクトリが表示されます。しかし、問題のあるファイルでは、同じディレクトリでgetcwd()が「/」と表示されます。

19
MF86

chdir(__DIR__);

または

chdir(dirname(__FILE__));

chdir および マジック定数 を参照)。

しかし、それはデフォルトであるはずです。

21
Czechnology

これは CLIモード: では正常です

作業ディレクトリはスクリプトのディレクトリに変更されません。 (-Cおよび--no-chdirスイッチは互換性のために保持されています)

簡単な回避策は

chdir(dirname(__FILE__));
6
Pekka 웃

> = PHP 5.3の場合、スクリプトが存在する現在のディレクトリはdirname(__FILE__)または__DIR__で取得できます。

2
alex