EXCEL VBAやPHP、Laravelに関するWINDOWS・WEBプログラミングの解説ブログです。

さくらVPSにApache・独自ドメイン・マルチドメイン設定・無料SSL設定

さくらVPSにApache・独自ドメイン・マルチドメイン設定・無料SSL設定

昨今のレンタルサーバは、PHP、mySQL、WORDPRESSの簡易インストールまで至れり尽くせりです。それはそれでとても便利なのですが、 さくらのVPSでゴリゴリとサーバを操作してみようと思いました。
10数年前は、自宅に実際に箱型PCを置いてVineLINUXなんかでサーバを構築し、固定IPアドレスを契約し、公開していました。 また、LPIC レベル1、レベル2の資格を取ったりもしました。 しかし、今時、自宅にサーバ置く時代でもないので、さくらVPSサービスを利用し、サーバ構築をすることにしました。
当ページ内作業は2019年に実施した記録です。


OSインストール

CentOS7をインストールしました。

※さくらのVPSとして、私は1Gプラン(仮想2Core CPU)年間利用料金10,692円(2019年金額)を契約しました。

昔のように自宅に実際にPC置いて、サーバ構築・公開に比べると金額も手間も随分とお得と思います。



VPSにログイン

さくらのVPSを自宅のパソコンから操作するには、SSHクライアントというソフトウエアから行います。
Windowsのコマンドプロンプトみたいな感じです。
Windowsからはマニュアル通り、Puttyを使います。この辺りは、10数年前と変わっていないようです。
PuttyのダウンロードからクライアントPCへのインストールは、コチラを参考にしてください。
なんか難しそうに思いますが、とにかくやってみることをお薦めします。
サーバ構築が出来たときの達成感は何物にも代得難いです!

Puttyの起動

Puttyを起動すると、次のような画面が表示されます。HOST NAME(OR IP ADDRESS)の箇所にIPアドレスを入力して、Openをクリック。

次のような警告画面が最初のみ表示されますが、「はい」をクリック。

VPSに接続できましたら、rootと入力して、Enterキーを押す。
パスワードを求められので、VPSの仮登録完了お知らせメールに記載されている初期パスワードを入力。
root@IPAddress’sのIPAddressには、ご自分のIPアドレスが表示されます。

OSをアップデート

以下の表示が出てきたら、yをクリック。Completeが表示されれば、アップデート完了。

一般ユーザの作成

rootでログインすることはサーバが乗っ取られるリスクが大きく、非常に危険ですので、一般ユーザーを作成し、rootではなく、一般ユーザーでログインできるようにします。
vpsuserという一般ユーザーを作成し、パスワードを設定。
一般ユーザーでログインできることを確認するために、一旦SSHの接続を解除。

Puttyを起動し、一般ユーザー vpsuserでログイン。
ログイン後、su – でrootに切り替える。

次にrootで直接ログインできないように、sshd_configファイルを編集。
cdでデイレクトリ移動、ls でデイレクトリ情報の表示をし、sshd_configファイルがあることを確認し、念のために cp でsshd_config.oldというファイル名でバックアップを取る。
vimでsshd_configファイルを編集。

下のような画面が現れるので、やや戸惑うかと思いますが、

#PermitRootLogin yesの行まで移動し、
iキーをクリックし、挿入モード(INSERTモード)にし、PermitRootLogin noとする。
※なにをやっているのか分からなくなったら、ESCキーをクリックしてから:q!と入力すると保存せずに終了させることが出来ます。再度iキーをクリックし、挿入モード(INSERTモード)とし編集すると良いと思います。私はそうしています。

下のようにPermitRootLogin noと書き換えたら、:wでファイルを保存し、
ZZでvimエディタを終了
させる。

sshdを再起動し、設定を有効にする。

Puttyでrootでログインできないことを確認。



Apacheをインストール

httpサーバのApacheをインストール。

インストールしたら、httpdを起動。

ファイアウオールが有効になっており、http通信が遮断されていますので、httpおよびhttps通信を解除。
ファイアウオールを再起動し、サーバ起動時にhttpdも起動するように設定。

ブラウザで自分のIPアドレスを打つと、Apacheが起動していることが確認できました!テンションが上がるだろうと思います。

SFTPでファイルをアップロード

httpサーバのApacheが起動してテンションがアップしましたが、ファイルを転送できないと意味がありません。 ファイルを転送するために、クライアントPCでは、FileZilla Clientを利用します。
その前にapacheのドキュメントルートである/var/www/htmlデイレクトリに一般ユーザーvpsuserがファイルをアップロードできるようします。

ドキュメントルートの権限を変更

/var/www/htmlに一般ユーザがファイルアップロードできるように権限を設定します。

/var/www/に移動し、html/デイレクトリの権限、所有者、所有グループ名を確認。
所有者はrootになっており全ての権限を有しています。所有グループもrootで読み、実行のみの権限です。

所有者をapache、所有グループをvpsuserとして、vpsuserにも読み、書き、実行の権限を与える。

SFTPでファイルをアップロード

設定は以下の様に、IPアドレス、ポート番号、一般ユーザーであるvpsuser、そのパスワードを入力し、接続をクリック。

接続すると一般ユーザーのホームデイレクトリである/home/vpsuserに接続される。

赤丸箇所を二階層上がり、そこから/var/www/htmlと三階層下がり、htmlファイルをアップロード。

HTMLファイルの転送をブラウザで確認!

独自ドメイン取得、DNS設定

WEBサーバを公開するにあたり、IPアドレスで閲覧というのもスマートではありません。
お名前COMで独自ドメインweb-web.workというドメインを取得し、さくらのVPSサーバと紐づけることにします。

お名前COMでの設定

DNSの設定は、ドメイン管理会社のコントロールパネルで行う。
お名前COMの場合、以下の様にDNS関連環境の設定→DNSレコード設定で、AレコードにIPアドレスを設定


DNSの浸透に一時間ほどかかりましたが、ブラウザにweb-web.workと入力すると、WEBサイトが表示さました!

www.web-web.workのようにwww付でのアクセスも可能にしたい場合は、下のようにする。

しかし、これではIPアドレス:ドメイン=1:1でしか運用できません
IPアドレス:ドメイン=1:nとして、1つのIPアドレスに対して、複数のドメインを運用できるようにします。


マルチドメイン

どうせなら、さくらVPSサーバで複数のドメインを運用してみます。
先ほどのweb-web.workと新たに取得したtea-m.workの二つのドメインを運用します。
上手く行けば、お友達のドメインとWEBサイトを運用しても良いですね(笑)!

一つのIPアドレスで複数のドメインを運用

IPアドレスは一個しかありません。複数のドメインを運用できるようにサーバを設定しなければいけません。
var/www/htmlの下に、mkdirコマンドで、var/www/html/web-web.work/public_html/とvar/www/html/web-web.work/public_html/デイレクトリを作成し、所有者や権限を設定し、適当なHTMLファイルをアップロードしておく。

Apache Virtualhostの設定

Apache2.4.6は、httpd.confを参照すると、Include conf.modules.d/*.confとあるように、 conf.modules.d/デイレクトリ内の*.confファイルを読み込むようになっている。
conf.modules.d/に移動し、touchコマンドでvirtual.confファイルを作成し、viで編集。

virtual.confファイルを以下のように編集。

virtual.conf編集を確認するだけであれば、catコマンドを使う。

バーチャルホストを許可する設定にhttpd.confを編集
紛らわしいが、httpd.confは、/etc/httpd/conf/に有る。

httpd.conf内の、Listen 80の下行に、追記。

Apacheを再起動。

さくらVPSコントロールパネルで設定

さくらのVPSコントロールパネルで二つのドメインそれぞれに設定が必要です。
ネームサーバ登録

ドメイン名にドメインを入力

サーバのIPアドレスを入力

ゾーンがどのようになっているのか確認

お名前COMで設定

お名前COMで、ドメインtea-m.workに対して、DNS環境設定DNSレコードを利用する で以下のように設定。
続けて、お名前COMで、ネームサーバの変更→ 他のネームサーバーを利用で、二つのドメインに対して、プライマリサーバ ns1.dns.ne.jp セカンダリサーバ ns1.dns.ne.jp と設定が必須

マルチドメインでのWEBサイト公開を確認

ブラウザでhttp://web-web.work/を確認!

ブラウザでhttp://tea-m.work/を確認!

さくらVPSでマルチドメインを確認!

無料SSL証明書Let’s Encryptの導入

問い合わせパネルやショッピングカードのみならず、サイト全体を常時SSL化することがここ一年ほどの間に標準になってきています。 SSL証明書も当然導入します。
ApacheがSSLを使えるようにするためには、mod_sslをまずはインストールします。

httpdを再起動

ファイアウオールでhttps通信が許可されているのか確認

Pythonをインストール

流行りのPythonのインストールが必要なよう。

Let’s Encryptをインストール

certbotというLet’s Encryptのコマンドで証明書をインストール。
マルチドメインでの運用を行うので、複数のドメインに対して行う。-d web-web.work -d tea-m.workの部分。

途中気を付けないといけない点。

 

httpdを再起動。

ブラウザでhttp://web-web.work/を入力すると、https://web-web.work/にリダイレクトされ、SSL化していることを確認!

ブラウザでhttp://tea-m.work/を入力すると、https://tea-m.work/にリダイレクトされ、SSL化していることを確認!

さくらVPSでTWO ドメインともSSL化を確認!



CRONで証明書の更新を自動化

これでSSL証明書の更新を3か月毎に勝手に更新してくれます!