本日、ローカル開発環境で突然「入力ファイルが指定されていません」というエラーが発生してしまいました。設定ファイル、設定パス、権限を繰り返し確認しましたが、問題はありませんでした。調査を繰り返した結果、ようやく問題が見つかりました。問題と解決策は以下のとおりです。 原因分析 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 詳細なインストールプロセスと構成
エラーを報告するApache\Nginx サービスは正常に起動しましたが、MySQL は起動に失敗し...
目次SDKのインストールローカル Docker の管理コンテナの実行バックグラウンドでコンテナを実行...
目次序文コンポーネントライブラリの作成主要な構成の変更ディレクトリレイアウトの調整ライブラリ構築のた...
<br />幅と高さが適応するオリジナルの 9 グリッド レイアウトをベースに、ネットワ...
Harborのインストールは非常に簡単ですが、Dockerログインで行き詰まってしまいました。このブ...
目次序文Dockerfile の紹介Dockerfileはイメージプロセスを構築するDockerfi...
解決策は2つあります。 1つはCSSで、background-size:coverを使用して画像の伸...
目次1. DOMとは何か2. 要素を選択する3. getElementById() 4. クエリセレ...
フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...
必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...
ssh に入り、次のコマンドを入力してパスワードをリセットします (コマンドの末尾の「testpas...
この記事の例では、Webメッセージボードを実装するためのjsの具体的なコードを参考までに共有していま...
目次動的パーティクル効果は次のとおりです。プラグインをインストールする動的パーティクル効果は次のとお...
テーブル名を変更したり、テーブル フィールドを変更したりする必要がある場合は、 MySQL ALTE...
目次1 新しいオペレータの紹介2 新しいものは何をしましたか? 3 新しい演算子の実装をシミュレート...