本日、ローカル開発環境で突然「入力ファイルが指定されていません」というエラーが発生してしまいました。設定ファイル、設定パス、権限を繰り返し確認しましたが、問題はありませんでした。調査を繰り返した結果、ようやく問題が見つかりました。問題と解決策は以下のとおりです。 原因分析 GitHub からオープンソースの tp5 プロジェクトをダウンロードしましたが、以前はローカル Web サイトが問題なく動作していました。しかし、このオープンソース プロジェクトをインストールした後、他のローカル Web サイトにアクセスできないことがわかりました。アクセス時に入力ファイルが指定されていないというエラーが発生します。インターネットでも解決策を探しましたが、どれもうまくいきませんでした。このエラーは少し奇妙であるようです。 何度も試行した後、コンピューターを再起動すると問題は解決しました。ただし、ダウンロードした tp5 オープンソース プロジェクトを再度実行すると、他の Web サイトで「入力ファイルが指定されていません」というエラーが表示され、この 1 つの Web サイトだけが問題なく実行されました。 これに基づいて、オープンソース プロジェクトの nginx 構成ファイルにエラーが特定されました。設定ファイルを見てみましょう: サーバー{ 聞く 80; サーバー名 local.test.com; access_log /data/wwwlogs/local.test.com.log を結合します。 error_log /data/wwwlogs/local.test.com_error.log エラー; インデックス index.html index.htm index.php; ルート /data/php/test; add_header X-Powered-Host $hostname; fastcgi_hide_header X-Powered-By; if (!-e $request_filename) { 最後に ^/(.+?\.php)/?(.*)$ /$1/$2 を書き換えます。 最後に ^/(.*)$ /index.php/$1 を書き換えます。 } 場所 ~ \.php($|/){ fastcgi_index インデックス.php; 127.0.0.1:9000; をデフォルトとして設定します。 fastcgi_params を含めます。 $real_script_name を $fastcgi_script_name に設定します。 $real_script_name ~ "^(.+?\.php)(/.+)$") の場合 { $real_script_name を $1 に設定します。 } fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/; } 場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { access_log オフ; error_log オフ; 有効期限は30日です。 } 場所 ~ .*\.(js|css)?$ { access_log オフ; error_log オフ; 12時間で期限切れになります。 } 上記の構成では、残りは従来の構成です。 CGI を使用するためです。 fastcgi パラメータに、お気づきの行があります。 fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/; それでおしまい。この文の主な機能は、クロスサイトを防ぐために fastcgi の操作可能なディレクトリを設定し、open_basedir をこのプロジェクトのディレクトリと /tmp/ および /proc/ に制限することです。 問題解決 先ほど、設定された fastcgi 構成にクロスサイトを防止するための追加のステートメントがあると述べました。そして、この文は実際には fastcgi 全体のパラメータに影響します。私の他の Web サイトのパスは /data/php/xxx/ のようなディレクトリですが、このオープン ソース プロジェクトの /data/php/test/ ディレクトリにはないため、fastcgi は見つかりません。 オンライン展開の推奨事項 それで、この文を使うべきでしょうか、それとも使わないべきでしょうか?もちろんオンライン環境でも可能です。オンライン プロジェクトのデプロイメントでは、open_basedir で $document_root などの変数を使用しないことが最善です。オンライン サーバーに複数のプロジェクトがある場合、すべてのプロジェクトを統合されたディレクトリに配置できます。たとえば、私のオンライン ディレクトリは、他の Web サイトが配置されている wwwroot です。例えば、/wwwroot/test1 /wwwroot/test2のように設定できます。 fastcgi_param PHP_VALUE open_basedir=/wwwroot/:/tmp/:/proc/; 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL zip アーカイブ バージョン (5.7.19) の詳細なインストール チュートリアル
>>: mysql5.7.19 zip 詳細なインストールプロセスと構成
目次1. 索引1.1 コンセプト1.2 機能1.3 索引作成の原則1.3.1 ディスクアクセス回数を...
Linuxにunzipコマンドがない問題の解決策unzipコマンドを使用して.zipファイルを解凍す...
Deepin 2014 のダウンロードとインストールDeepin 2014 のダウンロードとインスト...
最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...
目次1. 次のように、「rpm -ivh インストール パッケージ」コマンドを使用して rpm パッ...
要件: Celery は Django に導入されています。Django プロジェクトを開始するとき...
この記事では、クリック時にサブメニューを表示するためのJavaScriptの具体的なコードを参考まで...
目次序文グローバルパラメータの永続性最後に要約する参考資料:序文2018 年に MySQL 8.0....
適用シナリオ:新しい要件の 1 つはアンケート調査を行うことですが、必然的に多くの質問が含まれ、1 ...
同じコマンドを複数回実行するさまざまな種類のループについて学習しましょう。 awk スクリプトには、...
接続クエリ:これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 ...
インデックスを使用してクエリを高速化する1. はじめにWeb 開発には、ビジネス テンプレート、ビジ...
この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...
目次1. はじめに1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 2...
この記事の例では、JavaScriptで4桁のランダムな検証コードを生成する具体的なコードを参考まで...