はじめに
AWSのEC2にてインスタンス(サーバー)を建てた際にOSの基本設定をしたので、その手順を記録します。ほぼ確実にサーバー建てるたびに設定すると思うので、
ターミナルでコマンド手打ちするのがめんどくせー!と思ったらコピペでがんがん使って下さい。
(インスタンス再作成しまくってたとき手打ちするのがだるすぎた)
1.時間の変更 2.言語変更 3.コマンド履歴の表示変更 おまけ.複数バーチャルホストの設定
以上の4つを行います。
開発環境
Amazon Linux 2 AMI (HVM), SSD Volume Type (AWSアカウント登録済み)
どのサーバーでも設定方法はそれほど変わらないと思いますが、設定ファイルやディレクトリがなければ、ググって確認してみてください。
1.時間の変更
サーバー作成後、作成したキーペアに権限を与えてssh接続します。
//自分に読込・書込みの権限を与える
chmod 600 ~/Desktop/[キーの名前]
ssh -i ~/Desktop/作成したキーペア名 ec2-user@インスタンスと紐付けたElastic IP //Elastic IPはRoute 53で紐付けた名前でも可
一般ユーザーでは権限を持たないので、(viコマンドなどが使えない)
全権限を持つrootユーザーに変更後、タイムゾーンを変更します。
//全権限を与える
sudo su
vi /etc/sysconfig/clock
//書き換え前
ZONE="UTC" //協定世界時間
//書き換え後
ZONE="Asia/Tokyo" //日本時間
シンポリックリンク(ショートカット)の作成をします。
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
//紐付いてるか確認
ls -l /etc/localtime
localtime->~Asia/Tokyoなら成功です。
2.言語変更
vi /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"に変更。
こちらだけでは、サーバー復元時に自動でen_US.UTF-8に戻ってしまうので下記も変更。
vi /etc/cloud/cloud.cfg
//最後の行に追加
locale: ja_JP.UTF-8
//catコマンドで確認
cat /etc/cloud/cloud.cfg
locale: ja_JP.UTF-8が追加されていたら成功です。
3.コマンド履歴の表示変更
vi /etc/bashrc
//最後の行に2行追加
HISTTIMEFORMAT='%F %T ' //コマンド操作日時表示
HISTFILESSIZE=2000 . //履歴の上限2000
//追加した2行の確認
tail -2 /etc/bashrc
1~3終了後再起動します。
reboot
1~2分後、sshで再接続。設定がうまくできてるか最終確認します。
date //日時表示が日本時間・日本語化
history //表示数・コマンド操作日時の表示
以上がうまく出来ていれば、OSの基本設定完了です!
おまけ.複数バーチャルホストの設定
今回設定したのはApacheサーバーです。
使用するサーバーによって設定ファイルは異なるので注意しましょう。
Apacheサーバーの大本となる設定ファイルは
/etc/httpd/conf/httpd.conf
なので
tailコマンドで最後の5行だけ確認します。
tails -5 /etc/httpd/conf/httpd.conf
//最後の行
InclodeOptional conf.d/*.conf //conf.d/*.confを取り込んでるのがわかる
//conf.d/*.confより上のディレクトリを確認
grep "^ServerRoot" /etc/httpd/conf/httd.conf
ServerRoot "/etc/httpd" // "/etc/httpd"直下にあることがわかる
/etc/httpd/conf.d/*.conf
で設定したらいいとわかったので、
サブドメインを作り、バーチャルホストを複数作成します。
今回作成したのが下記になります。
//PHPファイルのバーチャルホスト作成
<VirtualHost *:80>
ServerName attendance.www.startdns.tokyo //Route53で設定したドメイン名
ServerAdmin webmaster@localhost
DocumentRoot /var/www/main_attendance/public //画面表示するパスを指定
//ディレクトリにアクセス許可を与える
<Directory /var/www/main_attendance>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
//HTMLファイルのバーチャルホスト作成 2つ目以降の作成方法も同様
<VirtualHost *:80>
ServerName introduction.startdns.tokyo //Route53で設定したドメイン名
DocumentRoot /var/www/introduction //画面表示するパスを指定
ErrorLog "logs/introduction-error.log" //エラーログの出力
CustomLog "logs/introduction-access.log" combined //アクセスログの出力
//ディレクトリにアクセス許可を与える
<Directory /var/www/introduction>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
2つ目以降も同様に作成すれば、サブドメインをいくつでも作成できます。
アクセスが集中しすぎるとサーバーダウンするので、
オートスケーリングを設定するか、別でサーバーを作成しましょう。
参考文献・参考記事
・AWSをはじめよう ハンズオン形式。本はハンズオン形式のものをおすすめする。
・バーチャルホストの例 - Apache HTTP サーバ バージョン 2.2 バーチャルホストに関する様々な作成方法が書いてある。