今回はWebサーバー構築のお話です。
DEVELOPER
Y.M.
ウェブサイトを公開したいと思ったとき、Webサーバーの環境が必要になります。
その時、共用レンタルサーバーがもっともお手軽で、わかりやすいです。
しかし、簡単である反面、本格的にやってみたい、カスタマイズしてみたいと思ったときに難しいことが多く、汎用性に欠けます。
また、同じ環境内に他ユーザーがサーバーを共有している状態のため他ユーザーのサイトトラフィックの影響を受け、他ユーザのサイトがアクセス過多となったとき、リソースがそちらに割かれるため自分のサイト動作が重くなってしまうなどが起こり得ます。
自由にカスタマイズしたい場合、OSのroot権限が必要になり、OSそのものをフルで操作できる環境が必要になります。
以前までは専有サーバーが選択肢にあがっていましたが共用サーバーに比べ料金が高く、気軽に利用できるようなものではありませんでした。
しかし最近では、OS単位で環境を利用できる、安価なサービスが続々と登場しています。
VPSやクラウドサーバーなどによってサーバー環境を提供するサービスが多様化し、思い描くサーバー機能を実現できる環境を気軽に利用できるようになりました。
今回はLinuxディストリビューションの1つ、CentOSでWebサイトを公開するための環境を構築していきます。
Webサーバー構築の作業はMacからリモート接続で行います。
サーバーのOSはCentOS7※1※1CentOS7とは、Red Hat Enterprise Linux(RHEL)との完全互換を目指したフリーのLinuxディストリビューションのこと。で設定を進めます。
サービスによって使えるOSは多少異なりますが、大きくWindows系サーバー(Hyper-V)かLinux※2※2Linuxtpとは、Unix系のオペレーティングシステム(OS)のひとつであるLinuxカーネル、及びそれをカーネルとして用いたOSのこと。系サーバー(KVM)であることが多いです。
また、Linuxの場合、OSのディストリビューションやバージョンが自由に選べ、サービスによってはOSのISOのイメージをそのままマウントし、インストールして使うことができる場合もあります。
※OSバージョンによってはサービス側でテクニカルサポート対象外としている場合があるので要注意です。
ターミナルからSSH経由でリモートログインし、設定を行っていきます。
他にもSSHリモートログイン用のソフトはありますが、操作的には直感的でターミナルがシンプルで使いやすいと感じていますのでターミナルで行っていきましょう。
※1 CentOS7とは、Red Hat Enterprise Linux(RHEL)との完全互換を目指したフリーのLinuxディストリビューションのこと。
※2 Linuxtpとは、Unix系のオペレーティングシステム(OS)のひとつであるLinuxカーネル、及びそれをカーネルとして用いたOSのこと。
Linuxには様々な種類があります。
OSの開発者が多数いるLinuxは、オープンソースのため、その幅は無数です。
国によって人気のディストリビューションに特色があります。
日本ではサーバー構築に特化して利用者数が多いのがCentOSです。また、Ubuntuも有名です。
サーバーの選定基準としては、安定性、堅牢性、更新頻度(開発が続けられている)などあり、シェアが多いものを選ぶのが最適です。
まず以下の設定を済ませておいてください。
VPS※3※3VPSとは、実際は共用サーバーでありながら仮想化技術により専用サーバーと同等の機能を備えた、仮想的な専用サーバーのこと。やクラウドサービスではSSH※4※4SSHとは、「Secure Shell」の略。安全に通信を行い、ネットワークに接続された機器を遠隔操作するための通信手段のひとつ。でのログインのみを許可している場合が多いです。
その場合サーバーのコントロールパネルから鍵ファイルをダウンロードできます。
秘密鍵はMacの下記ディレクトリに置きます。
ユーザールート/.ssh/
.sshディレクトリのパーミッションを700に変更します。
$ chmod 700 ~/.ssh
秘密鍵のパーミッションを600に変更します。
$ chmod 600 ~/.ssh/(自分でつけた秘密鍵の名前)
ここまで設定を済ませたら、ログインを試してみます。
$ ssh -i 鍵のディレクトリ/鍵ファイル ユーザー名@サーバーホスト(IPアドレス、ドメイン)
例えば下記のようになります。
$ ssh -i ~/.ssh/id_rsa user@example.jp
ログインが完了したら早速インストールしていきます。
※3 VPSとは、実際は共用サーバーでありながら仮想化技術により専用サーバーと同等の機能を備えた、仮想的な専用サーバーのこと。
※4 SSHとは、「Secure Shell」の略。安全に通信を行い、ネットワークに接続された機器を遠隔操作するための通信手段のひとつ。
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※5※5PHPとは、動きがあるWebページを生成することができるサーバーサイドのスクリプト言語のこと。関連パッケージをインストールします。
インストールするバージョンは最新版の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関連のインストールは終了です。
※5 PHPとは、動きがあるWebページを生成することができるサーバーサイドのスクリプト言語のこと。
続いて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サイトを見れるようにしていきます。
今日もあなたに気づきと発見がありますように
画面を回転してください