自作したDiscord BOTをXSERVER上に常駐化した話

スポンサーリンク

おっすおっす
どうも、kaichiです!

今回は、自作したDiscord BOTをサーバー上に常駐化した手順を備忘録として記事にしようと思います!

私が使用しているサーバーはXSERVERですが、今回の方法はどこのサーバーに限らずある程度同じ手順で対応出来るのかなと思います。

 

やったこと
・python3.6で作成したDiscord BOTをXSERVER上に常駐化

 

はじめに

趣味でDiscord BOTを作成したのですが、自身のPCでずっと動かし続けるのもなかなか難しいので、サーバー上で常駐化してみようと思いました。

BOTを常駐させるサーバーとして、使用できる無料のサーバーはいくつかあるのですが、どうせならこのサイトの運用で使用しているXSERVERを使ってみることにしました。

しかし、意外と情報が少なく、思いのほか苦戦しました・・・

 

どうやらXSERVERのユーザーアカウントはroot権限がないため、標準でインストールされているpythonでは、pipを使った環境構築が出来ないようです。

そのため、LinuxblewやFlaskのような仮想的な環境を構築出来るツールを使う必要があるようです。

が、調べてみるとこれが色々と手順がめんどくさい・・・

 

と、その時、以下の記事を目にして、minicondaも導入出来るんじゃね?と思い、minicondaを導入してみることにしました。

結果は、問題なくいけました!

 

xserverにAnacondaを導入する話(python環境構築) - Qiita
ローカル環境でflaskで開発したwebアプリをxserverで公開したかったのだので、いろいろ奮闘した結果、anacondaを導入することでできたよ!っていう話。Xserverを契約。x10プラ…

 

今のwindows環境でもminicondaで環境構築し、BOTを作成していたので、検証等もしやすく、結果的に良かったなーと思いました。

 

さて、前置きが長くなってしまいましたが、以下、導入した手順です!

 

スポンサーリンク

XSERVERのSSH有効化、認証用鍵の取得

XSERVERのヘルプに詳細な手順が載っているので、そちらを参考に設定していきます。

SSH設定 | レンタルサーバーならエックスサーバー
レンタルサーバー「エックスサーバー」のご利用マニュアル|エックスサーバーではSSH接続機能を提供しています。当マニュアルではお客様のサーバーアカウントへSSHで接続するための手順を記載しています。

 

ざっくりとした手順は、以下の通りです。

①サーバーパネルにログインし、SSHの設定をONにする。

②「公開鍵認証用鍵ペアの生成」からパスフレーズを設定

③ダウンロードした秘密鍵を使用してSSH接続

 

 ②で設定したパスフレーズは、後から使うので忘れずに!

 

スポンサーリンク

SSHで接続

私の使用しているOSは、最新版にアップデート済みのwindows 10です。

以下の記事によると、私の環境ではssh機能は既にインストールされていて、簡単に使用出来そうです。

以降は、PowerShell上で作業していきます。

OpenSSH for Windows overview
Overview of the OpenSSH tools used by Windows administrators for cross-platform management of remote systems.

 

まず、SSH接続の準備をしましょう。

以下のディレクトリにフォルダを作成し、先ほどダウンロードしてきた秘密鍵を格納します。
(例えば「id_xserver_rsa」にリネームしておく)

C:\Users\[ユーザー名]\.ssh\

 

そして、以下のコマンドを実行し、XSERVERにssh接続します。

ssh -i ~/.ssh/[秘密鍵のファイル名] -P 10022 [ユーザー名]@[サーバーホスト名]

注意点としては、ポートが10022になることです。通常のsshとポートが異なります。(通常は22)

 

接続すると以下のメッセージが出てくると思うので、秘密鍵をダウンロードした際に決定したパスコードを入力します。(初回は、接続確認が出るかもしれません)

Enter passphrase for key ‘C:\Users\[ユーザー名]/.ssh/id_xserver_rsa’:

 

(おまけ)

毎回、上記のコマンドを打つのは面倒ですよね!?

ということで、「.ssh」フォルダに「config」ファイルを作成し、テキストエディタで以下の項目を記入します。

Host xsrv
HostName [サーバー名]
Port 10022
User [ユーザー名]
IdentityFile ~/.ssh/[秘密鍵のファイル名]
ServerAliveInterval 60

これで次回から「ssh xsrv」と打つだけでサーバーにログイン出来ます。

1行目の「Host ~」の~部が、「ssh ~」の~部に対応しているので、お好みで変えてOKです。

 

 事前にコンフィグファイルを作っておくと、「ssh [Host名]」で簡単にアクセス出来る

 

スポンサーリンク

minicondaの導入

次はminicondaを公式サイトからインストールしていく訳ですが、

その前に念のためインストール先のserver OSの確認をしましょう。

XSERVER公式サイトによるとLinuxのようですが、何bitかの記載はありません。

サーバー仕様 - よくある質問 | レンタルサーバーならエックスサーバー
レンタルサーバー「エックスサーバー」のよくある質問|サーバーの仕様に関するよくある質問です。

 

そこで、SSHで接続し、「lscpu」コマンドを打ち、以下の項目を確認します。

CPU op-mode(s): 32-bit, 64-bit

64bitの記載があれば、64bitのOSです。

 

それでは、下記のminiconda公式サイトからLinux 64bit向けのインストーラーをダウンロードしてきましょう。

https://docs.conda.io/en/latest/miniconda.html

 

 自分のサーバーのOSのバージョンを確認しよう

 

スポンサーリンク

SCPでファイル転送&minicondaのインストール

さて、SSH接続とminicondaインストーラーの準備が整いました。

次はダウンロードしたインストーラーを転送して、XSERVER内にインストールしていきましょう。

ダウンロードしたインストーラーは分かりやすいようにminiconda3のようにリネームしていて構いません。

 

下記のコマンドで任意の場所にファイルを転送出来ます。

scp -i ~/.ssh/[秘密鍵のファイル名] -P 10022 [送信するファイルのpath] [ユーザー名]@[サーバー名]:[ファイル保存先のpath]

 

転送完了後、下記コマンドでインストールを実行します。

sh [minicondaインストーラー名]

 

 「scp ~」で転送、「sh ~」でインストール

 

スポンサーリンク

BOTの常駐化

ここまで来れば、後はwindowsにminicondaで環境構築した時と同じですね。

必要なパッケージをインストールし、BOTのソースファイル一式を転送することで、server上でもBOTが起動出来るようになったと思います。

 

しかし、このままではSSH接続を終了すると、BOTも終了してしまいます。

 

以下のコマンドでBOTを常駐化することが可能です!実行するプログラムをファイル名に入力して下さい。

nohup python [ファイル名] &

 

このコマンドだと、ログファイルが $HOME 直下に自動で生成されますが、

以下のようにすることで、ログファイルを任意の場所に保存出来ます。

nohup python [ファイル名] > [ファイル保存先] &

 

BOTを終了させたい時は、「ps x」で実行中のプログラムのプロセスIDを確認し、以下のコマンドを打ちましょう。

kill -KILL [PID]

これで、プログラムを終了することが出来ます。

 

BOTの実行は「nohup」コマンド
BOTの終了は「kill」コマンド

 

スポンサーリンク

まとめ

必要な情報を集めるのに苦労しましたが、こうしてまとめてみると意外と簡単に出来そうですね。

この記事がお困りの方のお役に立てると幸いです。

以上、XSERVER上にminicondaを使用してpython環境を構築する話でした。

 

それではまた次の記事で!

twitterでも情報発信していきますので、どしどしフォローお願いします!
↓↓↓↓↓
ついったーをフォローする

以下のサイトでも配信してます。見に来てね♪
Youtubeで見る

 

スポンサーリンク

コメント

タイトルとURLをコピーしました