OSインストールするたびにコマンドとか調べるのは非効率なのでまとめておく。
構築する環境
- 鍵認証でSSHできるようにする
- Firewallの設定(UFW)
- Apache でバーチャルホスト
- PHPなどもいれて WordpressとMediaWikiを使えるように
- MySQL
鍵認証
- scp で公開鍵をサーバーの ~/.ssh/authorized_keys にコピー
- クライアント側でパーミッションを 700(rwx全部可)に、サーバー側で600(x以外可)にする。
- パスワード認証の禁止をする(/etc/ssh/sshd_config でPasswordAuthentication no に)
$ sudo /etc/init.d/sshd restart
Firewall の設定
$ sudo ufw allow ssh
$ sudo ufw enable
$ 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を有効化してくれるスクリプトがあったので、それを使うのが良さそうです。