【超初心者】独学初心者がpythonをXSERVERで動かす!

旅行・趣味

どうも!ゆうです。

自宅待機時間が増えたので、プログラミングを始めたところ、大ハマり中です(笑)
PC上でPythonを動かすことはできていますが、良いPCではないので複数のプログラミングが同時に動くと停止してしまうようになりました。

なので、契約しているXSERVER上で環境構築を試みましたが、約半年間、失敗しまくりだったので、忘れないように記録します。

私は本当に超初心者な上に独学なので、表現も含め間違いがあるかもしれません。ご了承の上、自己責任で参考にしてください。

環境

Mac OS Catalina 10.15.7 64bit 2.5 GHz デュアルコアIntel Core i5
Python 3.9.5(vscodeで作成)

SSHログイン

まずは、xserver内でターミナルのような操作を行うための環境構築を行います。

XSERVERでのSSH設定

エックスサーバーが出している記事通りに操作すれば、トラブルなく設定できました。
https://www.xserver.ne.jp/manual/man_server_ssh.php

登録は公式サイトから

MacでFinderのサイドバーにホームフォルダを表示させる

次は、Macのターミナル上でSSHログインのための設定を行います。

① Finderを開いて、Macのデスクトップメニューバーの「Finder」→「環境設定」
https://dtmmethod.com/mac-finder-home

② 環境設定の上部のタブから「サイドバー」を選択し、サイドバーに表示する項目からホームフォルダにチェックを入れて閉じる
https://dtmmethod.com/mac-finder-home

Macで隠しフォルダ・ファイルを表示させる

Finderのサイドバーからホームを選択し、「command + shift + .」を同時に押す
と、ニョキッと出てきます。

https://www.radia.jp/archives/842

MacでSSHフォルダの設定

① ターミナルを開いて、.sshフォルダを作成
ターミナルは、スポットライト「control + space」で「ターミナル」と検索すれば出ます。

ターミナルで次のコマンドを入力

mkdir ~/.ssh

② 秘密鍵ファイルを作成

ターミナルで次のコマンドを入力

mv ~/downloads/サーバーID.key ~/.ssh/id_rsa
サーバーIDは、XSERVERのサーバーIDです。
(分からなければ、ダウンロードフォルダに入っている、最後が「.key」になっているファイル名を記述する。)

③ .sshフォルダのアクセス権限を設定

ターミナルで次のコマンドを入力

chmod 700 ~/.ssh

④ 秘密鍵ファイルのアクセス権限を設定

ターミナルで次のコマンドを入力

chmod 600 ~/.ssh/id_rsa

⑤ 公開鍵ファイルを作成

⑴ ターミナルで次のコマンドを入力

ssh-keygen -t rsa

⑵ >>> Enter file in which to save the key

と質問されるので、鍵の名前を入力(今回は、次を記述)

id_rsa

⑶ >>> Enter passphrase (empty for no passphrase):

と質問されるので、XSERVERの公開鍵認証用ペアの生成で入力した「パスフレーズ」を入力
(空でもOK)

https://www.xserver.ne.jp/manual/man_server_ssh.php
これで、.sshフォルダに2つのファイルが生成されます。
・id_rsa (秘密鍵)
・id_rsa.pub (公開鍵)

⑥ 生成した公開鍵をXSERVERに登録

⑴ 先ほど生成した「id_rsa.pub」を「テキストエディット」で開き、全てをコピー

⑵ XSERVERの「SSH設定」内の「公開鍵登録・更新」に貼り付け

⑶ 「確認画面へ進む」→「登録する」をクリック

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

SSHログイン

次のコマンドを入力し、パスフレーズを入力して、接続できればOK

ssh -l サーバーID -p 10022 サーバーID.xsrv.jp
ターミナルの記述前に「サーバーID @ サーバー番号」があれば、接続できています。
 

 

簡単なコマンドで接続できるように設定

⑴ テキストエディットで次を記述して、デスクトップに保存

Host xsrv
  HostName サーバーID.xsrv.jp
  Port 10022
  User サーバーID
  IdentityFile ~/.ssh/id_rsa
  ServerAliveInterval 60

⑵ .sshフォルダに移動させる

ターミナルで次のコマンドを入力

mv ~/desktop/config ~/.ssh 

SSHログイン

ターミナルで次のコマンドを入力し、パスフレーズを入力

ssh xsrv
ターミナルの記述前($の前)に「サーバーID @ サーバー番号」があれば、接続できています。
 

仮想環境(Pipenv)にログイン

エックスサーバーには、すでにLinuxが入っているようです。

① Linux版Anacondaをダウンロード

Anaconda公式サイトから、Linux版をダウンロード

https://gakogako.com/python_xserver/

② ファイルマネージャからアップロード

エックスサーバーにログインして「ファイル管理」をクリック

https://gakogako.com/python_xserver/

③ 上部の「アップロード」をクリック
https://gakogako.com/python_xserver/

④ ダウンロードしたファイルをアップロード
https://gakogako.com/python_xserver/

⑤ SSHログイン
⑥ アップロードしたAnacondaをインストール
sh Anaconda3-2021.05-Linux-x86_64.sh
「sh 」の後ろは、インストールしたいファイル名です。

これで、Anaconda内包のPythonとcondaが利用可能です。

⑦ ライブラリをインストールするためのpipをインストール
conda install pip

⑧ pipenv(仮想環境)をインストール

⑴ pipenvをインストール

pip install pipenv

⑵ 一旦、ターミナルを終了(⌘Q)して、SSHに再ログインでインストールを反映させます。

⑨ pipenvの仮想環境にログイン

SSHにログインした状態で、次のコマンドを入力。

pipenv shell
ターミナルの記述前($の前)の「サーバーID @ サーバー番号」の前に「(作成したフォルダ名)」があれば、接続できています。

PC上で動いていたPythonをXSERVERにアップロード

① ファイルマネージャからアップロード

エックスサーバーにログインして「ファイル管理」をクリック

https://gakogako.com/python_xserver/

② 上部の「アップロード」をクリック
https://gakogako.com/python_xserver/

③ ダウンロードしたファイルをアップロード

分かりやすくするために、フォルダを作った中でもOK

Pythonを常駐で動かす

通常は、SSH接続が切れたりするとPythonも止まってしまいますが、次のコマンドで動かし続けることができます。

⑴ pipenv(仮想環境)にログイン

⑵ Pythonファイルが保存されたフォルダに移動

cd Pythonファイルを保存したディレクトリ名

⑶ プログラムを動かす

nohup python3 Pythonのファイル名.py > 出力用ファイル名.txt &

「出力用ファイル名」がフォルダ内にない場合は、自動作成されます。エラーなどがあれば、このテキスト内で確認できます。

⑷ きちんと動いているか確認

ps -aux | grep python

ファイル名 95648 0.0 0.0 187948 52840 pts/1 S 21:22 0:00 python3 ファイル名.py」といった感じで返されれば、動いています。

⑸ プログラムの出力は、次のコマンドで確認できます。

cat nohup.out

⑹ プログラムを停止

kill 95648

psコマンドの表示(⑵)の左から2つ目の数字がプロセスIDなので、それを指定して停止できます。

今後

次回から、同じプログラムを動かす場合の手順もメモ。

⑴ SSHログイン

ssh xsrv

⑵ パスフレーズ入力

⑶ pipenvで仮想環境にログイン

pipenv shell
ターミナルの記述前($の前)の「サーバーID @ サーバー番号」の前に「(作成したフォルダ名)」があれば、接続できています。

少しずつ、プログラミングを理解してきている気がして、とても楽しいです!
無料でこんなに楽しめることをこれまで知らなかったなんて、今後の人生が楽しみです。

コメント

スポンサーリンク

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