[初心者向け]Amazon Linux 2にLAMP環境を構築してみる
Bonjour、AWS事業本部のニシヤマです。
以前、VPCの作成からAmazon Linux 2(64 ビット x86)のEC2インスタンスを起動したブログを書きました。今回はその続きとしてAmazon Linux 2にLAMP環境を構築してみたいと思います。
はじめに
今回はAmazon Linux 2で起動したEC2内部の作業になります。そのため、前回の手順で作成した以下の構成が起動されている前提で進めます。
LAMP環境の構築手順は以下のチュートリアルを参考に進めます。
チュートリアル: Amazon Linux 2 に LAMP ウェブサーバーをインストールする
また、本ブログで御紹介する手順を利用する場合は別途セキュリティや可用性など検討してください。
LAMP環境構築
今回LAMP環境の構築となりますが、Amazon Linux 2の場合LAMPの「M」はMySQLではなくMariadbとなりますのでご注意ください。それでは始めて行きます。
パッケージの最新化
EC2にSSHにログインしてまずは全てのソフトウェアパッケージを最新化します。
$ sudo yum update -y
PHP、MariaDBクライアントのインストール
次にamazon-linux-extras
コマンドを利用してAmazon Linux Extras リポジトリからPHP7.2関連のパッケージと、MariaDBクライアントをインストールします。
$ sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
amazon-linux-extras
コマンドって何?という方は以下のブログをご参照ください。
Apache、MariaDBのインストール
次はApacheと、MariaDBをインストールします。これらのパッケージはAmazon Linux Extras リポジトリには無いので、yumコマンドでインストールします。
$ sudo yum install -y httpd mariadb-server
必要なパッケージのインストールが完了しました。
Apacheの起動、自動起動有効化
Apacheを起動し、自動起動も有効にします。
$ sudo systemctl start httpd $ sudo systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. $ sudo systemctl is-enabled httpd enabled
セキュリティグループの開放
セキュリティグループで80番(HTTP)ポートを開放します。
「EC2」メニューに移動します。左のメニューでセキュリティグループをクリックします。
フィルタでVPC ID等で絞り込んでEC2にアタッチされているセキュリティグループをクリックします。
インバウンドルールのタブでインバウンドルールの編集
をクリックして下さい。
インバウンドルールを編集画面でルールを追加
をクリックします。タイプにHTTP
、ソースは今回は接続元を制限するためマイIP
を選択します。自動で自分のPCのグローバルIPアドレスが入力されます。
あとは右下のルールを保存
をクリックして変更を保存します。
もし、インターネットに公開する場合は任意の場所
を選択してください。
Apacheの動作確認
それではブラウザで立ち上げたEC2のパブリック DNS名か、IPv4 パブリック IPでアクセスしてみて下さい。以下のページが表示されればApacheの動作確認は完了です。
PHPの動作確認
続いてドキュメントルート(/var/www/html)配下にphpinfo.phpを作成して下さい。
ブラウザでhttp://<EC2のパブリック DNS名またはIPv4 パブリック IP>/phpinfo.php
にアクセスして以下の様なページが表示されればPHPの動作確認も完了です。
動作確認が完了したらphpinfo.phpは削除しておきましょう。
$ rm /var/www/html/phpinfo.php
MariaDBの起動、自動起動有効化と初期設定
次にMariaDBを起動してmysql_secure_installation
コマンドを利用してrootアカウントのパスワード設定などセキュリティ向上のための設定を実施します。
$ sudo systemctl start mariadb $ sudo mysql_secure_installation 〜〜省略〜〜 Set root password? [Y/n] Y New password: <パスワードを入力> Re-enter new password: <同じパスワードを入力> Password updated successfully! 〜〜省略〜〜 Remove anonymous users? [Y/n] Y ... Success! 〜〜省略〜〜 Disallow root login remotely? [Y/n] Y ... Success! 〜〜省略〜〜 Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! 〜〜省略〜〜 Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
mysql_secure_installation
コマンドでは順番に対話式に以下の確認・設定をしています。
- rootアカウントのパスワードをセットするか
- 匿名ユーザーアカウントを削除するか
- リモートルートログインを無効にするか
- テストデータベースを削除するか
- 権限テーブルを再ロードし変更を保存するか
最後にMaridaDBの自動起動を有効化しておきます。
$ sudo systemctl enable mariadb Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. $ sudo systemctl is-enabled mariadb enabled
以上でLAMP環境の構築が完了しました!
補足
今回はHTTPのみアクセス可能な環境の構築手順を御紹介しましたが、HTTPSを利用する場合は以下のチュートリアルも参照してみてください。
チュートリアル: Amazon Linux に SSL/TLS を設定する
おわりに
いかがでしたでしょうか。 初歩的な内容となりますが前回、前々回のブログと合わせていただくことでVPCの作成からLAMP環境の構築の流れをご紹介することができました。 あとは構築したサーバにセットアップすることでPHPアプリケーションを動かすことが可能になります。この記事がどなたかのお役に立てば幸いです。