現況
CakePHPからpythonをスクリプトとして呼び出そうとしています。
以下 TestController.php
if (isset($_POST['send'])) { exec('python3 ./script/test.py'); }
以下 test.py
import os import pathlib import xlrd p_new = pathlib.Path('/var/www/html/proj/webroot/script/new1.txt') s='new text' with open(p_new, mode='w') as f: f.write(s)
上記はCakeからpython呼び出しの為に簡略化したpythonファイルになります。
検証
① import xlrdの一行をファイルから削除した状態で、CakePHPを走らせ、ブラウザのボタン押下、post送信からpythonファイルが正常に処理されます。
② import xlrdの一行をファイルに残した状態で、CakePHPを走らせ、ブラウザのボタン押下、post送信からpythonファイルが処理されません。
③ import xlrdの一行をファイルに残した状態で、コマンドラインから
]$ python3 test.py
これで正常に処理されます。
補足情報
権限、実行ユーザ周りの問題かと考え、
test.pyの所有者をwww-dataにしました。
権限を777に設定してます。
問題
CakePHPからpythonファイル内の"import xlrd"を呼び出すと問題が発生しています。
同じ問題に当たった方はいらっしゃいますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/02 04:11