日: 2017年4月5日

WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー( Pure FTPD)、DBサーバー(MySQL)をインストールする-その1

ここから、再びターミナルに戻って必要な各サーバーを確認、インストールしていきます。

今回、設定していくものは下記です。基本的には、ubuntuサーバーをインストールした時点か、あるいはAjentiをインストールした時点で、VPSにすでにインストールされているものがほとんどです。パッケージが古くて差し替えたいものやモジュールを足したいものなどを個別で見ていきつつ、環境を整えていきたいと思います。

  • WEBサーバー: NGINX
    • 何がなくともこれがなくては始まりません。
      これまでのWEBサーバーの主流は、APACHE2ですが、最近では、NGINX(エンジンエックスと読みます)がシェアを伸ばしてきています。
    • Nginxは、もともと大量のアクセスがあるWebサイトのHTTPサーバーとして開発されたため、大量のアクセスを高速に捌くのが得意な軽量サーバーです。1日に5億ものリクエストを処理することもできるほどのポテンシャルを持っています。Apacheでは1つのリクエストにスレッドを割り当てるため、大量のリクエストを捌くのは苦手です。
    • NGINXのキャッシュ機能は、静的なコンテンツを大量にキャッシュとして保存できるため、静的コンテンツへの高速なアクセスを可能にします。
    • NGINXは、基本は軽く小さく、モジュールを組み込むことで様々な機能を追加するタイプのアプリケーションです。モジュールの組み込みにより、それ単体でリバースプロキシーサーバーにもロードバランサーにもなるため、最初は小さく、将来的にWEBサーバー周りの拡張を考える際に、良い候補となるでしょう。
    • APACHEとの大きな違いその1は、PHPがFPM ( FastCGI Process Manager ) を通じてfastCGIのモジュール組み込みによる別プロセスとして動作します。(要は高速にするために実行プロセスもキャッシュ化できるということ)
    • APACHEとの大きな違いその2は、.htaccessが使えません。NGINXでは、APACHEの時に、.htaccessで設定していた内容は、nginx.confをはじめとした設定ファイルに書き込んでいく形となります。ここが少し面倒なところですね。nginxの設定ファイルの書式は、ディレクティブとしてきちんと構造化されているので、頭に入ってしまえば、扱いやすい構造になっています。ただ、APACHEから乗り換える際には、戸惑ってしまうことも多いかもしれません。
  • MAILサーバー:CourierIMAP(IMAP=受信サーバー)/EXIM(SMTP=送信サーバー)
    • MAILサーバーの現主流は、Dovecot(IMAP=受信サーバー)とPosftfix(SMTP=送信サーバー) なのかなと思います。Cent OSではそちらが標準ですね。対して、ubuntuやDebianでは、MTAは、EXIMが標準となってきました。今回は、Ajentiでホストの管理を行う都合上、ubuntuサーバーで、この2つを使います。
      ※MTA(Mail Transfer Agent)とは、電子メールを配信/転送するプログラムのことです。今の話の中では、SMTPサーバーとイコールと思って良いです。
    • 以前に、Cent OSでAjentiを使おうとしたところ、CourierIMAPがrpmになく、さらに依存関係が複雑でがっつりハマってしまい、もう2度と嫌だ!と思ったので(泣)、さっくりとインストールできるubuntu+Ajentiのコンビで働いてもらうことにしました。
    • ただし、CourierIMAP、EXIM共に、ネット上での情報が少ないです。インストールや設定でハマってしまうと、かなり難儀します。今回はクリーンインストールの前提ですので、気にせず行くことにしました。
  • FTPサーバー:pureFTPD
    • proFTPDなどいくつかの競合パッケージがありますが、こちらもAjentiさんの標準ということで、pureFTPDを使用します。Ajenti-vのモジュールを追加していますので、Ajentiの管理画面から、簡単に設定追加することができます。
  • DBサーバー:MySQL
    • 最近は、mariaSQLという、MySQLにほぼ完全互換のDBサーバーが出てきています。大きなDBになる時に、MySQLよりも優位性があったりするのですが、特にそこまでの必要もないため、MySQLでいきます。ここもAjenti-vのモジュールによって簡単にMySQLの設定が追加できるようになっています。DBは、postgreSQLやmangoDBなども候補になってくるかと思いますので、好みによって差し替えても良いかと思います。
  • NTPサーバー:openNTPD
    • 時刻調整のためNTPを設定します。サーバーの内部調整だけでなく、日本のNICTサーバーやプロバイダのNTPにも同期することで、サーバー時刻のズレを防ぐことができます。

長くなりそうなので、続きを分けます。

WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー( Pure FTPD)、DBサーバー(MySQL)をインストールする-その2へ

<やること一覧>





サーバーコントロールパネルのAjentiをインストールする

Ajentiは、linuxサーバーの設定編集を簡単にするWEBベースのコントロールパネルです。

ベースのソフトウエアであるAjentiにAjenti-vと言う追加モジュールを組み込むことで、プラグイン的にlinuxサーバーのコントロール機能が追加される仕様になっています。

WEBベースのサーバーコントロールパネルは、cPanelやpleskが有名ですが、いずれも高価です。

また、オープンソースの無償のものでは、

  • WEBMIN / VIRTUALMIN / USERMIN
  • ISPConfig
  • Ajenti / Ajenti-V

などいくつかの選択肢があり、最も使われているものは、WEBMINです。(VIRTUALMIN/USERMINはそれぞれWEBMINをベースとしてバーチャルソフトやメールアカウントを管理するソフトウエア)
しかし、WEBMINは多機能でサーバーの設定を細かく触れる分、インターフェイスが複雑で、またその割にデザインが今ひとつなため、扱いにくい一面があります。ISPConfigは、再販サーバー向けの機能があり、これまた多機能ですが、インターフェイスも日本語で提供されていないため使いにくいと思います。
Ajentiは、デザインが使いやすく、細かな設定もしやすい工夫がされていますので、扱いやすいかと思います。欠点は、メールサーバーが、postfix/dovecotの主流の組み合わせではなく、 courierIMAP/EXIM、pureFTPDといったややマイナーな組み合わせの対応だったりするところです。
しかしながら、postfixなどが使えないと言うことではなく、ajenti-vのモジュールで簡単に設定できるのがこれらのソフトウエアサーバーというだけです。インターフェイスは大変優れていますので、今回は、Ajentiを使用して、ターミナルとAjentiを併用しながら、サーバー構築を進めていきます。

それでは、まずここでは、Ajentiをインストールしていきます。
※Ajentiは、2.x系統と1.x系統がありますが、メンテナンスがされて、より新しい機能が実装されているものは、1.x系統です。

AjentiのWEBサイトから、Ajenti1.x Server admin panelをインストールします。今回は、ubuntu 16.04サーバーですので、ubuntu用パッケージを利用します。

Ajenti1.xをインストールする

<簡単インストール>

wget -O- https://raw.github.com/ajenti/ajenti/1.x/scripts/install-ubuntu.sh | sudo sh

<マニュアルインストール>

  • リポジトリキーを登録する
wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add -
  • リポジトリを/etc/apt/sources.listに追加する
echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" | sudo tee -a /etc/apt/sources.list
  • パッケージをインストールする
sudo apt-get update && sudo apt-get install ajenti
  • 一旦サービスをスタートする(※下記まで一気に行う場合は、しなくても良い)
sudo service ajenti restart

http://support.ajenti.org/topics/1121-installing-on-ubuntu/

それでは、インストールしたAjentiに、IPアドレスで接続してみましょう。
先のfirewallの設定で、Ajentiで使用する8000番ポートを開けていますので、下記のURLでブラウザからアクセスできるはずです。

https://000.000.000.000:8000 ←000.000.000.000はVPSサーバーのIPアドレス。

Ajentiには、SSL接続を行いますが、この時点では、 Ajentiが自前で発行したSSL証明書を使用しているため、最初のアクセスの際、chromeなどでは、下記のように、プライバシー警告が出るはずです。SSL暗号化自体は設定されていますので、気にせず、左下の、「詳細」リンクをクリックし、さらに表示される最下部の「000.000.000.000にアクセスする(安全ではありません)」をクリックします。

インストールができているのに、アクセスができない場合は、8000番ポートが正しくオープンされているか、firewallの設定を確認してみてください。

インストールが無事完了していれば、このようなログイン画面になるはずです。

初期ログインアカウントは下記になっています。

Username: root

Password: admin

  • ログインしたらまずパスワードを変更し、下の「SAVE」ボタンをクリックして設定を保存。

  • つぎに言語を日本語にします。
    General->Language->「ja-JP」に変更したら、ページの一番下の「SAVE」ボタンをクリックし、その隣の「RESTART」ボタンをクリック。再度ログインし直すと、日本語に変わっています。

以上でAjentiがインストールできました。

次は、WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー( Pure FTPD)、DBサーバー(MySQL)など必要なサービスをインストールしていきます。

<やること一覧>