getcwd() がローカル pwd とは異なるディレクトリを返すのはなぜですか?
質問
Ubuntuサーバー上でPHP関連の作業を行っています。
私が取り組んでいる道は /mnt/dev-windows-data/Staging/mbiek/test_list しかし、PHP呼び出し getcwd()
戻ってきています /mnt/dev-windows/Staging/mbiek/test_list (dev-windows-data ではなく dev-windows であることに注目してください)。
シンボリックリンクはどこにもありません。
他に原因はありますか getcwd()
ローカルから別のパスを返す pwd
電話?
編集
私はそれを考え出した。の DOCUMENT_ROOT PHPでは次のように設定されています /mnt/dev-windows それはすべてを投げ捨てます。
解決
どのファイルで getcwd() を呼び出しているのか、またそのファイルは実行中のファイルに含まれていますか (例:gwtcwd()を含むstartup.phpを含むindex.phpを実行します。
実行しているファイルは /dev-windows/ または /dev-windows-data/ でしょうか?実際に実行しているファイルに対して機能します。
これが私の現在のプロジェクトの例です。
インデックス.php
<?php
require_once('./includes/construct.php');
//snip
?>
include/construct.php
<?php
//snip
(!defined('DIR')) ? define('DIR', getcwd()) : NULL;
require_once(DIR . '/includes/functions.php');
//snip
?>
他のヒント
私はそれを考え出し、解決策を使用してOPを更新しました。
getcwd() は相対 URL パスではなくファイルシステム パスを返していると思いました。
いずれにせよ、パス /mnt/dev-windows が存在するという事実は変わりません。 しません /mnt/dev-windows-data は存在しますが、/mnt/dev-windows-data は存在します。
@マーク
まあ、それはまったく奇妙です!なにがあなたの include_path
- それは物事を台無しにする可能性があります。私は個人的には、あまりにも気まぐれなため、コンタントを支持してそれを捨てました(または、それを正当に評価する方法を学んだことがありません)。