この記事は個人ブログと同じ内容です
はじめに
本記事では、EC2上で Nginx と PHP、および phpMyAdmin をインストールし、MySQL データベースとの接続を行う手順を紹介します。実際にコマンドを実行しながら、各設定の意味や注意点も含めて解説します。
環境
yumのアップデート
はじめに、Linuxのパッケージ管理ツール yum を使って、システムのアップデートを行います。
$ sudo yum -y update
1. Nginxのインストール
Nginxをインストールします。
$ sudo yum -y install nginx
次に、Nginxのバージョンを確認します。
$ nginx -V nginx version: nginx/1.24.0
Nginxを自動起動する設定を行い、インスタンス再起動時にNginxが自動で起動するようにします。
$ sudo systemctl start nginx.service $ sudo systemctl enable nginx.service
2. PHPのインストール
Amazon Linuxでは amazon-linux-extras が利用できないため、yum を使用してPHPをインストールします。2024年9月現在では、PHP 8.3がインストールされます。
$ sudo yum install php php-fpm php-mysqli php-mbstring php-pear
PHPモジュールの説明
PHPのバージョンを確認します。
$ php -v
PHP 8.3.10 (cli) (built: Jul 30 2024 13:44:37) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.10, Copyright (c) Zend Technologies
with Zend OPcache v8.3.10, Copyright (c), by Zend Technologies
自動起動の設定も行います。
$ sudo systemctl start php-fpm.service $ sudo systemctl enable php-fpm.service
PHPとNginxの紐付け
PHPとNginxを紐付けるために、www.conf という php-fpm の設定ファイルを編集します。
$ cd /etc/php-fpm.d/ $ sudo vi www.conf
以下の部分で、ユーザーとグループを apache から nginx に変更します。
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. - user = apache + user = nginx - group = apache + group = nginx
変更後、php-fpm を再起動します。
$ sudo systemctl restart php-fpm.service
PHPの接続確認
PHPの接続確認を行います。phpinfo() を表示させるために、NginxのドキュメントルートにPHPファイルを作成します。
$ sudo su $ echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
ブラウザで パブリックDNS/index.php にアクセスし、phpinfo() が表示されれば接続確認完了です。
3. phpMyAdminのインストール
次に、phpMyAdminをインストールします。まず、/usr/share/nginx/html に phpMyAdmin ディレクトリを作成し、その中にファイルを展開します。
$ cd /usr/share/nginx/html/ $ sudo mkdir phpMyAdmin $ cd phpMyAdmin $ sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz $ sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz --strip-components 1
ブラウザで パブリックDNS/phpMyAdmin にアクセスします。エラーが表示される場合があります。
パーミッションエラー修正
以下のようなエラーが出た場合:
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser. session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)
/var/lib/php/session の権限が足りていないため、権限を修正します。
$ sudo chown nginx. /var/lib/php/session
phpMyAdminでDBの接続先情報を設定
次に、config.sample.inc.php を元に、DB接続情報を設定します。
$ cd /usr/share/nginx/html/phpMyAdmin $ sudo cp -p config.sample.inc.php config.inc.php $ sudo vi config.inc.php
DBのホストを自分のDBエンドポイントに修正します。
$cfg['Servers'][$i]['host'] = 'localhost';
最後に、ブラウザで再度 パブリックDNS/phpMyAdmin にアクセスし、ユーザー名とパスワードを入力してログインできれば完了です。

終わりに
今回の記事では、EC2上でNginxとPHP、さらにphpMyAdminを利用してデータベースを管理する環境構築の基本手順をまとめました。正直なところ、この記事を書くにあたり、ネット上にある多くの情報が古かったり、バージョンが異なっていたりと、たくさんの調査と試行錯誤を繰り返しました。最新の環境に対応した情報がなかなか見つからず、スムーズに進められないこともありましたが、少しずつ組み上げていくことで理解が深まりました。この記事が、同じように新しいバージョンに対応した情報を探している方々の助けになれば幸いです。