LoginSignup
1
4

More than 3 years have passed since last update.

レンタルサーバのサブドメインを使って、Webアプリのバックエンド処理をPythonでホスティングする方法

Last updated at Posted at 2020-10-12

Xserverで独自ドメインに追加したサブドメインを使って、Webアプリのバックエンド処理をPythonでホスティングする方法です。GCPやAWSなどクラウドでホスティングする方法が最近は一般的だと思いますが、今回は費用と性能を鑑みてXserverで行います。

細かい部分については既にこの上ない記事がいくつもあり、記載しても劣化したコピーとなってしまうので割愛しますが、サブドメインでAPIを作るという部分については特になかったのでここでは流れに注力して記載します。自分のメモようなのであしからず。

なお、Xserverの独自ドメインは既にあるものとします。

最終的にしたいこと

(私の場合)既にある
https://np-sys.com/
にサブドメインを追加して、
https://APIs.np-sys.com/APIを格納するフォルダ名/Flaskで定義したURLのスラッグ (末尾)
という形でバックエンド処理を走らせるようにする。当然ドメインはお好きなもので。

使用するツール

Xserverに自分で入れたPython
PythonのFlaskライブラリ

流れ

  • Xserverでpythonをインストール
  • Xserverのサーバパネルでサブドメインを作成し、public_htmlにAPIを格納するフォルダ名を作る。例えばfunctionsというフォルダを作る
  • cgiでpythonスクリプトを走らせるようにする

です。

Xserverでpythonをインストール

Xserverで元々入っているPythonはありますが、権限の関係でpipコマンドで任意のライブラリをインストールできません。したがって、自分用のPythonを入れる必要があります。
細かい方法は下記がわかりやすかったです。結構これが負担重い。
https://note.com/coeeff/n/neab8acfde97e
https://qiita.com/kusumoto-t/items/b262b8878ccdfd137fa3

サブドメインを作成

Xserverのサーバパネルでサブドメインを作成します。
https://www.xserver.ne.jp/login_server.php

ボタン一つで行けます。
スクリーンショット 2020-10-12 9.58.42.jpg

そしたらそのサブドメインのトップにFTPで接続するかsshで接続して、スクリプトを設置するフォルダを作成します。今回はfunctionsとしました。なお、サブドメインの文字は実際の物を記載していないのでセキュリティに無配慮だなとは思わないでください。

スクリーンショット 2020-10-12 10.17.52.jpg

cgiでpythonスクリプトを走らせるようにする

あとはpythonをcgiで走らせるようにします。
これが最高にわかりやすかったです。
https://neko-py.com/xserver-web-application

注意点は、パーミッションの変更を忘れないこと、index.cgiの先頭にPythonのパスを絶対パスで指定すること(#! /home/Myname/.linuxbrew/bin/python3なら動きましたが、#! ~/.linuxbrew/bin/python3では動きませんでした)、Flaskはちゃんとインストールすることあたりが注意点。

そしたら
https://apis.np-sys.com/functions/
に相当するURLで動作します。

スクリーンショット 2020-10-12 10.34.11.jpg

サブドメインのトップに作るフォルダ名はアプリケーションごとに管理した方がわかりやすそうです。

1
4
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
1
4