Amazon Linux2で環境構築

Amazon Linux2でLAMP(Linux, Apache2.4, MySQL5.7, PHP7.2)の環境構築をしていきます.

PHP7.2

インストール

yumを用いてインストールしようとすると,PHP5系をインストールしてしまうので「amazon-linux-extras」コマンドを使います.

$ amazon-linux-extras list

というコマンドを入力すると,インストールできるソフトウェアパッケージが表示されるので,PHP7.2をインストールします.

$ amazon-linux-extras php7.2

PHPに関しては一旦置いときます.

MySQL5.7

インストール

次に,MySQLの環境構築を行なっていきます.

Amazon Linux2にはデフォルトでMariaDBというMySQLの派生版のようなものがインストールされています. MySQLはインストールされておらず,MySQL公式のyumリポジトリを追加してインストールします. このリポジトリはMySQL8.0のリポジトリですが,MySQL5.7もここからインストールできます.

$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

#mysql8.0リポジトリの無効化
$ sudo yum-config-manager --disable mysql80-community

#mysql5.7リポジトリの有効化
$ sudo yum-config-manager --enable mysql57-community

$ sudo yum install mysql-community-server

バージョンの確認をしましょう.

$ mysql --version

設定

まずはrootアカウントのパスワードを確認します.

$ cat /var/log/mysqld.log | grep password

実際にmysqlを起動しましょう.

$ systemctl start mysqld

$ systemctl enable mysqld

$ mysql -u root -p
"password"

とは言っても初期パスワードのままだと入力が面倒なのでパスワードを変更します.

$ mysql_secure_installation

Enter password for user root: "old_password"
New password: "new_password"
Re-enter new password: "new_password"
Change the password for root ? ((Press y|Y for Yes, any other key for No) : No
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Yes
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Yes
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Yes
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Yes

次に文字コードを変更します.

#mysqlにログイン
$ mysql -u root -p
Enter password:

#文字コードの確認
mysql> show global variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

# MySQL終了
mysql> exit

このままだと文字化けしてしまうのでutf8mb4にします

# 文字コードの変更([mysqld]と[client]セクションと設定を追加)
$ sudo vi /etc/my.cnf
[mysqld] (既に記述されている場合は省略)
character_set_server=utf8mb4

[client]
default-character-set=utf8mb4

# mysql再起動
$ sudo systemctl restart mysqld.service

$ mysql -u root -p
Enter password:

mysql> show global variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> exit

これでMySQLの設定は終了です!

Apache2.4

インストール

Apache2.4をインストールしましょう.

$ sudo yum install httpd

# 起動
$ sudo systemctl start httpd

# 有効化
$ sudo systemctl enable httpd

テスト

全てのソフトウェアのインストールが完了しました! では,Apacheのルートディレクトリに以下のような内容を含んだindex.phpを作成しましょう.

<?php phpinfo() ?>

PHPのバージョン情報などが出てきたら成功です!!