こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
PHPエンジニアとして9年~の経験があります。
前回はPHPを導入しました。今回はMariaDBとphpMyAdminを導入します。
仮想開発環境を構築シリーズ
1 Hyper-Vで仮想マシンを作ろう
2-0 事前準備をしよう
2-1 Apacheを入れよう
2-2 PHPを入れよう
2-3 MariaDBとphpMyAdminを入れよう
3 Laravelをインストールしよう
4 Xdebugを設定しよう
5 Eclipseでデバッグしよう
MariaDBをインストールする
PHPがインストールできたら、次はMariaDBをインストールします。
これもPHPインストールの時と同じように、yumで入れると古いものがインストールされます。そのため、公式サイトからOSに適合した新しいバージョンを入れていきます。
MariaDB Foundationから、CentOS7、入れたいバージョンを選びます。
ページ下に選択したバージョンの導入方法が表示されます。
この指示通りに入れていきます。
MariaDB.repoを作成する
/etc/yum.repos.dにMariaDB.repoを作成します。
sudo vim /etc/yum.repos.d/MariaDB.repo
# 手引きにある以下の記述を記述して保存する
# MariaDB 10.5 CentOS repository list - created 2020-06-26 02:00 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
MariaDB.repoを指定してインストール
作成したMairaDB.repoを指定してMariaDBのインストールを実行します。
sudo yum install MariaDB-server MariaDB-client
root初期パスワードを設定する
初期設定を行います。まずはMariaDBを起動します。
systemctl start mariadb
インストール直後、通常はrootのパスワードは設定されていないので
mysql_secure_installation
で起動し、rootパスワードなしで入れるはずなのですが、どういうわけか何らかの管理者パスワードが設定されているようです。
こちらからはわからないので、まずは強制的にrootのパスワードを変えてしまいます。
sudo mysql -u root
use mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY "新パスワード";
exit;
# 設定したパスワードでログインできることを確認
mysql -u root -p設定したパスワード
phpMyAdminをインストールする
phpMyAdminはデータベースをブラウザからアクセスして操作できるツールです。あると何かと便利なので導入します。
こちらもPHPバージョンと合わせる必要があるため、remiのphp7.4を指定してインストールします。
sudo yum install --enablerepo=remi,remi-php74 phpMyAdmin
完了後、phpMyAdmin.confを編集します。php.iniのときと同様、コピーしてから行います。
cd /etc/httpd/conf.d
# 編集前にコピーしておく
sudo cp phpMyAdmin.conf phpMyAdmin.conf.old
sudo vim phpMyAdmin.conf
「Require local」 を「Require all grented」に変更します。
# 編集するところ
<directory usr="" share="" phpmyadmin="">
AddDefaultCharset UTF-8
#Require local #以下を追加
Require all granted
</directory>
変更後、apacheを再起動します。
systemctl restart httpd
ブラウザから/phpmyadminにアクセスするとログイン画面が表示されます。
先ほどログインしたrootでログインしてみてください。成功するとデータベースのメニューが表示されます。
まとめ
いつも何気なく使っているウェブサーバーですが、裏では色々なものが入っていて、要求通りに動くように指定の物を入れています。
開発環境を作るというだけでも一日がかりになってしまうのも、うなずけますね。
プログラムを書いているだけだと意識しない部分ですが、サーバー側面も触っておくと理解が深まって良いのではと思います。