1. ホーム
  2. php

ストリームを開くのに失敗しました。そのようなファイルやディレクトリはありません

2022-02-22 05:17:38

ストリームを開くのに失敗しました。そのようなファイルやディレクトリはありません

ケース1

(failed to open stream: No such file or directory) IIS下のPHP環境で設定されたディレクトリパーミッションが原因のエラー

原因と解決策

IIS + phpの環境設定

他の環境では問題なく動作しているのに、WinのIISでしか動作しないことを確認すると、このようなエラーが発生します。

Warning: main(. /Config.php): ストリームを開くのに失敗しました。No such file or directory in D:\wwwrootDemoConfig.php on line 13

致命的なエラー: main(): 必要な '. /Config.php' (include_path='. ;c:\php4pear') in D:\wwwrootCoreConfig.php on line 13

この問題は、主にWin NTFSディスクのEveryoneパーミッションを削除することで発生しますが、セキュリティパーミッションにインターネットゲストアカウントを追加することで解決します。

手順を説明します。Dディスク -> プロパティ -> セキュリティ -> ユーザーの追加 IUSR_XXXXX OK

ケース2

問題は 
Warning: require_once(. /lib/DBUtil.class.php) [function.require-once]: failed to open stream: No such file or directory in E:\phppro⇄service⇄ExpertService.class. php on line 2 
Fatal error: require_once() [function.require]: Failed opening required '.../lib/DBUtil.class.php' (include_path='. /lib/DBUtil.class.php' (include_path='. ;C:╱╱') in E:\phpproExpertService.class.php on line 2 
解決策

1. require_once(dirname(__FILE__). "/.... /lib/DBUtil.class.php") のようにします。

2. require_onceの例を次のように理解する。

クリップボードにコピーする 引用元:[www.veryhuo.com]
<?php 
//b.phpが他のディレクトリのa.phpファイルrequireまたはincludeから参照されている場合 
require_once(". /c.php"); //実際には a.php ディレクトリにある c.php を呼び出します。 
require_once(dirname(__FILE__). "/c.php"); //実際には b.php ディレクトリで c.php を呼び出します。 
require_once("c.php"); //実際にb.phpディレクトリのc.phpを呼び出します。 
? >

ケース3

phpのサイトを実行すると、こんなエラーが出ます。

警告 Unknown: ストリームを開くのに失敗しました。そのようなファイルやディレクトリはありません in Unknown on line 0

致命的なエラーです。不明です。Failed opening required 'E:/php/www/mrsoft/registration_login_module/index.php' (include_path='. ;C:\php5

ファイルの構造です。

解決策

apacheは上の画像の"Register Login Module"の中国語のURLをパースできないので、英語のパスに置き換えてください。

取得元:https://www.cnblogs.com/zhanghao1314/p/4949154.html