Closed snemoto-42 closed 10 months ago
sample CGI for python https://qiita.com/pythonista/items/82fb537688e0f2be4915
app.pyを実行するには、ExecCgi.cppにて、execve(path.c_str(), NULL, NULL);の修正が必要
// コマンドライン引数 char pythonScript = "/path/to/your/script.py"; char argv[] = {"python", pythonScript, NULL}; // execve() 関数を呼び出す if (execve("/usr/bin/python", argv, NULL)
pritnt("test")はブラウザに表示されるが、import cgi/codecsを活用したコードだと、app.py内で処理が終了しなくなるため、ExecCgiを修正
TODO ・CGIの無限ループのプログラム、タイムアウトやレスポンス返却 ・python:ページ遷移に対応していない(http://localhost:8080/python/app.py?button=SUBMIT) ・perl:実行できるようにする https://www.tohoho-web.com/wwwcgi4.htm ・php:実行できるようにする
(レビュー用) ・コンテナ内でプログラムの実行(DockerFileの用意) マイPCで試す、COPYではなくmountで実行ファイル等を参照する Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./webserv configrations/default.conf": stat ./webserv configrations/default.conf: no such file or directory: unknown https://qiita.com/okmt_okmt_/items/9397a870869042fec5b4
・レビュワーが必要なライブラリをインストールできるようにする(PythonならMakefileにてpip install -r requirements.txt) ・校舎macはDocker dameonが起動していないので、レビュワーは別の環境が必要そう
CGIスクリプト.pyを実行できるように反映したため、一旦クローズ
ExecCgiにてexecveの処理を分岐する必要があるため、再オープン
ExecCgiはterabuさんの修正により修正不要 他コミットして.pyが動作したため、一旦クローズ
[Mandatory] Execute CGI based on certain file extension (for example .php). Your server should work with one CGI (php-CGI, Python, and so forth). [Bonus] Handle multiple CGI.