サーバーを次のように動作させる必要があります:
要求されたファイルがローカルに存在するかどうかを確認します。
- もしあれば、すぐに提供してください
- そうでない場合は、REQUEST_URIをダウンロードするスクリプトに渡します。
- ファイルに?delete=1 がある場合は、スクリプトを呼び出して削除します。
私は nginx (404 エラー ハンドラーを使用) と PHP を使用してこの動作を正常に実装しました。問題は、これを別のサーバーに実装するには、nginx と php の両方をインストール/コンパイルする必要があることです。
私の質問は、スタックから PHP を削除し、nginx (または他のサーバー) を立ち上げてその作業を実行する方法があるかどうかです。私にとって理想的な方法は、サーバーから直接 bash スクリプト/コマンドを実行/呼び出すことができることです。
誰か私に正しい方向を指し示してくれる人はいませんか?
答え1
あなたがしようとしていることは、普通の CGI とシェル スクリプトで簡単に実現できます。CGI を有効にして実装する方法は、サーバーによって異なります。Nginxすべき可能かどうかはわかりませんが、Apache は可能だとわかっています。ドキュメントを参照するか、特定の Web サーバーで CGI を有効にする方法について具体的な質問をしてください。
ファイルが存在するかどうかをテストして表示する簡単な bash ロジック:
#!/bin/bash
FILE="/path/to/file"
URI="http://example.com/file"
/bin/echo "Content-type: text/plain"
/bin/echo
if [ -f $FILE ]; then
/bin/cat $FILE
else
/usr/bin/wget $URI
fi
${QUERY_STRING} を解析して削除アクションを取得できます。完全なソリューションとエラー処理については、演習として残しておきます。少し複雑で、Q&A 形式の範囲を超えています。