23

私のファイルの構造は次のようになります:

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.

どういう理由ですか?

4

5 に答える 5

26

これは、現在の作業ディレクトリが、スクリプトが配置されているディレクトリではなく、コマンドを呼び出すディレクトリであるためです。

使用する

require __DIR__ . '/../config.php';

代わりは。__DIR__現在のファイルがあるディレクトリを指す const です。

于 2012-09-11T20:53:08.790 に答える
8

私が行う1つの方法は次のとおりです。

php -d include_path=/path/to/config.php script.php

-d は実行時に INI ディレクティブを設定するために使用されるため、コード/構成/ディレクトリを変更する必要はありません。

于 2014-06-29T07:42:56.120 に答える
2

requireコード内の行を変更したくない (または変更できない) 場合はcd、スクリプトを実行する前に、スクリプトが実行されると予想されるディレクトリに変更します。

cd /path/to
php /path/to/myscript.php
于 2013-09-10T18:19:04.410 に答える
1

ほとんどの場合、間違った作業ディレクトリを取得したため、相対パスが期待する場所を指していません。PHP が追加をどのように認識するかを確認するには、次のようにします。

echo getcwd();

スクリプトの最初の行として。

于 2012-09-11T20:53:16.690 に答える