*本ページはプロモーションが含まれています
Python を動かすためのレンタルサーバーを探しているそこのあなた。お待ちください。
実はレンタルサーバーでの Python 実行には下記のリスクがあるのをご存知でしたか?
SSH 接続できないかも 仮想環境が使えないかも データベースが操作できないかも 最悪 Python の実行にすら辿りつかないかも
不用意に怖がらせるつもりはないのですが、ネット上には公式サイトの仕様欄を鵜呑みにした 記事が多く、実際自分が Python を使おうとした際に様々な問題にぶち当たりました。
その経験を踏まえ、当サイトでは実際に触って検証しました ので、ぜひサーバー選びの参考にしてみてください。
レンタルサーバーの Python は要注意
レンタルサーバーの公式サイトを見ると仕様欄に Python3 や MySQL が入っている ので、何となく Python でプログラムを組みつつ MySQL のデータベースも使えてしまう様な気がしてきます。
が、実際使ってみるとそうもいきません 。一つずつ見ていきましょう。
1. SSH 接続できないかも
まず SSH 接続が出来るかどうかの確認です。
SSH 接続とは
Windowsのコマンドプロンプトや Mac のターミナルなどを使ってサーバーを遠隔操作する方法
せっかくサーバーを借りても、SSH 接続が出来ないと Python の実行やパッケージのインストールなどが出来ません 。
ほとんどの共用サーバーは SSH 接続可能なので、ここはそこまで心配いらないと思いきや、スターサーバーでは SSH 接続出来ません 。要注意です。
なぜ公式サイトで「Python」の記載があったのか分かりません。
2. 仮想環境か使えないかも
次は Python の仮想環境が使えるかどうかの確認です。
仮想環境とは
例えば自分のパソコンに Python が入っていて、その中でスクレイピングのプログラム とウェブサイト制作のプログラム の2つを作るとします。
それぞれのプログラムに必要なパッケージをインストールしていくと、どのパッケージがどちらのプログラムに使われているのか分からなくなったり、パッケージのアップデートなどでプログラム間の互換性が保てなくなることもあります。
この状況を整理するため、スクレイピング用の実行環境とウェブサイト制作用の実行環境を別々で作り 、それぞれの中に必要なパッケージをインストールすることでお互いの干渉を防ぐのが仮想環境です。
これは公式サイトの仕様欄などを見ただけではわからないので、実際に仮想環境作成のコマンドを実行して確認 してみました。
結果、そもそも SSH 接続も出来なかったスターサーバーに加え、バリューサーバーも仮想環境の作成ができませんでした。
逆に、それ以外のサーバーは問題なく仮想環境の作成ができました。
3. データベースが操作できないかも
レンタルサーバーで Python を使う際、最も気をつけなければならないのがPython でデータベースを使えるサーバーが少ない ということです。
大抵のレンタルサーバーは WordPress には特化していて、数クリックで簡単にMySQL のデータベースが作成できることがほとんどですが、「Python でデータベースを操作する」となると話は別 です。
mysqlclient モジュールのインストールが出来ない場合がある
共用サーバーで使用できるデータベースはほとんどの場合 MySQL ですが、Python で MySQL のデータベースを操作する場合は、mysqlclient モジュールをインストールする必要があります。
実際にコマンドを実行して確認 してみた結果、バリューサーバーやエックスサーバーなどでは mysqlclient のインストールで失敗 しますし、ロリポップではサーバーに直接インストールはできるのに仮想環境で出来ないというクセもあります。
これも公式サイトの仕様欄などを見ただけではわからないので要注意です。
また、上記の確認でデータベースを使えたとしても、レンタルサーバー特有の制限がかかっていて契約したレンタルサーバーからしかアクセスできない場合もあります ので気をつけてください。
つまり自分のパソコンからは操作できず 、データベースを操作するスクリプトをレンタルサーバーに置いてそのスクリプトを実行するという様な回りくどい事をする羽目になります。
レンタルサーバー x Python ならほぼ XREA 一択
はい、というわけで SSH接続、仮想環境、MySQLdb 全て考慮すると、一番問題なく使えるのは XREA です。
XREA
公式サイト XREA OS Linux (CentOS) Python のバージョン Python2, Python3 データベース個数 XREA Free:1 XREA Plus:5 CRON XREA Free:なし XREA Plus:あり(個数不明) ウェブ上の関連記事数 多い おすすめプラン XREA Plus (月額 210 円〜 + 初期費用 0 円)無料お試し期間 7 日間
ロリポップ 、コアサーバー 、エックスサーバー に関しては SSH 接続と仮想環境の作成は問題ない ですが、MySQLdb モジュールの使用に難あり です。
バリューサーバー とスターサーバー に関しては 仮想環境の作成も出来ない ので Python の使用に関してはお勧めしません 。
その他の参考情報
ここまでで使えるサーバーがだいぶ絞られてしまいましたが、一応使えるデータベースの個数、CRON の個数、関連記事数も確認しましたので記載します。
1. 作成可能なデータベースの個数
Python でスクレイピングした情報など、データベースに保存したりデータベースから取り出したりする必要があります。その際、用途によってデータベースを分けたい場合もあると思いますので、作成可能なデータベースの個数 も気にするといいと思います。
2. CRON の個数
CRON は指定した日時によって定期的にプログラムやスクリプトを実行できる機能 です。スクレイピングやデータベースの更新など、CRON を使うと便利な場面が多いと思いますが、プランによって同時に設定できる CRON の個数が決まっている のでサーバーを選ぶ際には注目するといいと思います。
3. ウェブ上の関連記事数
サーバーの中で作業をしていく中で、必ず何かしらのエラーが起きて検索する必要がある のが常なので、検索した時にどの程度情報が出てくるか も大事なポイントです。検索結果の数も目安として掲載しますので参考にしてみてください。
ちなみに無料お試し期間 があるサーバーも多いので、その間に Python3 を実際に試してみるのもありです。
各レンタルサーバーの検証内容
XREA ロリポップ エックスサーバー コアサーバー Conoha WING バリューサーバー スターサーバー Python バージョン 2.x/3.x 2.7/3.7 2.7/3.4/3.6 2.x/3.x 2.7/3,6 2.7/3.6 2.7/3.4/3.6 SSH 接続 パスワード パスワード 公開鍵 公開鍵 公開鍵 パスワード NG 仮想環境 OK OK OK OK OK NG -- MySQLdb OK OK *不明 *不明 *不明 NG -- データベース上限 5 50 無制限 無制限 無制限 無制限 30 CRON 上限個数 不明 10 無制限 不明 不明 99 10 関連記事数 多い かなり多い かなり多い かなり少ない 多い かなり少ない かなり少ない おすすめプラン XREA Plus スタンダード スタンダード CORE-X ベーシック スタンダード スタンダード
1. XREA
XREA
公式サイト XREA OS Linux (CentOS) Python のバージョン Python2, Python3 データベース個数 XREA Free:1 XREA Plus:5 CRON XREA Free:なし XREA Plus:あり(個数不明) ウェブ上の関連記事数 多い おすすめプラン XREA Plus (月額 210 円〜 + 初期費用 0 円)無料お試し期間 7 日間
SSH 接続
こちらはパスワードベースで SSH にログイン 可能なので SSH 接続が簡単です。
Python 仮想環境
下記 4 行のコマンドだけで pip3 を使える状態の Python3 を起動できます。
$ bash
$ python3 -m venv python3-venv
$ source python3-venv/bin/activate
(python3-venv) $ python
>>>
ただ、デフォルトのシェルが rbash でかなり制限があるので、SSH 接続したら初めにコマンド「bash」を実行する必要があります。上のスクリプトの1行目で「bash」と入力しているのがそれです。
MySQL モジュールの使用
上記に続けて下記を順に実行していけば仮想環境内で MySQLdb モジュールを使うこともできます。
>>> exit()
$ pip install mysqlclient
$ python
>>> import MySQLdb
>>>
ウェブ上の関連記事数
「"XREA" "python3"」での検索結果は 5,020 件で、上の2つに比べると少ないですが、これでもよく調べれば普通の使い方には対応できるのではと思います。
おすすめプラン
XREA Free は無料ですが CRON が使えませんし、データベースも 1 つしか持てません。XREA Plus は CRON も使えてデータベースも 5 個まで作れるのでおすすめです。
利用開始するにはバリュードメイン のアカウント(無料)作成も必要です。
公式サイト :XREA
2. ロリポップ
ロリポップ!
公式サイト ロリポップ! OS Linux (CentOS) Python のバージョン Python2.7, Python3.7 データベース個数 ライトプラン:1 スタンダードプラン:50 CRON 個数 ライトプラン:5 スタンダードプラン:10 ウェブ上の関連記事数 かなり多い おすすめプラン スタンダード (月額 440 円〜 + 初期費用 0 円)無料お試し期間 10 日間
SSH 接続
こちらも SSH へのログイン はパスワードベースでなので分かりやすいです。
Python 仮想環境
SSH ログイン後はエックスサーバーと同じく下記 3 行のコマンドだけで pip3 を使える状態の Python3 を起動できました。本気で SSH ログインから 10 秒で Python3 を起動できます。
$ python3 -m venv python3-venv
$ source python3-venv/bin/activate
(python3-venv) $ python
>>>
MySQL モジュールの使用
ただ、仮想環境内では MySQLdb モジュールがインストール出来ませんでした。仮想環境を作らずに Python3 を使う のであれば MySQLdb はすでに使えます。
$ python3
>>> import MySQLdb
>>>
仮想環境外で追加パッケージをインストールする場合は「python3 -m pip install パッケージ名」でできる様です。
ウェブ上の関連記事数
「"ロリポップ" "python3"」での検索結果は 18,200 件と、こちらも多くの情報がすでにネット上に存在しています。
おすすめプラン
ライトだとMySQLデータベース1つしか作れないので、50個まで作れる「スタンダード」プランが良いと思います。
CRON もスタンダードプランであれば 10 個まで設定可能です。
こちらも無料お試し時にはクレジットカード情報などの入力は不要です。
公式サイト :ロリポップ!
3. エックスサーバー
エックスサーバー
SSH 接続
SSH への接続は公開鍵認証の設定が必要で少し面倒ではあります。
Python 仮想環境
SSH ログインさえ出来れば下記のコマンドで pip3 を使える状態の Python3 を起動できます。
$ python3 -m venv python3-venv
$ source python3-venv/bin/activate
(python3-venv) $ python
>>>
MySQLdb モジュールの使用
MySQLdb モジュールを使った MySQL の操作ですが、mysqlclient パッケージのインストールに失敗するという情報があります。
ウェブ上の関連記事数
「"エックスサーバー" "python3"」での検索結果は 12,500 件程度と、多くの情報がすでに存在しているので心強いです。
おすすめプラン
基本的な違いはディスクスペースの容量と無料独自ドメインの対象くらいなので「スタンダード」プランで充分だと思います。無料お試しに申し込んでもその時点ではクレジットカード情報などの入力が必要ないのも安心です。
CRON の個数は無制限です。データベースの個数も無制限です。すごいですね。
公式サイト :エックスサーバー
4. コアサーバー
コアサーバー
公式サイト コアサーバー OS Linux Python のバージョン Python2, Python3 データベース個数 全プラン無制限 CRON 全プランあり(個数不明) ウェブ上の関連記事数 かなり少ない おすすめプラン CORE-X (月額 399 円〜 + 初期費用 1,650 円)無料お試し期間 30 日間
SSH 接続
SSH への接続は公開鍵認証の設定が必要で少し面倒です。
Python 仮想環境
SSH ログイン後は他のサーバーと同じ様に「python3 -m venv 任意の仮想環境名」で仮想環境を作成できます。
$ python3 -m venv python3-venv
$ source python3-venv/bin/activate
(python3-venv) $ python
>>>
ウェブ上の関連記事数
「"コアサーバー" "python3"」での検索結果は 500 件程度で、かなり少ない状態です。何か問題が起こったとき、まだ解決方法がネット上に載っていない場合も考えられます。
おすすめプラン
全プランで CRON あり、データベースの個数も無制限です。CORE-Xプランで十分足りると思います。
公式サイト :コアサーバー
5. ConoHa WING
ConoHa WING
SSH 接続
SSH への接続は公開鍵認証の設定が必要で少し面倒ではあります。
Python 仮想環境
SSH ログインさえ出来れば下記のコマンドで pip3 を使える状態の Python3 を起動できます。
$ python3 -m venv python3-venv
$ source python3-venv/bin/activate
(python3-venv) $ python
>>>
ウェブ上の関連記事数
「"ConoHa WING" "python3"」での検索結果は 1,930 件で少し少ないかと思います。
おすすめプラン
データベースの個数は全プランで無制限です。 CRON は「ジョブスケジューラー」という名前で提供されていますが、個数はわかりませんでした。ベーシックプランがおすすめです。
公式サイト :ConoHa WING
6. バリューサーバー
バリューサーバー
公式サイト バリューサーバー OS Linux Python のバージョン Python2.7, Python3.6 データベース個数 エコプラン:1 スタンダードプラン:無制限 CRON 個数 エコプラン:10 スタンダードプラン:99 ウェブ上の関連記事数 かなり少ない おすすめプラン スタンダード (月額 367 円〜 + 初期費用 0 円)無料お試し期間 10 日間
SSH 接続
こちらもパスワードベースで SSH にログイン可能なので SSH 接続が簡単ですし、「python」でも「python3」でも Python3 が実行されるのも便利です。(Python2 の起動はコマンド python2 を実行)
Python 仮想環境
が、なぜか Python 仮想環境の作成時にエラー が発生します。
$ python3 -m venv python3-venv
Error: Command '['/virtual/アカウント名/python3-venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 2.
仮想環境外で mysqlclient をインストールしようとしてもエラーが発生するので、残念ながら Python の使用に関しては避けた方がいいと思います。
公式サイト :バリューサーバー
7. スターサーバー
スターサーバー
SSH 接続
何とスターサーバーは SSH 接続が出来ない仕様 になっています。なので Python のコマンド操作なども出来ません。
公式サイト :スターサーバー
おすすめは XREA
いかがでしたか?
学習も兼ねて Python を少しいじってみたいという場合は、既存の情報が多い上に SSH 接続、Python3 の実行、仮想環境の作成と全て問題なくできた XREA がおすすめ です。
もし自分でも試したい場合は大体のレンタルサーバーが無料お試し期間 を設けているので利用してみると良いかもしれません。お試し期間は基本的にクレジットカード情報など入力不要 なので安心です。
更なるおすすめは VPS
最後に繰り返しになりますが、Python でプログラミングをしていくのであればレンタルサーバーよりも VPS がおすすめです。絶対に。
ご自身のためにも、下記の記事をチェックしてみてください。
▶︎レンタルサーバーで Python は要注意!VPS が楽得でおすすめ
【番外編】さくらレンタルで無理やり Python 3 と MySQL を使う
ちなみにさくらのレンタルサーバーはそもそも Python 2しか入っていないのでこの記事にも載せていないんですが(現在の推奨は Python 3 で Python 2 は非推奨)一応 Python 3 をインストールして仮想環境で MySQLdb をインストールすることも出来ました。
めんどくさすぎた ので正直全くお勧めしない ですが、気合いで頑張りたい方々のために一応貼っておきます。