python を PHP から呼び出して実行しようとしています。python が実行する内容を文字列で渡したいと思います。
-c オプションを利用すると良いようです(参考サイト)。
<?php
$tmp = <<< end_of_quote
import sys
print("Hello!")
end_of_quote;
$pythonCode=escapeshellarg($tmp);
$meirei="timeout 30 python3 -c $pythonCode";
$result=exec($meirei);
var_dump($result);
?>
apache から利用しようとしているのですが,実行に数秒かかります。CRIU とか使うべきなのでしょうか。
(20211027)追記
実行にかかる時間は,サーバーによってかなり異なるようです。速いものは2秒ぐらいから,遅い方は5秒以上ぐらいまで変化します。何が原因かは分からない。apache+php 経由でなく,直接端末で実行すれば1秒以内です。
(20211028)追記
import pandas as pd
などを止めると,実行が速くなりました!上記ではインポートしてはいませんが。