プログラミング

レンタルサーバーでPHPからPythonを呼び出す

投稿日:

Xサーバーにて、PHPからPythonファイルを呼び出す方法をまとめます。実装したのはXサーバーですが、他のレンタルサーバーでも同様にできるはずです。

Webアプリ作成のための備忘録です。

 

 

スポンサーリンク

 

結論から。

 

 

cgi-binフォルダ(test.phpと同階層) > test.pyを入れる

サーバー内public_htmlフォルダ内に入れた場合は、http://ドメイン名/test.phpにアクセス。サブドメインの場合はhttp://サブドメイン名.ドメイン名/test.php。

 

 

コード解説(test.php)

.pyファイルをPythonで動かすためのコマンド。

Pythonコマンドパスの部分は、各レンタルサーバーの公式HPにて確認できる。自分の利用しているレンタルサーバーのコマンドパスを入力してください。

Xサーバーのコマンドパス一覧

https://www.xserver.ne.jp/manual/man_program_soft.php

 

 

指定されたコマンドを実行する。コマンドの書き方はコンソールに書き込むのと同じ。注意点として、コンソール内でPythonを実行する際は、「Python test.py」等で動かせるが、レンタルサーバー内でPythonを動かすためには、「Python」の部分にフルパスを指定する。

exec()の詳しい解説

https://www.php.net/manual/ja/function.exec.php

 

 

変数に関する情報をダンプ(表示)する。

var_dump()の詳しい解説

https://www.php.net/manual/ja/function.var-dump

 

 

動かすまでにしたこと

とりあえず記事上部のコードをコピペして動かしてみてください。ダメだったら以下のポイント確認すべし。

 

Pythonファイルのパーミッション(アクセス権限)を705か755に設定

アクセス権限がないとPythonファイルを動かせない場合があるみたい。

FTPクライアントソフト等を使用し、サーバー内にてPythonファイルの「属性」を変更する。

※FFFTPの場合

1. Pythonファイルを右クリック

2. 属性の変更

3. 属性 705 or 755になるように設定。

 

test.phpがある階層に「cgi-bin」フォルダを作成しtest.pyを入れる

 

コマンドパスをフルパスで書く

コンソール上では「python ファイル.py」のようにかくところを、「python」部をフルパスで書く。コマンドパスは各レンタルサーバーHPを確認すればあるはず。

参考までに、有名どころのサーバーのコマンドパス。調べてみたらほぼ

/usr/local/bin/python

こう書けばいいみたい。

 

Xサーバーコマンドパス

https://www.xserver.ne.jp/manual/man_program_soft.php

 

ロリポップコマンドパス

https://lolipop.jp/manual/hp/cgi/

 

さくらインターネット

https://help.sakura.ad.jp/206206041/

 

 

PHPからPythonを呼び出す際に学んだこと【メモ】

・今回使ったのは、PHPから.pyファイルを呼び出して使う方法。このほかに拡張子を.py → .cgi に変更し、Pythonファイル自身を直接実行する方法もある。ただし、.cgiファイルは、重いライブラリ(opencv等)を読み込むと、500エラーが生じる可能性がある。今回の方法の方がこのエラーを回避しやすいっぽい。

・.cgiファイルを実行する際は、コード先頭に「!/user/local/bin/python」のように宣言する必要がある。記事内で解説しているコマンドのフルパスと似ているが違うから注意。.cgiファイルはPerlで書く必要があるからとのこと。

・PHPからの呼び出しする.pyファイルに「!/user/local/bin/python3.6」のように書くのは間違い。ここで躓いた。違いを理解すれば簡単。

 

 

参考サイト(シンプルだけど全部つまってる。ありがとうございます。)

PHPからPythonを実行する方法 – ハックノート

https://hacknote.jp/archives/42596/

 

これからWebアプリをつくるって方は、ロリポップが安いのでおすすめです。趣味向けのライトプランはドメイン料含め月額300円ほど。

以前使用していましたがFTPソフト等ストレスなく使えます。

ライトプラン 詳細はこちら

 

お役に立てたら幸いです。最後まで読んでいただきありがとうございました。

 

スポンサーリンク

スポンサーリンク

 

当サイト(your-3d.com)の管理人のゆあーさんと申します。

このサイトでは、私が3DCG関連ソフトやプログラミングについて調べたことを共有出来たらいいなと思い開設しました。

読んでくださった皆様のお役に立てたら幸いです。

 

YouTube: ゆあーさんチャンネル ほぼやってない

Twitter: @yoursunpy

Booth: https://your-3d.booth.pm/

 

Amazonリンク: https://amzn.to/2LpZCJb

上記リンクから買い物していただくことで購入金額の一部が僕に入ります。直接的なメリットはないですが、このブログを通して還元していけたらと思います。ご支援くださる方はよろしくお願いします。m(_ _)m

 

プロフィールページ作りました。
https://your-3d.com/profile/