VPSでCentOS7サーバを構築する まとめ編

なんとかまとめまでたどり着きました…。ということで、今回は大規模なリンクを張っておきましょう。

 

サーバー構築の手順まとめ

以下のような手順になります。なお、手順にあるリンク先のページでは設定に関するヒントがあります。

  1. VPSの契約(自宅サーバの場合はマシンセットアップ)
  2. rootログインを行い、yumで一度最新までアップデートを行う
  3. 通常のログインユーザを作成してsudoによるroot昇格を設定する
  4. (必要であれば)SELinuxを設定する
  5. SSHの設定を行い、外部からの侵入されないようにする
  6. 不必要なサービスを停止する
  7. ディスククォータを設定する
  8. 最新のパッケージを導入するために、現在入っている不必要なパッケージをすべて削除する
  9. 最新のパッケージを導入するためのリポジトリを設定する
  10. アンチウィルスを導入する
  11. httpd(Apache)の導入
  12. Let’s Encryptを使った常時SSL化対応処理
  13. php-fpmの導入
  14. MariaDBの導入
  15. nginxの導入
  16. vsftpdの導入
  17. postfix、dovecotの導入
  18. 各サービスの動作チェック

 

やっぱりそれなりの知識は必要ですね

特に設定でエラーを起こした場合、何が間違いかどうかを調べるにはプログラムを作っているときに何が間違えているかを確認するテクニックと同じような物が必要なのでは、と思っています。今回はターミナルからの設定で何回もエラーを起こしたのが、どうもキー操作ミスで設定ファイルの一番先頭に間違えたアルファベットが入ってそれを読み込もうとしてエラーを起こす、というパターンです。作業の慣れが消えてしまっているのがわかってちょっとショック。また、設定項目を自分で書いている場合で、項目名のスペルを誤って認識している場合がありました。Apacheの設定で「SetHandler」という項目が出てきたので、にたスペルの文字を見たときにそれだ、と思い込んでいると実は「SetHeader」だった、とか…。

 

経験がない人はVPSだけではなく一度自分のマシンでやってみるとよいかも

昔とは異なり、2万円以上するCPU(具体的にはCorei3以上)であったり、メーカー製でもそのレベルのCPUがあれば仮想マシンを使うための機能くらいはついていますし、仮想マシンを作るためのプログラムも無料で手に入る(VirtualBoxなど)ので、自分の手元でやってみてどうなるか?は実験した上でVPSを契約してみるのがよいと思います。プログラミングでもそうですが、設定の説明ページだけを見てそれをコピーしていても何も成長はしません。自分の環境に合うように設定してみたときに何が起こるのか、体験してみないとわからないことが多いからです。その点、仮想マシンであれば間違えたときにすべてを吹っ飛ばすことが簡単にできますので、怖がる必要はほとんどないと思いますよ。VPS以上になれば外部サーバを使った中でもできることが通常のレンタルサーバに比べて格段に増えますからね。面倒さも同じくらい増えますが。

 

プログラミング教育でこういうのはどうにかなるのかな…。

こういう「何が間違いかを考えるためにあれこれ考える」という能力は今の社会では必要ですので、その意味でもプログラミング教育の意義はあるのかもしれません。実際にやってみると人による差が大きすぎて大変ですが。そういう教材についてちょっと研究してみたりしたので、その感想も踏まえて別の機会にblogの記事にしたいと思います。

 

VPSでCentOS7サーバを構築する FTPサーバ、メールサーバ編

というわけで今回でサーバ構築の大体の話が終わります。結局5回に分かれてしまいましたね…。前回でWebサーバ編が終わったので残りの部分になります。

 

16.vsftpdの導入

FTP自体はSFTPがあればどうとでもなるような気がしますが、Webサーバが動いている環境でデータ送信といえば簡単にできるのがFTPです。Webサーバの時にSSL証明書もとってありますので普通に暗号化通信ができるのが楽なところです。

ちょっと導入で迷ったのが、今回サーバ側にIPv6が一つ割り振られているということでどうせならIPv6でも待ち受け可能な設定にしたのですが、その場合にvsftpdでlistenさせるときには設定が微妙に異なり、/etc/vsftpd/vsftpd.confに対する設定で

listen=NO
listen_ipv6=YES

のように単純なlistenの設定はNOにしないとうまくいかない、ということです。設定のコメントにも書いてありましたが、listen_ipv6を有効にするだけでipv4側のlistenも有効になるということで、覚えておきましょう。

 

17. postfix、dovecotの導入

いつもの通り、SMTPサーバにはpostfix、POP/IMAPサーバにはdovecotを使います。postfixのメール送信時のパスワードチェックにはsaslauthも使いますのでそちらも導入しておきましょう。もうSSLを使った暗号通信しか使わないのでPort587・Port110・Port143を開ける必要は全くないと思います。ただし、Port25は開けておかないと外部のメールサーバがこちらにメールを送信できない、というとんでもない現象になりますので気をつけて。

また、CentOS7ではclamavとの通信はmilter-managerというものを使うことが主流なようなのでそちらに設定を変更しています。特別な設定はあまり必要ではないはずなのですが、clamavとのやりとりを設定するときに妙な設定ミスをしたのか、うまくウィルスチェックのやりとりができない、という現象もおこったりして時間を使いました。設定の説明はちゃんと読みましょう、というやつですね。

dovecot側の設定ではメールボックス設定(/etc/dovecot/conf.d/10-mail.conf)で、Maildir形式を使う場合は余計な設定は無効にしておきましょう。特にnamespace inbox{}は初めは無効化していませんが今回は全く使いませんのですべてコメントアウトしてください。最後にSSLについては、どちらもcertファイルを指定する場合はLet’sEncryptのファイルの内fullchain.pemを指定します。cert.pemを指定するわけではないので注意しましょう。

 

18. 各サービスの動作チェック

外部に公開する前に正しく動作しているかどうかのチェックです。前回の番外編にも書きましたが、特にSSL証明書はドメインと関連付けられて発行されていますので、アクセスする側が一時的にドメインとIPの関連付けを変更して正しいと認識させないと動作チェックがうまくできないのがやっかいなところ。メールサーバのチェックでも同じようなことが起こってしまい、メール送信がうまくいかなかったりとかなり苦労しました。また、メールサーバは特にVPSの場合、無料期間だと正しく外部に送信できないようにVPS管理会社が設定していることもあるので使用料の支払いが終わった後でないと検査できなかったりするとか、WebのCGIではよくよく考えるとblogで数式を表示しているtexですが、こちらはコードからコンパイルしているのでサーバが変わるならもう一度コンパイルしないとまずかったり、latexのライブラリが必要だったりといくつかの記事を抜き打ちで回らないと忘れている項目がかなり多かったりとします。

個人サーバならある程度チェックが終わった段階で入れ替えて公開、あとは自分が見つけた設定ミスを少しずつ修正する、で済むのですが、仕事の依頼として受けるのであれば確認手順までマニュアル化しておかないと不備を言われる羽目になったり、無料サポートをすることになり、それが永続的になってしまって依頼料との釣り合いがいつの間にかとれなくなっていったりとします。気をつけましょう。自分のことなのですがね…。

 

次回はサーバ構築に関するまとめ

CentOS7を使って本格的なサーバ構築をするのは久しぶりでした。以前にやったのはファイルサーバの組み立てでしたからね。それにしても前のサーバはCentOS6のまま結局6年くらい少しずつアップデートを重ねて動いていったんだよな…。と感心したりしています。

 

VPSでCentOS7サーバを構築する Webサーバ編後編

前編ではサーバを支えるバックエンドについて設定のこつなどを書きましたが、後編ではフロントエンドおよび番外編としてWordPressの移転について少し書かせてもらいたいと思います。なお、箇条書きの番号は案内ページに書いてある番号をそのまま使っていますのであしからず。

 

14.MariaDBの導入

WordPressやら何やらを使うためにはどうしてもデータベースサーバが必要になります。そのため、MySQL互換のMariaDBを導入しておく必要性がある、というわけです。今回はMariaDBのサーバからリポジトリを導入しているので実は

# yum install mariadb-server mariadb-clinent

とやるだけで最新のMariaDBが導入できちゃったりします。ちなみに私が導入したときのバージョンは10.3系でした。それ以外の設定もMySQL時代と同じ設定がほとんど使えますので「設定を書く場所を間違えなければ」ほぼそのまま書くことができます。例えばサーバに関する設定であれば/etc/my.cnfは変更せずに/etc/my.cnf.d/server.cnfに書く、とかでしょうか。

あともう一つ注意なのが今回MariaDBの領域を別パーティションとして扱っているので、/var/lib/mysql直下にlost+foundディレクトリが生成されています。MySQLやMariaDBはデータベースごとにディレクトリを生成してその中に格納していくタイプなので、空のディレクトリがあると間違えて存在するデータベースとして認識されてしまいます(私の場合は#mysql5.0#lost+foundだったかな?)。一応ディレクトリを削除すればデータベースはなかったことになりますし、実はMariaDBの設定ファイル/etc/my.cnf.d/server.cnfあたりに

[mysqld]
ignore-db-dir = lost+found

とやるとMariaDBからデータベースが「見えなく」なります。USE DATABASEで選択できるので隠しデータベースのできあがり、というなんとも怖い現象だったりするのですが…

 

15. nginxの導入

あとはフロントエンドに当たるnginxを導入します。こちらも今回はリポジトリが設定されているので

# yum install nginx

だけでインストールが可能です。まあ、Apache2.4系になったこととOpenSSLもある程度新しくなっているのでApache側でHTTP/2.0が使えるようになっている、というのがなんともいえないところでしょうか。キャッシュなんかもnginxを通さなくてもある程度速度が出るのかも…。

ちなみに今回は設定を以前のサーバからそのまま持ってきたので詳しいチューニングは行っていません。VPSサービスそのものはほぼ同じ物を使っているので問題はないはずですが…。

 

番外編その1 WordPressの移行

これでWebサーバの基本的な構築は完了したので各部分の動作チェックを行えば移行が可能になります。今回少し苦労したWordPressの移行について少し書いておきます。基本的にWebのファイルについては前のサーバでtarで固めたものを持ってきて展開、データベースは対象の部分を一度SQLでdumpした後移行するサーバ上でSQLを直接発行して終わりになります。

SQLの部分はちょっとサイズと実行時間に問題があった(php-fpmのタイムアウト設定やらphpのアップロードサイズ設定やらnginxのアップロードサイズ設定やらにひっかかる)ので、Webからの処理は諦めてターミナルから入れて解決しました。取り出すときはWebからの処理でも大丈夫だったのに…。

そして面倒だったのがWebファイル側の部分です。パーミッションや所有者はtarで固めている関係で迷うことは全くなかったのですが、Webページを開こうとすると500エラーで開かない。Webのエラーログをあさってみても500を「起こした」ことは書いてあったも具体的なエラー原因がわからない。というわけでターミナル上からphpをindex.phpに対して直接発行することで何がエラーになったのか、を調べてみました。結論から言うとWordPress本体はPHP7.0系以上が基本となっているのですが、プラグイン側の一部がPHP7.0系以上で動かない構造になっていた、具体的にはphpはmysql系関数はPHP7.0系以上では使用不可となりPDOかmysqli関数を使わないといけないのですが、そのプラグインがmysql関数を使う構造となっていたためあえなくアウトということになってしまいました。これに関してはまさか初めからWordPressを展開して記事だけ移行+プラグインを一つ一つ入れていく、なんてことをやると大変なのでWordPressプラグインのディレクトリから対象のプラグインを除去する形で処理してなんとか動かすことに成功しました。この辺は知識がないと難しいですね…。

 

番外編その2 ドメイン移行前に対象ドメインへのアクセスチェックをするには?

Webサーバなんかではアクセスしてきたドメインごとに振り分ける機能がありますが、これはこの手のサーバ移転ではくせ者になります。つまり、移転作業はチェックが終わるまでは外部に公開できないのに公開した状態がどうなのか?をチェックするためにはドメインを移行したように見せかけなくてはならない、ということになります。SSL証明書なんかでもドメイン名を指定するので移転前だとIPを直接入れるか仮のDNSからアクセスすることになるので毎回ブラウザからのアクセスが不正だ、といわれてしまいます。内部だけでやっているのであれば何とでもできる(DNSサーバをいじるなど)ですが、今回その方法はとれません。

で、どうするか?というと手順としてはこんなやり方をします。

  1. 仮想マシンなど対象のWebサーバにアクセスするためのマシンを用意する
  2. 対象のマシンのhostsファイルを一時的に書き換えてしまう(WindowsならWindows/System32/etc/driversにあるので、編集するなら管理者権限があるメモ帳を使うのが一番簡単か?)
  3. 適当なブラウザでアクセスしてみる

仮想マシンを用意しているのはhostsの書き換えの結果をできれば破棄したいからです。作業環境を書き換えると元に戻すことを忘れたときに面倒なことになるからですね。この方法はWebサーバ以外でもftpサーバやメールサーバへのアクセスチェックでも活躍できます。現に私がチェックしたときには同様のことを行いました。新しく構築する場合はこの手の作業はあまり必要ではないのですが…。

 

残りのサービスは最終回に持ち越し

ftpサーバとメールサーバですね。ただし、こちらも設定を引き継ぐだけなのであまり詳しいことは書きませんよ。

 

VPSでCentOS7サーバを構築する Webサーバ編前編

一応前回からの続きになります。記事がどう考えても長くなりそうだったのでWebサーバ編ということで細かくしました。といってもWebサーバ編が多分中心になるのでは、と思っています。一応WordPressを動かすことを前提に書いていますので参考にしてみてはいかがでしょうか。一応今までのサーバ形式を受け継いでApache+MariaDB+Nginx(+php-fpm)としています。

 

11.httpd(Apache)の導入

まずはバックエンドになるhttpdの導入です。ちなみに前の記事でIUSを利用できるようにしていますのでそこからインストールすればある程度新しいApacheがインストールできます。インストールそのものは簡単で

# yum install httpd

で導入できます。IUSを有効にしていればmod_sslも自動的に入るのでそこまで難しいことはないと思います。あとは一般的なApacheの設定を行えばOKだと思います。ちなみに、今回最新のApacheを使う上で苦労した点が3つありまして、

  1. アクセス制御がOrder指定からRequireを使う形になったため、パスワードを使う方式を設定するときにRequire valid-userのみで大丈夫なことに気が付くのに時間がかかった。
  2. ポートごとに設定を行う場合でもNameVIrtualHostを設定しなくてもよくなっていた。
  3. php-fpmの連動のためにCentOS7標準のApache2.4.6では問題が出ることがわかり、ある度新しいApacheを使う必要があった。なお、php-fpmとの連動はmod_proxy_fcgiを使うことになる。

でしょうか。

最後の項目には説明が必要でしょうね。前のサーバではApache2.2系を使っていたのでphp-fpmとの連動はmod_fastcgiのコードをとってきてコンパイルしたものを使っていました。ところがApache2.4系ではmod_fastcgiはほぼ使えない、ということが各所で書かれていてmod_fcgidを使うように、となっていました。で、こちらを使おうと思ったら、今度はどうもsocketファイルを使った通信でphp-fpmと連動させることがかなり難しく、内部的にサーバを起動させた形にしなければならないような感じになっていたのでこちらも断念。そうするとmod_proxy_fcgi経由でのやり取りとなるのですが、これの設定がApache2.4.10より前ではかなり厄介ということが書かれていて、SetHandler構文が使えずProxyPassMatchという構文を使わなければならない、ということがあり、サイトごとにProxyを設定するのが恐ろしく面倒ということが構築途中で分かったため、SetHanderでfcgiを使えるようなったApache2.4.10以降が必要という条件が課せられることがあり、結局IUSを導入せざるを得なくなった、というが結論だったりします。

これを読んでいる人でApache+php-fpmを考える人はApache2.4.10以降を一発で導入できる環境を整えるほうがProxyPassMatchで悩むより良いと思います。実際、ProxyPassMatchは細かいディレクトリ単位では設定できないので(この後やろうとしている)ディレクトリごとで実行ユーザを変更する、といった用途だと設定が難しいと思います。

 

12.Let’s Encryptを使った常時SSL化対応処理

そしてなぜこの順番になったのか?の原因が常時SSL化に対応するためにLet’s EncryptからSSL証明書を自動取得できるようにするべくcertbotを導入するするのでが、これがApacheとの連動設定を含むためにApacheをインストールした後でないとちょっと困ったことになること、そしてSSL証明書そのものはWebサーバ以外のほかのサーバでも使用するので先に証明書を取得する設定をこの段階でしてしまったほうが良いからです。

CentOS7ではcertbotはEPELリポジトリにあるのでこの段階であればyum経由でインストールできると思います。詳細な説明はほかのサイトに譲りましょう。ちなみに証明書をApache2.4系に組み込むときですが、今回Apache2.4.10以上となっていることとVPSを使っているためいくつ注意点がありまして、

  • SSLCertificateFileにはfullchain.pemを設定すること
  • (VPSの場合は特に)SSLCryptoDeviceの設定は無効化しておくこと

となっています。ちなみに私はSSLCryptoDeviceの設定を無効化していなかったためしばらくhttpdが起動できない、という状態となり理由を探すのに数十分ほど時間を費やしました。VPSではハードウェア暗号デバイスなんてあるわけないですからね…。

 

13. php-fpmの導入

Webサーバ第2弾はphp-fpmの導入です、phpをインストールするとApacheとくっつくので実行は簡単になるのですが、実行キャッシュが効かなかったりメモリ的に不利になったりとあるので、サーバ化してしまうのが正しいと思います。また、phpに対してsudo に近いことを簡単に設定できるのも利点です。設定ファイルで複数ソケットファイルを作成するようにしてそれぞれを参照するときに実行するユーザを別にすることで、対象のソケットファイルをSetHandler経由でApache側から指定すればできるます。複数ユーザを束ねるようになると設定がちょっと面倒ですが、2,3人程度の共用ならこれもありだと思います。ほかにもバックエンドにApacheを使わずにNginx+php-fpmという組み合わせでWordPressを動かすパターンもありますのでそのときでも使えます。

php-fpmはRemi経由でインストールできます。いくつか系統がありますので、使いたい系統を選んでインストールします。WordPressは2019年4月現在ではPHP7.0系統以上を推奨しているのでそちらを使用します。PHP7.0系統にするかPHP7.2系統にするか、それはご自由に。例えばphp7.0系統にするのであれば

# yum install --disablerepo=base,updates --enablerepo=remi-php70 php-fpm

というようにします。面倒なのは一時的にbaseとupdatesのリポジトリを無効にしなければ間違えてphp5.5系も選ばれてしまうことが一つ。もう一つは例えばphpの画像処理を入れようとするとbaseなどからlibjpegなどが必要となりますがそれを一時的に取り入れないようにしているので必要なphpのパッケージを選択するとたいてい一発ではインストールできず、この時足りないライブラリ群を先にこのコマンドで確認してからそちらを先にインストールしてもう一度これを行う必要があることでしょうか。なお、Apacheにphpを組み込まないのであればphpのパッケージはなくても問題ありません。php-fpmを設定してサービスとして常駐できればそれでOKだからです。php-fpmが入っていればターミナルからphpは使えますので安心してください。phpの設定とphp-fpmの設定を両方して、サービスとしてphp-fpmを動かしておいてください。

# systemctl start php-fpm
# systemctl enable php-fpm

 

とりあえず前編はここまで

ここまでくればphpが動かせるはずですので、phpinfo関数から状態を確認しておくとよいでしょう。Apacheも必要であれ動かしておいてもよいかもしれません。WordPressを動かすのであればMariaDBを入れないとだめですし、私の場合はリバースプロキシであるNginxなしに使うと速度が落ちるのでこの段階ではチェック程度しか動かせませんでしたが。

VPSでCentOS7サーバを構築する 拡張設定編

前回から引き続いて(CentOS7を使った)サーバの設定を続けます。VPSの場合やCentOS7の場合はこういうテクニックも必要になる、という意味で変わった設定をしていますので、参考にしてみたい人は参考にしてみるとよいと思います。

 

07.ディスククォータを設定する

この作業は自宅サーバではまず必要ではない作業です。なぜなら自宅サーバで運営していてストレージ容量が足りなくなる、なんてことはまずあり得ない上に必要であればディスクを物理的に追加すればよい話だからです。これは「通常1パーティションしか割り当てが不可能」「ストレージ容量の拡張がほぼ不可能」「ストレージ容量が原因でのサーバ停止を避ける」という条件がある場合に設定するとよいと思います。実はこれがWindowModePatchの情報を集めようと思ってwikiを作ったはいいけれども公開できなかった大きな理由の一つです。

といっても、ディスククォータをパーティションレベルで割り当てるのは設定が意外と面倒なので単純な発想で「ループバックデバイスを使ってディスクイメージに容量制限をしたい領域を書き込ませる」というのがよいのでは、と思います。何かあったときにはファイルを取り出してディスクイメージを削除すれば簡単に元に戻せますし。

というわけでやってみましょう。私の場合は特にデータベースを扱う領域を別領域のように扱いたいので、その領域を作成します。例えばVPSだと大きくても50GBとか100GBのストレージしか持たない、なんてことは多いので、その中でも20GBをデータベースの領域として割り振ってみましょう。データベースはWordPressを使う関係でMariaDBを使う前提だとすると、/var/lib/mysqlをディスクイメージ領域にしてみるためにはこんなことをします。/diskimgにディスクイメージを置くとするとこんな感じになります。書き方はrootの状態での書き方になっています。必要であればsudoをつけてください。

# mkdir /diskimg
# dd if=/dev/zero of=/diskimg/database.img bs=1M count=20480
# mkfs.ext4 -m 0 /diskimg/database.img
# tune2fs -c 0 ./diskimg/database.img

ちなみに空ファイルの作成はddでやっていますが、こちらはtruncateから作ってもあまり変わりありません。mkfs.ext4を行った時点でスパースファイルになっていましたので。また、今回の場合はファイルシステムをext4で作っていますがこれは適当な物を選んでください。この場合のext4の問題点はオプションをつけなければ勝手にroot用の領域がとられてしまうこと、マウントの回数によってはディスクチェックがかかることですが、今回は内部的なのでそれはいらないということで両方ともカットしています。最後に/etc/fstabを書き換えて終わりですね。こんな行を追加します。

/diskimg/database.img /var/lib/mysql ext4 defaults 0 0

ほかにも必要な領域があるのであれば同じようにすればクォータシステムを(ある意味)簡単に使えます。本物のクォータと異なるところは対象の領域の容量が少なくなっても警告メールが来ないことでしょうか…。

 

08. 最新のパッケージを導入するために、現在入っている不必要なパッケージをすべて削除する

以前のサーバとできるだけ同じことができることが望ましいので、そのために次の物をセットアップします。

  • Webサーバ(Apache、php-fpm、nginx)
  • データベースサーバ(MariaDB)
  • FTPサーバ(vsftpd)
  • メールサーバ(postfix、dovecot)

この中で問題になるのがMariaDBです。こちらはCentOS7標準のリポジトリに入っているのですがこれのバージョンが5.5系統となっており、最新のMariaDBを使おうとするとライブラリが衝突する、ということであらかじめ削除しておく必要があります。

# yum erase mariadb-lib

ただ、面白いことに、これを行うとCentOS7に入っているpostfixがまとめて削除対象となりますので、データベースサーバをセットアップする前にメールサーバをセットアップしてしまうと人によっては泣きたくなるかも。サーバを構築する前に何を入れるのか確認をしておきましょう、ということですか…。

 

09. 最新のパッケージを導入するためのリポジトリを設定する

特にWebサーバに関わる物はある程度新しいパッケージを使いたかった、というかPHPを5.4系統から7系統まで引き上げることが今回の目的の一つなので必要なリポジトリを動かせるようにする必要があります。まず、リポジトリを導入する前に必要なライブラリおよびEPELリポジトリを使えるようにしておきましょう。

yum install yum-utils
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

そして、今回使うリポジトリとインストール手順は以下のようになります。

・IUS(Apache)

# yum install https://centos7.iuscommunity.org/ius-release.rpm

・Remi(php-fpm)

# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

・Nginx(nginx)

以下を/etc/yum.repo.d/にnginx.repoとして作成する

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

・MariaDB(MariaDB)

# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

インストール方法が多彩なので何でどれをやるのか確認しておくとよいと思います。vsftpとpostfixとdovecotについてはそこまでバージョンにこだわっているわけではないのでCentOS7標準のリポジトリからとってきた物で問題ないと思います。

 

10.アンチウィルスを導入する

これはできれば導入をしておきましょう。CentOS7で簡単にアンチウィルスを設定するなら多分ClamAVが設定資料も多くこの後のメールサーバとの連動もやりやすいのではないでしょうか。ほかに設定してみたい物があるならそれでもよいと思います。全くないのは外部に公開するサーバとしては怖すぎる、といったところですね。

 

以降は個別のセットアップ作業に入る

WordPressが使えるようになるまでにちょっと手順が必要なのがVPSなどの大変なところ。今回は移転が目的なので各種設定やチューニングは前のサーバのものをほとんど引き継ぎげるのがありがたいところ。バージョンアップしている分、設定が変わっていたりするのでその部分を合わせていくのが大変でしたが。