この記事の大きな目的は次の2つです。
▼ ここでは次の2つをインストールしたい
- 現在最新のPHP8をインストール
- 現在最新のMySQL8をインストール
▼ それから前回までの記事
特にPHP8は実行速度が大幅改善されてます。
性能も最新の方がいいに決まってます
ただAWSでの環境構築に苦戦したので、
AWSでのPHP8+MySQL8の構築について記録しておきます。
このページの目次
まずはPHP8をインストール/環境構成
問題はどうやってインストールするか...
ここではamazon-linux-extrasを使います。
▼ 調べるとPHP8.0が使える模様
1 2 3 4 5 6 |
$ amazon-linux-extras |grep php 15 php7.2 available \ 17 lamp-mariadb10.2-php7.2 available \ 31 php7.3 available \ 42 php7.4 available [ =stable ] 51 php8.0 available [ =stable ] |
▼ PHP8.0をインストール
1 2 3 4 5 6 7 |
$ sudo amazon-linux-extras install php8.0 Installing php-pdo, php-fpm, php-mysqlnd, php-cli Loaded plugins: extras_suggestions, langpacks, priorities, update-motd Cleaning repos: amzn2-core amzn2extra-docker amzn2extra-kernel-5.10 : amzn2extra-php8.0 snapd-amzn2 ... |
▼ バージョン確認
1 2 3 4 |
$ php -v PHP 8.0.8 (cli) (built: Jul 7 2021 17:35:32) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.8, Copyright (c) Zend Technologies |
どうやらPHP8.0.8がインストールされたみたい
これでJITやら最新機能が使えるようになりました。
MySQL8(maria-db10.5)をインストール・構築
次にmariaDBをインストールします。
mariaDBとはMySQLと互換性のあるソフトです。
▼ mariaDBとMySQLのバージョン対応比較
MariaDBバージョン | MySQLバージョン |
---|---|
5.1 | 5.1 |
5.2 | 5.1 |
5.3 | 5.1 |
5.5 & 10.0 | 5.5 |
10.1 | 5.6 |
10.2~3 | 5.7 (*) |
10.4~6 | 8.0 (*) |
※ ほぼ互換性があると思ってOK
これもamazon-extras-linuxに入ってます。
でも色々事情があって手動インストールにしました。
mariadb/mariadb-serverをまとめてインストール
▼ こちらのコマンド
1 |
$ sudo yum install -y mariadb-server mariadb-client |
▼ mariadbのバージョン確認
1 2 3 4 5 6 |
$ yum list installed | grep maria MariaDB-client.x86_64 10.5.13-1.el7.centos @mariadb MariaDB-common.x86_64 10.5.13-1.el7.centos @mariadb MariaDB-compat.x86_64 10.5.13-1.el7.centos @mariadb MariaDB-server.x86_64 10.5.13-1.el7.centos @mariadb galera-4.x86_64 26.4.9-1.el7.centos @mariadb |
▼ mariadbの自動起動有効化
1 2 |
$ sudo systemctl enable mariadb.service Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. |
これでMySQL8(mariadb10.5)が使えます。
安全のためにmysql_secure_installationを実行
次はセキュリティ的な安全のために行います。
ルートユーザーのパスワード変更
この手順はこのように行いました
▼ これを実行してパスワード変更
1 |
$ sudo mysql_secure_installation |
▼ 色々聞かれるので答えていく(回答例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] n ... skipping. You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] n ... skipping. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] n ... skipping. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! |
僕の場合はこのように回答しました。
特にパスワード変更は必須です。
phpMyAdminもついでにインストール
ブラウザからデータベースを閲覧(操作)したい
そんな時に便利なのがphpMyAdminというツールです。
そのインストールもついでに行ってみました。
▼ まずドキュメントルートまで移動
1 |
$ cd /var/www/html |
▼ phpMyAdminをダウンロード展開
1 2 |
$ sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz $ sudo mkdir phpMyAdmin && sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1 |
この状態で次のURLにアクセスします。
URL : http(s)://【ドメイン名】/phpMyAdmin
▼ こういう画面が出てくれば成功
ログインすればDB・テーブルを操作できます
phpMyAdminでこんなエラーが出る時は...
次のエラーに作業途中で出会いました。
▼ phpMyAdminにアクセスするとエラー発生
1 |
Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed: xml |
純粋に php-xmlをインストールすればOKです。
▼ php-xmlをインストール
▼ php -m で入ってるか確認
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo yum install php-xml $ php - m ... standard tokenizer xml xmlreader xmlwriter xsl zip zlib |
▼ php-fmpを再起動&Apacheも再起動
1 2 |
$ sudo systemctl restart php-fpm $ sudo systemctl restart httpd |
これで無事phpMyAdminに入れました
これで一通りのWebアプリ環境は整った
ここまで3回に渡って記事を書いてきました。
▼ ここまでの記事を時系列で再掲
最初は大変だったけど、環境構築はひとまず完了
以上、AWSでPHP8+MySQL8のインストール・構築でした