さくらのVPSで1からWebサーバーを構築する方法 (Ubuntu16.04)

     

公開日: : サーバー構築 ,

今回はサーバーの構築について扱ってみようと思います。VPSを使った一般的なWEBサーバーの構築がゴールです。
MT4/MT5からサーバーにトレードデータを送受信する際に、ルート権限で細かいカスタマイズをすることを狙っています。(主として、MT4/MT5ユーザーのIPからのアクセス制限・緩和を行う)

OSはUbuntu16.04にしました。日本で使われているサーバーOSは ほとんどCentOSで、日本語で検索するとこちらの方が詳細が多いのですが、世界的に見るとかなりドマイナーなOSなので、そろそろUbuntuにした方がいいんじゃないかと思います。
(マイナーなOSの方がセキュリティ的には強い気もしますけどね。)

先に言っておくとトレード用のVPS(Beeksとか)は利用できません。ポートでVPSを振り分けているため、VPS毎にグローバルIPの振り分けが行われておらず、80,443ポートを開放できないためです。

サーバーの設定

さくらVPSでVPSの契約をするとコントロールパネルのログイン情報がメールに届きます。
OSはUbuntu16.04を選択します。すると、初期ユーザー(Ubuntu)のパスワードを入力を求められますので、適当に入力します。
※スタートアップスクリプトは要りません。

forex-mt4-mt5-ea

SSHでサーバーに入り、ルートユーザーにする

ここから先はコンソール(コマンドライン)での操作になります。Ubuntuにはデスクトップ版とサーバー版があって、サーバー版にはGUI(Windowsのようなデスクトップ画面)はありません。Windowsのデスクトップ画面にリモートアクセスする際にはRDPというプロトコルを使いますが、CUI(黒い画面)のサーバーに入る際にはSSHという通信方式を使います。

SSHのログインには鍵認証方式とアカウント方式があります。本来は鍵認証の方が良いのですが、今回はまずゴールまで到達することを目標にするため省きます。

コントロールパネルの「コンソール」をクリックします。本来SSHでアクセスするには専用ソフト(puttyとか)を使うのですが、こちらもインストールしてIPアドレスを入れるだけなので、省きます。

forex-mt4-mt5-ea

初期ユーザはubuntuで、先ほど設定したパスワードでログインします。この状態だと権限が弱い一般ユーザなのでrootユーザーに切り替えます。

sudo su -

と打ち、先ほどと同じパスワードを入力します。

OSのバージョンアップ

OSに最新情報がないかチェックします。

apt update

(これはいろいろセットアップした後に行うとどこかで不具合が生じる可能性があるので、初めにやっておいた方が良いです。)

Apacheを入れる

ApacheというのはサーバーをWEBで使えるようにするためのオープンソフトで、だいたいこれが入っています。最近はNginxというより高速なソフトもありますが、今回はApacheにします。

apt install apache2

まだネット接続に必要なhttp,https(80,443)ポートを開けていないので、これだけでは表示させることはできません。

vimを入れる

vimというのは編集ソフトのことでCUIのサクラエディタみたいなもんです。デフォルトで入っているOSもありますが入っていなかったので、インストールします。

apt install vim

PHPを入れる

次にPHPを入れます。

apt install php

インストール中にも表示されていますが、バージョンを調べるには

php --version

と入れます。

forex-mt4-mt5-ea
デフォルトでphp7になっています。PHPは5がシェア9割で、7との互換性がない関数があるので、必要に応じてダウングレードするかPHPファイルの関数を書き換えてください。(スピードはPHP7の方が断然早いです)
【追記】PHPのダウングレードをすると端々に問題が発生することが多いので、最初から古いOS(Ubuntu14)を入れた方が良いです。

libapache2のインストール

apt install libapache2-mod-php

・php.iniをいじくる

vim /etc/php/7.0/apache2/php.ini

・apacheにphpを認識させる

service apache2 reload

MySQLを入れる

apt install mysql-server

データベース管理にMySQLを入れます。
forex-mt4-mt5-ea
ユーザーパスワードを求められますので、適当に入力します。

データベースを作成

mysql -u root -p

forex-mt4-mt5-ea
先程設定したパスワードを入力します。

ここからはSQLなので最後に;を入れます。

mysql> create database thedatabse;

・ユーザーの作成

GRANT ALL ON thedatabase.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'このユーザーのパスワード';

・SQLの終了

mysql> exit;

・MySQLの再起動

service mysql restart

ApacheとMySQLの自動起動設定

自動で起動されるようにします。

apt install sysv-rc-conf
sysv-rc-conf apache2 on
sysv-rc-conf mysqld on

phpMyAdminのインストール

ブラウザからSQLを操作できるようにphpMyAdminを入れます。

apt install phpmyadmin

・シンボリックリンクを作成

ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf

・phpMyAdminのログインパスを変える

・設定を読み込ませる

a2enconf phpmyadmin
service apache2 reload

iptablesでポートの開放

iptablesというのは外部内部のネットアクセスに対していろいろ設定する箇所です。さくらのVPSは特殊なロケーションにあるので注意が必要です。

vim /etc/iptables/iptables.rules

デフォルトではSSH用の22のみが開いているので、SSHでのみアクセス可能な状態です。
forex-mt4-mt5-ea

このiptalbesというやつはセキュリティの肝なので、慣れてきたら厳密に設定してください。今はとりあえずポートの開放だけします。
※「i」で編集、「Esc」で編集オフ、「:wq」で保存して終了、「:q!」で保存せず終了、「/」で検索

--A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
--A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
--A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

を追加します。

編集したらiptables本体に反映

iptables-restore < /etc/iptables/iptables.rules

これでブラウザにIPアドレスを打ち込むと初期ページが表示されるはずです。
forex-mt4-mt5-ea

また、https://IPアドレス/phpmyadminも表示できるはずです。
forex-mt4-mt5-ea

FTPサーバーを入れる

FTPクライアントソフトからファイルをアップロードするにはFTPサーバーを入れる必要があります。

apt install vsftpd

・設定ファイルを編集する

vim /etc/vsftpd.conf
#25行目
anonymous_enable=NO -<デフォルトでNOだが、一応チェック

#31行目
write_enable=YES

#99行目
ascii_upload_enable=YES

#100行目
ascii_download_enable=YES

chroot_local_user=YES

#121行目
chroot_list_enable=YES

#125行目
chroot_list_file=/etc/vsftpd.chroot_list

#131行目
ls_recurse_enable=YES

#最終行に追加
local_root = /var/www/html

※サーバー管理者≠FTPユーザーの場合は上位フォルダにアクセスできないようにする必要があります。

・FTPユーザーを作成

useradd ftp-user
passwd ftp-user

・ユーザーリストにユーザーを追加する

vim /etc/vsftpd.chroot_list

ここにFTPユーザー名を追加する

・フォルダの権限変更
上記だけでは閲覧はできてもアップロードなどができないので、権限を与えます。

cd /var/www
chown ユーザー名(ubuntu):ユーザーグループ(ubuntu) html
chmod 755 html

・再起動

service vsftpd restart

DNSの設定

ドメインとIPアドレスを紐づけます。IPアドレスだけでもアクセスできるので独自ドメインを必要としない場合はスルーで結構です。

さくらのVPSのコントロールパネルの右上の方に「ネームサーバー登録」という項目があるので、それをクリックします。
ここに取得しているドメインを新規登録して、
ゾーン編集をして、
VPSのグローバルIPとドメインを紐づけします。

ドメインを取得したサービス(お名前ドットコムとか)の設定でネームサーバーに下記を設定します。
プライマリネームサーバー ns1.dns.ne.jp
セカンダリネームサーバー ns2.dns.ne.jp
(レンタルサーバーと一緒です)

SSLで接続できるようにする

正式にSSLで接続できるようにするには認証局を通す必要があります。

cd /etc/ssl/private 
openssl genrsa -aes128 -out server.key 2048 
openssl rsa -in server.key -out server.key 
openssl req -new -days 3650 -key server.key -out server.csr
#管理者情報をいろいろ入力
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 
chmod 400 server.*

vim /etc/apache2/sites-available/default-ssl.conf

# 32,33行目
SSLCertificateFile /etc/ssl/private/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

a2ensite default-ssl 
a2enmod ssl
service apache2 reload

こちらのサイト様 参照:https://www.server-world.info/query?os=Ubuntu_16.04&p=httpd&f=8

これでトレードシステムを稼働させるサーバーとしての準備ができました。他にも用途に応じてオプションがありますが、ここまでできればそちらは適宜できると思います。

その他オプション

・SSHの鍵方式
・iptablesの詳細設定
・WordPressのインストール
・サブドメインの設置
・SSL証明書の取得
・メールサーバーの設置(さくらサーバーでははがき確認後になります)

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

AWSでWebサーバー構築するやり方 (EC2xUbuntu)

今回はAWSのサーバーの構築を扱ってみようと思います。前回VPSを使った一般的なWEBサーバーの構築

記事を読む

AWSで無料でWindows VPSを使う方法

自動売買とVPSは切っても切り離せません。しかし、その自動売買が本当に儲かるかどうかわからないのに、

記事を読む

 

上に戻る