2

私はローカルで小さなプロジェクトを持っています。私は Windows と XAMPP で作業しています。私のファイルのディレクトリ構造は次のとおりです。

ルートディレクトリ:

C:\xampp\htdocs\routes
このフォルダーの下に、プロジェクトを初期化する構成を含むbootstrap.phpがあります。

パブリック フォルダー:

C:\xampp\htdocs\routes\htdocs
このフォルダーの下に、index.php.htaccessがあります。

この.htaccess内には、次の構成があります。

php_value include_path .:/routes
php_value auto_prepend_file bootstrap.php

index.php内でget_include_path()を実行すると、" .:/routes"が表示されます。しかし、Web ブラウザに表示されるメッセージ (入力後) は常に次のとおりです。http://localhost/routes/htdocs

致命的なエラー: 不明:行0の不明で必要な 'bootstrap.php' (include_path='.:/routes') を開くことができませんでした

.htaccess 内の include_path の多くの組み合わせを試しました。

php_value include_path ".:/routes"
php_value include_path .:../routes
php_value include_path ".:./routes"
php_value include_path ".:routes"
...

私の httpd.conf の構成は次のとおりです。

DocumentRoot "C:/xampp/htdocs"
<Directory />
    AllowOverride none
    Require all denied
</Directory>
<Directory /routes>
    AllowOverride all
</Directory>

index.php内のブートストラップに情報をハードコーディングすると、機能します (少なくとも、ブートストラップ内の要件が適切に構成されていることがわかります)。私のプロジェクトがbootstrap.phpを認識するために何をすべきかわかりません。

私は何が欠けていますか?私は何を間違っていますか?

よろしくお願いいたします。

4

2 に答える 2

0
  • まず、<Directory>ブロックはインクルードには影響しません。これは Apache クエリではなく、前処理の順序であるためです。
  • 次に、include_path で絶対パスを使用して、ファイルが置かれている場所から独立させます。
  • bootstrap.php3 番目に、 Web サーバーを実行しているユーザーがパスを開くことができること、およびファイル自体が読み取り可能であることを確認してください。
于 2013-09-24T09:09:33.727 に答える
0

Windows を使用している場合は、;

php_value include_path ".;./routes"
于 2020-07-22T09:36:33.837 に答える