Ubuntu
さくらVPS
サーバー構築

Ubuntu 16.04 でWebサーバー構築するまでのフローとさくらVPSの罠

More than 1 year has passed since last update.

OSインストールするたびにコマンドとか調べるのは非効率なのでまとめておく。

構築する環境

  1. 鍵認証でSSHできるようにする
  2. Firewallの設定(UFW)
  3. Apache でバーチャルホスト
  4. PHPなどもいれて WordpressとMediaWikiを使えるように
  5. MySQL

鍵認証

  1. scp で公開鍵をサーバーの ~/.ssh/authorized_keys にコピー
  2. クライアント側でパーミッションを 700(rwx全部可)に、サーバー側で600(x以外可)にする。
  3. パスワード認証の禁止をする(/etc/ssh/sshd_config でPasswordAuthentication no に)
  4. $ sudo /etc/init.d/sshd restart

Firewall の設定

  1. $ sudo ufw allow ssh
  2. $ sudo ufw enable
  3. $ sudo ufw allow http && sudo ufw allow https

Apache

$ sudo apt update && sudo apt install -y apache2 libapache2-mod-php

PHP

$ sudo apt install -y php

MySQL

インストール

$ sudo apt install -y mysql-server php-mysql

rootのパスワードを入力しろと言われるので設定する

MySQL dump から復元

dumpファイルを復元したい場合は、まず復元するための空のDBを作成
$ mysql -u root -p
でログインして
> create database DB_NAME;
一旦mysql抜ける
> exit
そして次のコマンドでdumpファイルから復元
$ mysql -u root -p DB_NAME < DUMP_FILE.dump

よし、Webサーバーにアクセスしよう

ひととおり設定し終えたのでブラウザからサーバーにアクセスしてみようとしたところ、なんどやっても Connection refused. になってしまいます。。。ufw は activeなのに。。。なにがいけないんだ。。。

結論としては、さくらVPSのデフォルトのファイアーウォールが設定されていて、UFWなどでどんなにファイアーウォールの設定をしても無駄だったということです。そのにっくき設定ファイルは /etc/iptables/iptables.rules にあります。したがってこれをぶっとばせばUFWの設定が反映される。

$ sudo mv /etc/iptables/iptables.rules /var/tmp
で、reboot.

追記

さくらVPSでは新たにスタートアップスクリプトというサービスを提供してくれました。その中にOSインストール時にデフォルトのファイアーウォールを無効化してUFWを有効化してくれるスクリプトがあったので、それを使うのが良さそうです。