vol.39 CentOS7にハイパフォーマンスな Webサーバーをインストールしよう! 準備編
こんにちは。Webエンジニアの毛利です。
今回はサーバーの構築のお話です。
ウェブサイトを公開したいと思ったとき、Webサーバーの環境が必要になります。
その時、共用レンタルサーバーがもっともお手軽で、わかりやすいです。
しかし、簡単である反面、本格的にやってみたい、カスタマイズしてみたいと思ったときに難しいことが多く、汎用性に欠けます。
また、同じ環境内に他ユーザーがサーバーを共有している状態のため他ユーザーのサイトトラフィックの影響を受け、他ユーザのサイトがアクセス過多となったとき、リソースがそちらに割かれるため自分のサイト動作が重くなってしまうなどが起こり得ます。
自由にカスタマイズしたい場合、OSのroot権限が必要になり、OSそのものをフルで操作できる環境が必要になります。
以前までは専有サーバーが選択肢にあがっていましたが共用サーバーに比べ料金が高く、気軽に利用できるようなものではありませんでした。
しかし最近では、OS単位で環境を利用できる、安価なサービスが続々と登場しています。
VPSやクラウドサーバーなどによってサーバー環境を提供するサービスが多様化し、思い描くサーバー機能を実現できる環境を気軽に利用できるようになりました。
今回はLinuxディストリビューションの1つ、CentOSでWebサイトを公開するための環境を構築していきます。
サーバー設定を始めよう
Webサーバー構築の作業はMacからリモート接続で行います。
サーバーのOSはCentOS7で設定を進めます。
サービスによって使えるOSは多少異なりますが、大きくWindows系サーバー(Hyper-V)かLinux系サーバー(KVM)であることが多いです。
また、Linuxの場合、OSのディストリビューションやバージョンが自由に選べ、サービスによってはOSのISOのイメージをそのままマウントし、インストールして使うことができる場合もあります。
※OSバージョンによってはサービス側でテクニカルサポート対象外としている場合があるので要注意です。
ターミナルからSSH経由でリモートログインし、設定を行っていきます。
他にもSSHリモートログイン用のソフトはありますが、操作的には直感的でターミナルがシンプルで使いやすいと感じていますのでターミナルで行っていきましょう。
ディストリビューションとは
Linuxには様々な種類があります。
Linuxはオープンソースのため、OSの開発者が多数いるため、その幅は無数です。 国によって人気のディストリビューションに特色があります。
日本ではサーバー構築に特化して利用者数が多いのがCentOSです。
また、Ubuntuも有名です。 サーバーの選定基準としては、安定性、堅牢性、更新頻度(開発が続けられている)などあり、シェアが多いものを選ぶのが最適です。
SSHでログイン
まず以下の設定を済ませておいてください。
・公開鍵認証の設定(サーバー側)
・秘密鍵の取得と配置(ローカル側)
VPSやクラウドサービスではSSHでのログインのみを許可している場合が多いです。
その場合サーバーのコントロールパネルから鍵ファイルをダウンロードできます。
ユーザールート/.ssh/
.sshディレクトリのパーミッションを700に変更します。
$ chmod 700 ~/.ssh
秘密鍵のパーミッションを600に変更します。
$ chmod 600 ~/.ssh/(自分でつけた秘密鍵の名前)
ここまで設定を済ませたら、ログインを試してみます。
$ ssh -i 鍵のディレクトリ/鍵ファイル ユーザー名@サーバーホスト(IPアドレス、ドメイン)
例えば下記のようになります。
$ ssh -i ~/.ssh/id_rsa user@example.jp
ログインが完了したら早速インストールしていきます。
Nginxのインストール
WebサーバーNginxをインストールします。
インストールは下記コマンドで行います。
# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# yum install nginx
rpmコマンドでnginxのリポジトリを追加し、yumコマンドでインストールをしました。
PHP-FPMのインストール
続いてphp関連パッケージをインストールします。
インストールするバージョンは最新版のphp7系にします。
# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7.rpm
標準リポジトリからは最新バージョンのphpがインストール出来ないため、remiリポジトリを 追加しました。
# yum --enablerepo=remi --enablerepo=remi-php70 install php php-fpm php-mysqlnd php-gd php-mbstring php-pdo
必要であれば依存関係パッケージも一通りインストールします。
これでphp関連のインストールは終了です。
MariaDBのインストール
続いてMariaDBをインストールします。
MariaDBはMySQLをフォークして立ち上げられたプロジェクトによって開発が進められているため、MySQLと互換性があります。
基本的にMySQLと同様の運用が可能と思って良いでしょう。
Wordpressを動かすのに支障はありません。
最新版をインストールするにはリポジトリを追加します。
# vi /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1.10/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
保存したら下記のコマンドを実行しインストールします。
# yum install mariadb mariadb-server
これで基本的なインストールは完了となります。
まとめ
今回「準備編」ではターミナルでSSHログインをし、各種Webサーバーに必要な各種機能をインストールしていきました。
CentOS標準のパッケージだと最新版をインストール出来ない場合が多く、任意でリポジトリを追加してインストールする必要があります。
今回はyumでインストール可能な最新版のものに焦点を当てました。
ソースからビルドする方法もありますがそれはまたの機会にご紹介できればと思います。
次回「設定編」ではそれらを実際に設定し、Webサイトを見れるようにしていきます。
参考URL
CentOS 7 でLAMP(Apache+MariaDB(MySQL)+PHP)インストールからWordPressを動かすまで(Apache編)