LoginSignup
3
1

More than 3 years have passed since last update.

AWS EC2 RDS LAMPの開発環境構築

Last updated at Posted at 2018-06-28

:sunny: LAMP環境の作成 :sunny:

・前提条件

  起動した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/
 にアクセスし、テストページが表示されることを確認してください。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1