0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

phpからpythonを呼び出す方法のメモ

Last updated at Posted at 2021-06-26

概略

本記事は、phpからpythonを呼び出そうと思ったときの話で、
MAMPでサーバーを立て、その上でphpからpythonを呼び出すって感じです。
MAMP, php, python それぞれで行った設定を順に書いていきます。

MAMPの設定

多分、初期設定では.pyがハンドラーに設定されてないので追加しときます。
変更するファイルはこれ→ ~/MAMP/conf/apache/httpd.conf
AddHandolerに.pyを追加する。

http.conf
AddHandoler cgi-script .cgi .pl .py #←これ追加

pythonの設定

とりあえず適当な .pyファイルを作る。

test.py
print("Hello world")

作った.pyの先頭にpythonまでのパスを追加。
とりあえず、ターミナルで which python3 を叩く。

ターミナル
which python3
~/python3 #(環境によって内容が変わるので注意)

ターミナルの結果を元に.pyに追記。

test.py
# !~/python3 ←(環境によって内容が変わるので注意)
print("Hello world")

.pyをサーバーで動かすために謎の呪文を追加。(#!〜行の下くらいが良さそう)

test.py
# !~/python3 ←(環境によって内容が変わるので注意)
print("Content-type: text/html; charset=Shift_JIS\n\r\n")#←謎の呪文
print("Hello world")

権限の変更をする。

ターミナル
chmod 755 test.py

phpの設定

commandには呼び出す.pyファイルを指定する。
(pythonをコマンドラインから呼び出す時に記述する内容を記載)
$outputには、.pyでprint文で書き出した結果がリスト形式で入る。

test.php
  <?php
  $command="python ./test.py ";
  exec($command,$output);
  print_r(]$output);#$outputに格納されたインデックスと値の関係の一覧を表示
  echo $output[1];#表示したい要素が一つだけの場合の指定方法
  ?>

ブラウザで.pyの出力と同じ結果を確認できたらOKってとこですかね。
最後まで読んでいただきありがとうございました。
また気が向いたら投稿しようかな〜・・・

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?