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共に、ネット上での情報が少ないです。インストールや設定でハマってしまうと、かなり難儀します。今回はクリーンインストールの前提ですので、気にせず行くことにしました。
- MAILサーバーの現主流は、Dovecot(IMAP=受信サーバー)とPosftfix(SMTP=送信サーバー) なのかなと思います。Cent OSではそちらが標準ですね。対して、ubuntuやDebianでは、MTAは、EXIMが標準となってきました。今回は、Ajentiでホストの管理を行う都合上、ubuntuサーバーで、この2つを使います。
- 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へ
<やること一覧>
- CONOHAのVPSを借りてubuntu 16.04 OSを選択インストールする
- CONOHAのVPSでメインドメイン、サブドメイン、メールサーバー、ネームサーバーにDNSを仕向ける
- SSHでサーバにアクセスし、アップデートやfirewallなどの初期設定をする
- サーバーコントロールパネルのAjentiをインストールする
- WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー(Pure FTPD)、DBサーバー(MySQL)をインストールする-その1
- WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー(Pure FTPD)、DBサーバー(MySQL)をインストールする-その2
- WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー(Pure FTPD)、DBサーバー(MySQL)をインストールする-その3
- WEBサーバー(NGINX)、メールサーバー(Courier-IMAP/EXIM4)、FTPサーバー(Pure FTPD)、DBサーバー(MySQL)をインストールする-その4
- AjentiにプラグインパッケージAjenti-Vを追加する
- NGINXにAjentiでバーチャルドメインを設定する
- ubuntu16.04にNGINXで作成したバーチャルホストに、Let’s Encryptで無料SSLを発行する
- バーチャルサイトとAjentiコントロールパネルをLet’s EncryptのSSL証明書に対応させ、ドメイン名でアクセスする
- Webmail(Rainloop)をインストールしてメールの送受信をテストする
- ubuntu16.04にNGINXで作成したバーチャルホストに、PhpMyAdminをインストールする
- ubuntu16.04にNGINXで作成したバーチャルホストに、Wordpressをインストールする