EC2インスタンスを作成したときにをNginxをインストールしようとしたら
インストール方法が思ってたのと違ったというお話になります。
3行で
- Amazon Linux 2(AL2)だったからyumでNginxが提供されてなかった
- Extrasリポジトリで提供されるNginxをインストールした
- Nginxを起動しブラウザ表示できた
Nginxをインストールする
linuxならyumでインストールだよなって事でインストールを試みる
$ sudo yum update
$ sudo yum install nginx
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
パッケージ nginx は利用できません。
エラー: 何もしません
nginx is available in Amazon Linux Extra topic "nginx1.12"
To use, run
# sudo amazon-linux-extras install nginx1.12
Learn more at
https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
なんだ…と…!?
どうやら、AL2だとyum向けパッケージが提供されていないようです。
ということでエラーメッセージにもある通りExtrasレポジトリで提供されるNginxをインストールしましょう
$ sudo amazon-linux-extras install nginx1.12
完了しました!
0 ansible2 available [ =2.4.2 ]
1 emacs available [ =25.3 ]
2 memcached1.5 available [ =1.5.1 ]
3 nginx1.12=latest enabled [ =1.12.2 ]
4 postgresql9.6 available [ =9.6.6 =9.6.8 ]
5 postgresql10 available [ =10 ]
6 python3 available [ =3.6.2 ]
7 redis4.0 available [ =4.0.5 =4.0.10 ]
8 R3.4 available [ =3.4.3 ]
9 rust1 available \
[ =1.22.1 =1.26.0 =1.26.1 =1.27.2 ]
10 vim available [ =8.0 ]
11 golang1.9 available [ =1.9.2 ]
12 ruby2.4 available [ =2.4.2 =2.4.4 ]
13 nano available [ =2.9.1 ]
14 php7.2 available [ =7.2.0 =7.2.4 =7.2.5 ]
15 lamp-mariadb10.2-php7.2 available \
[ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 ]
16 libreoffice available [ =5.0.6.2_15 ]
17 gimp available [ =2.8.22 ]
18 docker=latest enabled [ =17.12.1 =18.03.1 ]
19 mate-desktop1.x available [ =1.19.0 =1.20.0 ]
20 GraphicsMagick1.3 available [ =1.3.29 ]
21 tomcat8.5 available [ =8.5.31 ]
nginx1.12がenabledになってますね。
(dockerは入れたつもりがないですがenabledとなってますけどまぁ良いでしょう)
バージョンの確認も問題なくできますね。
$ nginx -v
nginx version: nginx/1.12.2
Nginxの起動確認
Nginxを起動しデフォルトページをブラウザで確認します
Nginxを起動
Nginxを起動しましょう。念の為に起動確認もします。
# 起動前確認
$ ps aux | grep nginx
ec2-user 32469 0.0 0.0 119484 980 pts/0 S+ 02:52 0:00 grep --color=auto nginx
# 起動
$ sudo service nginx start
Redirecting to /bin/systemctl start nginx.service
# 起動を確認
$ ps aux | grep nginx
root 32491 0.0 0.2 123740 2184 ? Ss 02:52 0:00 nginx: master process /usr/sbin/nginx
nginx 32492 0.0 0.3 124196 4000 ? S 02:52 0:00 nginx: worker process
ec2-user 32494 0.0 0.0 119484 936 pts/0 S+ 02:53 0:00 grep --color=auto nginx
起動後にnginxが表示されてるのでokですね。
Nginxのデフォルトページをブラウザで確認
AWSのEC2コンソール > インスタンスを開いて起動中のインスタンスの「IPv4 パブリック IP」をコピーします。
ブラウザからインスタンスのパブリックIPにアクセスして下記のような画面が表示されれば確認完了
http://自分のインスタンスパブリックIP
おまけ
インスタンス立ち上げるたびにNginxを起動するのは面倒なので自動起動させると楽です
$ sudo chkconfig nginx on