ホームページ >バックエンド開発 >PHPチュートリアル >Anchor CMS 0.8 が CGI サーバーで「入力ファイルが指定されていません」エラーをスローするのはなぜですか?

Anchor CMS 0.8 が CGI サーバーで「入力ファイルが指定されていません」エラーをスローするのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 11:01:02739ブラウズ

Why Does Anchor CMS 0.8 Throw a

Anchor CMS の「入力ファイルが指定されていません」エラーを解決する

Anchor CMS をアップグレード中に「入力ファイルが指定されていません」エラーが発生しましたバージョン 0.8 は、特に CGI 環境におけるサーバー上の PHP 実装に起因します。

このエラーを理解するには、システムが URL をどのように処理するかを把握することが重要です。提供された .htaccess ファイルによると、CMS は URL が PATH_INFO 変数として渡されることを期待しています。ただし、CGI 実装には PATH_INFO がないため、URI を渡そうとしたときに PHP が前述のエラーを返します。

解決策の探索:

  1. 問題の解決を試みています:

    • 可能ではありますが、GoDaddy のような共有ホスティング環境では PHP 設定の変更が許可される可能性は低いです。
  2. 代替アプローチ:

    • System/uri.php は、PATH_INFO と REQUEST_URI の 2 種類の URI 検出に依存します。この例では PATH_INFO が問題となるため、REQUEST_URI に移ります。
    • ただし、URI を REQUEST_URI に直接渡すと、parse_url() による解析が不十分になり、URL パスのみが返されます。
    • したがって、唯一の実行可能な解決策は、CMS コアを変更することです。

改訂された .htaccess および System/uri.php の変更:

Modify system/uri.php:

  • 配列の 40 行目に最初の要素として QUERY_STRING を追加します。

.htaccess を変更します:

  • URI をクエリ文字列として渡すように RewriteRule を変更します:

    RewriteRule ^(.*)$ index.php?/ [L]

この回避策により、URI を QUERY_STRING としてindex.php に渡すことができ、URI 検出メカニズムが有効になります。それを見つけてください。ただし、この問題が解決されるまで、変更されたコア ファイルを維持する必要もあります。

代替 CMS オプションを検討します:

前述のアプローチが不適切であることが判明した場合は、次のことを行うことが賢明かもしれません。このような問題が発生しない、より堅牢で信頼性の高い CMS を検討してください。

以上がAnchor CMS 0.8 が CGI サーバーで「入力ファイルが指定されていません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。