getcwd() がローカル pwd とは異なるディレクトリを返すのはなぜですか?

StackOverflow https://stackoverflow.com/questions/30307

  •  09-06-2019
  •  | 
  •  

質問

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 - それは物事を台無しにする可能性があります。私は個人的には、あまりにも気まぐれなため、コンタントを支持してそれを捨てました(または、それを正当に評価する方法を学んだことがありません)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top