人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CentOS7 + PHP 7.2 + pyenv + Python3.6 + Apache 2.4 で質問です。この環境でも、Apache上からPython3.6を動かす方法を教えてください。現状ApacheよりPHPのexec命令を経由してPythonを動かした場合、CentOS7付属のPython2.7が動作してしまい、エラーになってしまいました。
なお、シェル上から直接Pythonを動かした場合は 3.6 として動作しています。
また、Apacheを起動した時点でログに「Apache/2.4.6 (CentOS) mod_wsgi/3.4 Python/2.7.5 PHP/7.2.1 configured」と記録されているので、恐らくApacheの設定を何とかすればよいのではないかと考えていますが、良くわからず困っています。

●質問者: くじぇ
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント

環境変数の違いだと思います。

というような辺り。

Apache の定義でやるなら、mod_env モジュールでやります。
php から python を起動しているようなので、php から env コマンドを実行した結果と、ログインシェルで env コマンドを実行した結果を見比べて、SetEnv ディレクティブで調整してください。

参考URL
https://httpd.apache.org/docs/current/en/mod/mod_env.html
https://docs.python.org/ja/3.6/using/cmdline.html#environment-variables


くじぇさんのコメント
a-kuma3さん、毎度ありがとうございます! 軽く調べたところ、PATHに差違があったのを確認したので、この辺何とかならないか調整してみます。

a-kuma3さんのコメント
php のマニュアルを見てたら、putenv という関数がありました。 http://php.net/manual/ja/function.putenv.php python を呼び出すときに php のスクリプトをかませているということなので、その apache が他の用途にも使われているのなら、putenv を使う方が影響する範囲が少ない、というメリットはありそうです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ