私のファイルの構造は次のようになります:
config.php
script
|--myscript.php
myscript.php
<?php
require '../config.php';
?>
実行するphp /path/to/myscript.php
と、Warning: require(../config.php): failed to open stream: No such file or directory.
どういう理由ですか?
私のファイルの構造は次のようになります:
config.php
script
|--myscript.php
myscript.php
<?php
require '../config.php';
?>
実行するphp /path/to/myscript.php
と、Warning: require(../config.php): failed to open stream: No such file or directory.
どういう理由ですか?
これは、現在の作業ディレクトリが、スクリプトが配置されているディレクトリではなく、コマンドを呼び出すディレクトリであるためです。
使用する
require __DIR__ . '/../config.php';
代わりは。__DIR__
現在のファイルがあるディレクトリを指す const です。
私が行う1つの方法は次のとおりです。
php -d include_path=/path/to/config.php script.php
-d は実行時に INI ディレクティブを設定するために使用されるため、コード/構成/ディレクトリを変更する必要はありません。
require
コード内の行を変更したくない (または変更できない) 場合はcd
、スクリプトを実行する前に、スクリプトが実行されると予想されるディレクトリに変更します。
cd /path/to
php /path/to/myscript.php
ほとんどの場合、間違った作業ディレクトリを取得したため、相対パスが期待する場所を指していません。PHP が追加をどのように認識するかを確認するには、次のようにします。
echo getcwd();
スクリプトの最初の行として。