AWSにLAMP環境を構築する

はじめに

Amazon Linux 2にLAMP環境を作る方法をまとめました。
今回ご紹介するのはソフトウェアのインストール方法となります。
AWSへインスタンスを作る方法は[AWSのEC2にインスタンスを作成する]をご参照ください。
Webアプリ開発環境をサッと作りたい方は参考にしてみてください。

環境情報

ソフトウェアのバージョンは、AmazonLinux2のデフォルトバージョンを使用します。

# 大項目 小項目 説明
1 Amazon EC2 OS Amazon Linux 2
2 ソフトウェア PHP バージョン:5.4
3 MySQL MariaDB 5.5系
4 Apache バージョン:2.4
5 mod_ssl
6 Postfix
7 PHPモジュール php-common
8 php-mcrypt
9 php-process
10 php-tidy
11 php-pdo
12 php-cli
13 php-mbstring
14 php-bcmath
15 php-php-gettext
16 php-mysql
17 php-xml
18 php-gd
19 その他 phpMyAdmin バージョン:4.0系

構築手順

0. 事前準備

  • 0-1.rootアカウントで作業するので、下記コマンドでユーザを変更する
    $ sudo su -

    プロンプトのアカウント情報が、ログインユーザからrootに変わっていることを確認する
    または、下記コマンドでrootになっていることを確認する

    $ whoami
  • 0-2. インストールされているパッケージのバージョンを最新のものにする
    $ yum update

1.PHPインストール

  • 1-1.phpをインストールする

    # インストールコマンド
    $ yum install php
    
    # インストール完了したら、バージョン確認
    $ php -v
    
    # 正常にインストールできていれば、下記が表示される
    PHP 5.4.16 (cli) (built: Oct 31 2019 18:34:05)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
  • 1-2.インストールされているパッケージを確認

    $ yum list php*
    
    # php-cli と php-common はデフォルトでインストール済み
    Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
    Installed Packages
    php.x86_64                5.4.16-46.amzn2.0.2   @amzn2-core
    php-cli.x86_64            5.4.16-46.amzn2.0.2   @amzn2-core
    php-common.x86_64         5.4.16-46.amzn2.0.2   @amzn2-core
    Available Packages
    php-bcmath.x86_64         5.4.16-46.amzn2.0.2   amzn2-core
    php-dba.x86_64            5.4.16-46.amzn2.0.2   amzn2-core
    php-devel.x86_64          5.4.16-46.amzn2.0.2   amzn2-core
    php-embedded.x86_64       5.4.16-46.amzn2.0.2   amzn2-core
    php-enchant.x86_64        5.4.16-46.amzn2.0.2   amzn2-core
    php-fpm.x86_64            5.4.16-46.amzn2.0.2   amzn2-core
    php-gd.x86_64             5.4.16-46.amzn2.0.2   amzn2-core
    php-intl.x86_64           5.4.16-46.amzn2.0.2   amzn2-core
    php-ldap.x86_64           5.4.16-46.amzn2.0.2   amzn2-core
    php-mbstring.x86_64       5.4.16-46.amzn2.0.2   amzn2-core
    php-mysql.x86_64          5.4.16-43.amzn2       amzn2-core
    php-mysqlnd.x86_64        5.4.16-46.amzn2.0.2   amzn2-core
    php-odbc.x86_64           5.4.16-46.amzn2.0.2   amzn2-core
    php-pdo.x86_64            5.4.16-46.amzn2.0.2   amzn2-core
    php-pear.noarch           1:1.10.7-3.amzn2.0.1  amzn2-core
    php-pecl-memcache.x86_64  3.0.8-4.amzn2         amzn2-core
    php-pgsql.x86_64          5.4.16-46.amzn2.0.2   amzn2-core
    php-process.x86_64        5.4.16-46.amzn2.0.2   amzn2-core
    php-pspell.x86_64         5.4.16-46.amzn2.0.2   amzn2-core
    php-recode.x86_64         5.4.16-46.amzn2.0.2   amzn2-core
    php-snmp.x86_64           5.4.16-46.amzn2.0.2   amzn2-core
    php-soap.x86_64           5.4.16-46.amzn2.0.2   amzn2-core
    php-xml.x86_64            5.4.16-46.amzn2.0.2   amzn2-core
    php-xmlrpc.x86_64         5.4.16-46.amzn2.0.2   amzn2-core
  • 1-3.php-mcrypt,php-tidy,php-php-gettext以外のパッケージはインストール済みのため、下記コマンドでモジュールをインストール

    $ yum install php-process php-pdo php-mbstring php-bcmath php-mysql php-xml php-gd
    
    # インストール確認
    $ yum list installed php*
    
    Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
    Installed Packages
    php.x86_64          5.4.16-46.amzn2.0.2  @amzn2-core
    php-bcmath.x86_64   5.4.16-46.amzn2.0.2  @amzn2-core
    php-cli.x86_64      5.4.16-46.amzn2.0.2  @amzn2-core
    php-common.x86_64   5.4.16-46.amzn2.0.2  @amzn2-core
    php-gd.x86_64       5.4.16-46.amzn2.0.2  @amzn2-core
    php-mbstring.x86_64 5.4.16-46.amzn2.0.2  @amzn2-core
    php-mysqlnd.x86_64  5.4.16-46.amzn2.0.2  @amzn2-core
    php-pdo.x86_64      5.4.16-46.amzn2.0.2  @amzn2-core
    php-process.x86_64  5.4.16-46.amzn2.0.2  @amzn2-core
    php-xml.x86_64      5.4.16-46.amzn2.0.2  @amzn2-core
  • 1-4.php-mcrypt,php-tidy,php-php-gettextをインストールするために、EPELリポジトリを追加する

    $ amazon-linux-extras install epel
    
    # リポジトリ追加後、必要パッケージがインストールされたことを確認する
    $ yum list php*
  • 1-5.php-mcrypt,php-tidy,php-php-gettextをインストール

    $ yum install php-mcrypt php-tidy php-php-gettext
    
    # インストール確認
    $ yum list installed php*
    
    Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
    192 packages excluded due to repository priority protections
    Installed Packages
    php.x86_64             5.4.16-46.amzn2.0.2  @amzn2-core
    php-bcmath.x86_64      5.4.16-46.amzn2.0.2  @amzn2-core
    php-cli.x86_64         5.4.16-46.amzn2.0.2  @amzn2-core
    php-common.x86_64      5.4.16-46.amzn2.0.2  @amzn2-core
    php-gd.x86_64          5.4.16-46.amzn2.0.2  @amzn2-core
    php-mbstring.x86_64    5.4.16-46.amzn2.0.2  @amzn2-core
    php-mcrypt.x86_64      5.4.16-9.el7         @epel
    php-mysqlnd.x86_64     5.4.16-46.amzn2.0.2  @amzn2-core
    php-pdo.x86_64         5.4.16-46.amzn2.0.2  @amzn2-core
    php-php-gettext.noarch 1.0.12-1.el7         @epel
    php-process.x86_64     5.4.16-46.amzn2.0.2  @amzn2-core
    php-tidy.x86_64        5.4.16-9.el7         @epel
    php-xml.x86_64         5.4.16-46.amzn2.0.2  @amzn2-core

2.Apacheインストール

  • 2-1.Apacheはデフォルトでインストールされているため、インストール作業は不要

    $ httpd -v
    Server version: Apache/2.4.43 ()
    Server built:   May  8 2020 17:02:41
    
    # バージョンが表示されなければ、未インストールのため、下記コマンドを実行
    $ yum install httpd
  • 2-2.mod_sslをインストール

    $ yum install mod_ssl
    
    # インストール確認
    $ rpm -aq | grep mod_ssl
    mod_ssl-2.4.43-1.amzn2.x86_64
  • 2-3.Apacheの起動と自動起動設定

    # 起動
    $ systemctl start httpd
    
    # 起動確認
    $ systemctl status httpd
    # active(running)が表示されていれば、起動できている
    
    #自動起動
    $ systemctl enable httpd
    
    #自動起動確認
    $ systemctl is-enabled httpd
    enable #disabledは自動起動がオフ状態
  • 2-4.ブラウザからhttp://サーバのIPでApacheの画面が表示されることを確認する
    注)インスタンスのセキュリティ設定でHTTP通信を許可していない場合は、表示されないので注意

3.MySQLインストール

  • 3-1.MySQLをインストール

    $ yum install mariadb-server
    
    # インストール確認
    $ mysql --version
    mysql  Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1
  • 3-2.MySQLの起動と自動起動の設定

    # 起動
    $ systemctl start mariadb
    
    # 起動確認
    $ systemctl status mariadb
    # active(running)が表示されていれば、起動できている
    
    #自動起動
    $ systemctl enable mariadb
    
    #自動起動確認
    $ systemctl is-enabled mariadb
    enable #disabledは自動起動がオフ状態
  • 3-3.MySQLの初期設定

    #パスワードの設定等を行う
    $ mysql_secure_installation
  • 3-4.phpMyAdminのインストール
    phpMyAdminの4.0系をダウンロードし、[/var/www/phpmyadmin]配下に配置
    注)php5.4を使用する場合、phpMyAdminの4.0系を使用する必要がある

  • 3-5.設定ファイルの作成

    $ vi /etc/httpd/conf.d/phpmyadmin.conf
    
    # confファイルに下記を書き込む
    Alias /phpMyAdmin "/var/www/phpmyadmin"
    
    Order allow,deny
    Allow from all
    
    # Apacheを再起動
    $ systemctl restart httpd
  • 3-6.ブラウザからhttp://サーバのIP/phpMyAdminでphpMyAdminへアクセスできるか確認する
    ログインアカウントは、(3-2)で設定したアカウントとパスワードでアクセスする

4.Postfixインストール

  • 4-1.Postfixをインストールする

    # デフォルトでインストールされているので、バージョン確認
    $ postconf | grep mail_version
    mail_version = 2.10.1
    milter_macro_v = $mail_name $mail_version
  • 4-2.Postfixの起動と自動起動の設定
    ※デフォルトで起動済み、自動起動有効状態

    # 起動
    $ systemctl start postfix
    
    # 起動確認
    $ systemctl status postfix
    # active(running)が表示されていれば、起動できている
    
    #自動起動
    $ systemctl enable postfix
    
    #自動起動確認
    $ systemctl is-enabled postfix
    enable #disabledは自動起動がオフ状態

さいごに

これでLAMP環境ができました。
簡単に作れるのでぜひ、やってみてください。