AWS EC2 RDS LAMPの開発環境構築


LAMP環境の作成

・前提条件

  起動したEC2インスタンスにSSH接続できていること

・ルートユーザーの作成とパスワードの設定

#ルートへログイン
[ec2-user@ip-***-***-***-*** ~]$ sudo -i
# パスワードの設定
[root@ip-***-***-***-*** ~]$ passwd
 Changing password for user root.
 New password: (パスワード入力)
 Retype new password: (もう一度入力) 
 passwd: all authentication tokens updated successfully.
[root@ip-***-***-***-*** ~]$ 

 successfullyが出力されたらパスワードが正しく変更されています。

・apacheのインストール

 インストール

[root@ip-***-***-***-*** ~]$ yum install -y httpd24

 自動起動設定

[root@ip-***-***-***-*** ~]$ chkconfig httpd on

 日本語化とタイムゾーン[東京]の設定

# 言語設定を日本語に変更
[root@ip-***-***-***-*** ~]$ vim /etc/sysconfig/i18n
 LANG=ja_JP.UTF-8
# タイムゾーンを東京に変更
[root@ip-***-***-***-*** ~]$ echo -e 'ZONE="Asia/Tokyo"\nUTC=false' | sudo tee /etc/sysconfig/clock
[root@ip-***-***-***-*** ~]$ cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 結果確認
[root@ip-***-***-***-*** ~]$ date

・PHPのインストール

 インストール

[root@ip-***-***-***-*** ~]$ yum install -y php73
# バージョン確認
[root@ip-***-***-***-*** ~]$ php -v
   PHP 7.3.4 (cli) (built: Apr 15 2019 23:45:12) ( NTS )
   Copyright (c) 1997-2018 The PHP Group
   Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
# PDOのインストール
[root@ip-***-***-***-*** ~]$  yum install -y php73-pdo
[root@ip-***-***-***-*** ~]$  yum install -y php73-mysqlnd

 タイムゾーン[東京]の設定

[root@ip-***-***-***-*** ~]$ vim /etc/php.ini
# php.ini は内容量が非常に多いため、
# /date.timezone と入力して検索します
   [Date]
   ; Defines the default timezone used by the date functions
   ; http://php.net/date.timezone
   ;date.timezone 
# コメント化されている[;date.timezone]をdate.timezone = 'Asia/Tokyo'に変更します
   [Date]
   ; Defines the default timezone used by the date functions
   ; http://php.net/date.timezone
   date.timezone = 'Asia/Tokyo'

 .htaccessの有効化

[root@ip-***-***-***-*** ~]$ vim -r /etc/httpd/conf/httpd.conf
# /www\/html と入力して検索します
   DocumentRoot "/var/www/html"
   <Directory "/var/www/html">
       AllowOverride None
# AllowOverride None を AllowOverride Allに変更します
   DocumentRoot "/var/www/html"
   <Directory "/var/www/html">
       AllowOverride All

・MySQLのインストール

 インストール

[root@ip-***-***-***-*** ~]$ yum install mysql
# DBサーバーに接続
[root@ip-***-***-***-*** ~]$ mysql -h <RDSインスタンスのエンドポイント> -u username -p
...下記省略...

・phpMyAdminをインストール

 インストール

[root@ip-***-***-***-*** ~]$ yum --enablerepo=epel install -y phpMyAdmin

 接続設定[DB接続]

[root@ip-***-***-***-*** ~]$ vi etc/phpMyAdmin/config.inc.php
# 設定の確認
$cfg['Servers'][$i]['host'] = 'localhost';
# ホストの指定
$cfg['Servers'][$i]['host'] = 'DBサーバーのIP/エンドポイント';

 接続設定[接続許可]

# 接続可能なipアドレスを指定します
# 今回は誰でもアクセスできるように指定しています
[root@ip-***-***-***-*** ~]$ vim /etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
# Require ip 127.0.0.1を#でコメント化し
# Require all grantedを追記します
     <RequireAny>
       #Require ip 127.0.0.1
       Require all granted
       Require ip ::1
     </RequireAny>

 フォルダの参照権限を追加

# 読み取りと実行を許可
[root@ip-***-***-***-*** ~]$ chmod o+xr /var/www/html

・設定の確認

 phpのデフォルトディレクトリの確認

[root@ip-***-***-***-*** ~]$ ls -ld --context /var/www/html
   drwxrw-r-x ec2-user root ?                                /var/www/html

 SELinuxの状態確認

[root@ip-***-***-***-*** ~]$ getenforce
Disabled

 Enforcingと表示される場合、SELinuxは有効になっている状態です
 その場合は以下の設定を行います。


[root@ip-***-***-***-*** ~]$ vi /etc/selinux/config
# enforcing から disabledに変更します
SELINUX=disabled

 AWSのEC2コンソールからサーバーを再起動し、再確認してください。

[root@ip-***-***-***-*** ~]$ getenforce
Disabled

 Disabledと表示されれば、SELinuxは無効に変更されています。

・設定適用のため、apache再起動

 再起動コマンドを実行

[root@ip-***-***-***-*** ~]$ service httpd start
   Starting httpd: AH00557: httpd: apr_sockaddr_info_get() failed for ip-XXX-XXX-XXX-XXX
   AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
                                                           [  OK  ]

 http://{パブリックIP}/phpMyAdmin/
 にアクセスし、テストページが表示されることを確認してください。