2015年11月21日土曜日

Linux VPSでMT4を動かす方法

MT4ユーザーの中には、EAを動かすためにVPSを利用している人が多いと思います。

Windowsが搭載されたVPSを利用するのが普通だと思いますが、実はWineを使ってLinux VPS上でMT4を動かすことも可能です。

はじめに

「LinuxでMT4を動かすことにどんなメリットがあるのか」と問われると、正直なところ特にありません。。。

設定が面倒で、互換性に問題が生じる可能性があり、おそらく動作速度や安定性も劣る、とデメリットばかりです。強いて言えばLinux VPSはWindows VPSより料金が安い傾向があることがメリットでしょうか。

ただ物好きなだけなのですが、私と同じようにコンピュータを弄るのが趣味な人のために、UbuntuとDebian、CentOSにMT4をインストールした時のメモを残しておきますので参考にしてください。

完全にLinux初めてという方には少しハードルが高いと思いますので、まずは書籍やインターネットから情報を得て、イメージを掴んでから挑戦するといいでしょう。

新しいLinuxの教科書
大角祐介
SBクリエイティブ (2015/6/6)
Amazonで詳細を見る 楽天市場で詳細を見る

3つともVMWare上の仮想マシンで、スペックは以下の通りです。
CPUXeon vCPU x 2
Memory1GB ECC RAM
Strage20GB SSD
これの半分のスペック(1CPU、512MB、10GB)でもMT4が動作するマシンを作ることは可能です。(ちょっとカツカツですが。。)

Ubuntu 14.04.1 LTS 64bit

Ubuntuへのインストールはとても簡単です。

Ubuntuという名前(ズールー語で「他者への思いやり」の意)が変なのが気になるかもしれませんが、特にこだわりがなければ他のOSよりもこちらをお勧めします。

1. 準備

まずはパッケージの更新を行います。UbuntuはAPTというパッケージ管理システムを使用します。

更新には時間がかかりますが、これを飛ばすとWineのインストールに失敗することがあります。
apt-get update
apt-get upgrade

2. Wineのインストール

UbuntuではWineのパッケージが標準で提供されているため、apt-getを使って一発でインストールできます。
apt-get install wine
手順1のアップデートをしていないと、エラーが出て一部のインストールに失敗することがあるので、その場合はアップデートをした後に--fix-missingをつけて再実行します。

3. GUIのインストール

taskselという大変便利なコマンドが用意されているため、GUIのインストールも楽々です。
tasksel
ダイアログが出てくるので、~Desktopを選択します。


GNOMEでもKDEでも好きなものを選べばいいのですが、おすすめは軽量なLXDEベースのLubuntu Desktopです。

Lubuntu minimal installationを選択した場合は、解像度変更ツールがインストールされないので必要に応じて追加するといいでしょう。
apt-get install lxrandr

再起動するとGUIでログインすることができます。GNOMEと比べても遜色ないデザインですが、非力なVPSでもかなりサクサク動きます。

4. MT4のインストール

ダブルクリックでMT4のインストーラーを起動するだけです。

Wineを初回起動したときには、追加パッケージ(wine-mono、wine-gecko)のインストールを行うダイアログが起動するのでOKを押します。

5. その他

  • キャッシュファイルを削除
    パッケージインストールのためにダウンロードした書庫ファイルを削除します。ディスク容量が少し増えます。
    apt-get autoclean (インストールされていないパッケージのみ)
    apt-get clean (全てのパッケージ)
  • スクリーンロック無効化
    Ubuntu 14ではデフォルトでスクリーンロック(10分)が有効になっているので、不要ならOFFにします。 「Preference -> Light Locker Settings」から設定できます。

Debian 7.1 64bit


DebianはUbuntuのベースとなったディストリビューションで、手順はUbuntuと概ね同じです。

1. 準備

まずはパッケージの更新を行います。Ubuntuと同じくAPTというパッケージ管理システムを使用します。

32bit版Wineを取得するため、最初にx86のアーキテクチャを追加しておきます。
dpkg --add-architecture i386
apt-get update
apt-get upgrade

2. Wineのインストール

apt-getで簡単にインストールできます。標準のWineパッケージは64bit版でMT4が動かないため、32bit版を追加でインストールする必要がります。
apt-get install wine
apt-get install wine32

3. GUIのインストール

taskselが使えるので簡単にGUIをインストールできます。
tasksel
ダイアログが出てきたら、好きなデスクトップを選びます。おすすめはやはりLXDE。


再起動するとGUIでログインすることができます。

4. MT4のインストール

WineがGUIに統合されないので、コマンドでMT4インストーラを起動する必要があります。
wine mt4setup.exe

Wineを初回起動したときには、追加パッケージ(wine-mono、wine-gecko)のインストールを行うダイアログが起動するのでOKを押します。

5. その他

  • キャッシュファイルを削除
    パッケージインストールのためにダウンロードした書庫ファイルを削除します。ディスク容量が少し増えます。
    apt-get autoclean (インストールされていないパッケージのみ)
    apt-get clean (全てのパッケージ)

CentOS 7 64bit

CentOSはUbutuと比べるとGUIのインストールもWineのインストールもやや煩雑です。

日本ではUbuntuよりシェアが大きいため情報が得やすく、MT4以外の目的でも使用するつもりならば、こちらを選択するのもありだと思います。

1. 準備

まずはパッケージの更新を行います。CentOSはRed Hatの流れを汲むディストリビューションで、yumというパッケージ管理システムを使用します。

EPEL(Extra Packages for Enterprise Linux)リポジトリもインストールしておきます。
yum update
yum install epel-release

2. Wineのインストール

CentOSには標準でWineパッケージが提供されていません。

EPELを入れると「yum install wine」でインストールできるようになるのですが、実はこれは64bit版のため32bitアプリケーションを動かすことができません。MT4を含めたWindowsアプリケーションの多くは32bitで作られているため、かなり不便です。

海外フォーラムにはソースコードから32bit版をコンパイルする方法が紹介されていますが、Linuxをいじるのが大好きな人以外はコンパイル済みバイナリの使用をお勧めします。
tar -xvzf winerpms.tar.gz
cd winerpms
yum localinstall *
インストールが失敗する場合は、--skip-brokenをつけて実行します。

もし間違ってEPELから64bit版をインストールしてしまっていた場合は、「yum remove wine*」でアンインストールし、ホームの.wineディレクトリを削除してからやり直します。

3. GUIのインストール

CentOS 7にも軽量なLXDEを入れたいところですが、動作しないので代わりにその次に軽量なXfceをインストールします。(もちろんGNOMEが好きな人はそちらをどうぞ)
yum groups install "X Window System"
yum groups install Xfce
インストールが終わったらstartxfce4でXfceが起動することを確認できるはずです。


起動直後にGUIが出るようにしたい場合はランレベルを変更します。
systemctl set-default graphical.target
reboot

4. MT4のインストール

ダブルクリックでMT4のインストーラーを起動するだけです。

Wineを初回起動したときには、追加パッケージ(wine-mono、wine-gecko)のインストールを行うダイアログが起動するのでOKを押します。


よく見ると閉じるボタンや最大/最小化ボタンが文字化けしているのですが、使用には特に問題ありません。

5. その他

  • キャッシュファイルを削除
    パッケージインストールのためにダウンロードした書庫ファイルを削除します。ディスク容量が少し増えます。
    yum clean all

まとめ

3つとも今のところ問題なく動作しています。本番口座はちょっと不安でも、デモ口座でEAのテストをしたり、シグナルをメール送信するインジケーターを走らせたりする目的には十分です。

環境によって多少の違いはあるかもしれませんが、自宅サーバーなどを作ってみた経験のある人ならば構築は特に難しくないと思います。

一味違うMT4エクスペリエンスを求めている方、いかがでしょうか?

17 件のコメント:

  1. 初めまして、たっかと言います。Peaky FX さまのサイトを見てServesMan@VPSでUbuntu 14.04.1 LTS 64bitを
    導入しました。apt-get install tasksel でtaskselをインストールし、ダイヤログまでは表示出来、
    Lubunts Desktopの選択項目も見つけたのですが、どのようにしてそれを選択し、OKを実行するのかわかりません。
    Windows7、Tera Termを使用しております。普通にenterを押しても実行されません。
    どうぞ宜しくお願い致します。

    返信削除
    返信
    1. スペースを押すと[ ]の中に*がついて選択できます。その後タブを押してカーソルをOKに持っていきEnterを押せばできると思います。

      削除
  2. たっかです。ご返信ありがとうございます。確かにスペースを押すと選択でき、一番したまでカーソルをもっていき、OK、Enterを押すとインストーできました。
    ところで大変申し訳ございませんが、全くの素人でして、導入の前後をおしえていただけませんでしょうか?
    VNCサーバーはどのタイミングでインストールすればよろしいでしょうか?

    手順一番最初の

    apt-get update
    apt-get upgrade
    apt-get install wine

    の次に、

    apt-get install vnc4server

    Tera Term からvnc viewer等に切り替えて表示させ、vnc viewer上で
    apt-get install tasksel と入力すればよいでしょうか?

    そしてカーソルで Lubuntu Desktop を選択、OK でEnter.

    インストール終了後、次はどのコマンドを入力して再起動させ、

    Lubuntu Desktopが立ち上がるのでしょうか?

    長々とすいませんが、どうぞ宜しくお願い致します。

    返信削除
    返信
    1. 私の環境では記事に書いた手順を実行するだけでした。そのあたりのことはVPS会社に聞いてみてはいかがでしょうか?

      削除
  3. たっかです。ご返信ありがとうございます。Peaky FX様は上記のどの地点でvncサーバーを導入されたのでしょうか?お勧めのvncビューワーはありますか?再起動のコマンドは "reboot"でしょうか?上記のままでしたら、rootのままですが、ユーザ名、パスワード設定をどこかの過程で設定した方がよいのでしょうか?

    返信削除
    返信
    1. ブラウザベースのコンソールが提供されていたため、VNCは不要でした。
      再起動はrebootでもshutdownでも違いはありません。
      ユーザーアカウントはどのタイミングで設定しても良いですが、ユーザーアカウントにMT4をインストールしたいならばその前に用意しておく必要があります。

      削除
  4. はじめまして
    こちらの記事を参考にして、CentOS 7のVPS + XFce + Wine-1.7 + MT4(Build 910)をインストールすることができ感謝しております。
    ひとつだけ困り事は、Windows版では可能だった通知機能がFailしてしまうこと。
    通知機能が使うポートの解放などご存知でしたら、ご教示願えないでしょうか?

    返信削除
    返信
    1. 記事がお役にたちまして幸いです。
      通知機能が動作しない原因はよくわかりませんが、MT4がサーバーとして動作するわけではないのでポート解放は必要ないかと思います。

      削除
  5. 返信ありがとうございます。シグナルが出た時iPhoneにメールを出していたのですが、メールの配信が大幅に遅れる問題があったので、通知機能を利用しようと考えました。
    Windowマシンでは、遅延なく利用出来たのですが、LinuxVPSでは不具合が生じます。
    MT4のオプション・通知機能のテストを実行すると"Notify.mql5.com:443 failed"という
    エラーが表示されました。ひょっとしたらポート443の解放が必要なのかなと思い、質問させていただきました。
    もう少し調べてみます。

    どうもありがとうございました。

    返信削除
  6. はじめまして。
    ubuntu初心者ですが、VPSにubuntuを入れてMT4を動かしたく、Linuxの勉強をしたり、ネットで調べたりして頑張ってみました。
    しかし、MT4インストールの際にプロキシサーバーの入力を求められてインストールへ進めません。
    解決方法をネットで探し、いろいろ試してみたのですがダメでした。
    Peaky FXさんはお詳しいようなので、何か解決方法などアドバイスいただけることはありませんでしょうか。
    どうぞよろしくお願いいたします。

    返信削除
    返信
    1. MT4インストールの際にプロキシサーバー入力の画面が出てきたことがないので良くわからないのですが、とりあえず適当なサーバーを入力してみてはいかがでしょうか?

      削除
    2. ご返信ありがとうございます。
      VPSサーバのIPアドレスとかいろいろ入れてみましたがダメでした。
      Peaky FXさんが書かれている通りにやってみたのですが、自分だけプロキシサーバーのオプション入力を求められるなんて変ですよね?
      何かが違うんでしょうが、その何か、がわかりません。
      現在私は、さくらのVPSにてubuntu14.04 amdでやっています。
      ubuntuは64bitなのにMT4は32bit環境で動かさないといけないからうまくいかない、ということはないですよね?

      削除
    3. プロキシサーバーの入力画面が出てくるのは、インストーラーがMetaquotes社のサーバーにアクセスできないためではないかと思います。ubuntuが64bitであることはおそらく関係ありません。

      削除
  7. 役に立つか分かりませんが、当方の環境でもプロキシサーバ要求で行き詰まり、
    あれこれ試した結果、回避方法を見つけましたので記述しておきます。

    まず古いBuildのMT4(400など)をネットから探してダウンロードしwineでインストールします。
    問題なく完了したら、次はwindowsでインストール済みの最新BuildのMT4のファイルを
    ごっそりubuntuのmt4インストールフォルダに上書きします。
    (これはおそらくterminal.exe metalang.exe MetaEditor.exeだけでよいと思われます)
    これで起動すればOKです。
    接続先のサーバはwindowsのMT4でアドレスを調べて登録すれば自由に接続できます。

    そもそもの原因は最新BuildのMT4インストーラに問題があるように思われます。

    返信削除
    返信
    1. なるほど、古いインストーラーだと大丈夫なのですね。情報ありがとうございます。

      削除
  8. http://fxst24.blog.fc2.com/blog-entry-243.html

    を参考にして、Wineをアップデートしたら。最新版のMT4のインストーラ(XM社)でもインストールできました。よろしければご参考にしてください。

    返信削除