Laravelを使ってみよう【#16】NginxにphpMyAdminを導入する

2023年02月21日

最終的にはsshやターミナルでMySQLを使いたい

今回Laravelというわけではないのですが、MySQLを使うに当たっていろいろ確認しながら進めたいのでphpMyAdminを導入します。ほんとうはターミナルでできるといいのですが、さすがにそろそろちゃんとLaravelの開発したいので、今回は一旦これでごまかします。

というかそもそもubuntuインストールしてphpインストールしてNginxインストールしたけどmysqlってインストールできてるのだろうか…?一回確認してみましょう。

mysql -u[ユーザー名] -h[ホスト名] -p

これで接続できます。

あ…やっぱりインストールされてない…どちらにしてもマイグレーションファイルを作る時にエラー出てましたね。踏みとどまってよかった。ローカルでもやりましたもんね。

MySQLをインストールする

準備することがたくさんで心が折れそうです。ただサーバー構築が自分でできると後々いろいろなライブラリをすきなように使えるのでがんばります。pdfを作成するライブラリなんかも普通ならfpdfとかしかないけど、自分でインストールできると別の便利なやつがあったりした気がします。業務用システム作るなら必須な気がしますよね。

$ sudo apt install mysql-server

これでインストールできるはず。318MB使うが大丈夫かだと。けっこう容量食いますね…

次にセキュリティ対策のためのスクリプトを実行します。

$ sudo mysql_secure_installation

セキュアにmysqlをデプロイしますその後パスワードなどを決めて、みたいな感じか?

そのセキュリティの強度を選べみたいな感じ?2を選ぶとパスワードの長さは8文字以上で大文字、小文字、数字、特殊文字を使わないといけないみたいですね。

パスワードを設定してみるものの何回やってもこの表示が出る。なにこれ?不具合?

原因は調べてもよくわからないのですが、一旦セキュアインストールは終了して別のコマンドを入力します。Ctrol+Cで終了し、

sudo mysql -u root -p

を入力すれば、さきほど入力したパスワードを入力すれば、

普通にmysqlにログインできました。なんだったんだろう…

こちらのページでmysqlのSQL以外のコマンドがよくわかったので遊んでみましょう。

今回はとりあえず、mysql> exitで終了してphpMyAdminをインストールします。

スポンサーリンク

phpMyAdminをインストールする

次にphpMyAdminをインストールします。

$ sudo apt install phpmyadmin

このコマンドを入力します。

インストールがスタートしてこの画面が出ます。apacheなら上を選択して実行するのですが、今回はNginxなのでチェック入れずOKします。

次にphpMyAdminのログインパスワードを設定します。2回同じパスワードを入力します。パスワードが弱いみたいなエラーが出ますが続行できそうですね。このままやっちゃいます。キャプチャ画像は撮り損ねましたが、ignoreを選択すれば続行できました。

インストール先は/usr/share/phpmyadminです。

できてますね。ウェブルートからアクセスするためにウェブルートにシンボリックリンクを貼ります。

$ sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin

そういえばインデックスをlaravelプロジェクトのpublicになるようにしていたのでpublicのほうにphpmyadminのシンボリックリンクを貼らないとだめですね。それで実行し直しました。

これでhttp://xxx.xxx/phpmyadminにアクセスすると…

ちゃんと表示されました。こんなにスムーズに表示できるとは…笑

このあとログインでエラーが出た

このあとrootでログインしようとしたら失敗しました。必死すぎてキャプチャ撮るの忘れてたのですが、

「設定ファイルに定義されている管理ユーザ(controluser)での接続に失敗しました。」

というエラーと

mysqli::real_connect(): (HY000/1045): Access denied for user root@’localhost’ (using password: YES)

このエラーが出てました。エラー内容で調べてみるとphpmyadminの設定ファイルのログイン情報を変えないといけないみたいです。

/etc/phpmyadmin/config.inc.php

設定ファイルはこれで、ユーザー名とパスワードはconfig-db.phpで変数に入れてるみたいなので、これを修正します。

するとユーザー名が「phpmyadmin」になってます。これがあってないのか?ということでこれを「root」に変更してアクセスしてみるとやっぱりエラー。パスワードが間違ってるのかと思い、sshでログインしてみるとちゃんとできる…どういうこと?

考えてみると、sshでログインするときはroot権限で(sudoをつけたコマンドで)ログインしてるので、phpmyadminだとユーザー権限になってしまうからアクセス拒否されているのかも。

試しにconfigファイルの通りにsshで「phpmyadmin」というユーザーを作ってみました。

sshでmysqlにログインしてユーザー作成のコマンドを入力します。

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'password';

passwordのところはconfigファイル内にあったパスワードでもいいし、新しいものにしても大丈夫です。変えた場合はconfigファイルのパスワードも変更してください。

GRANT ALL PRIVILEGES ON * . * TO 'phpmyadmin'@'localhost';

このコマンドでデータベース権限も変更できます。今回はそこまでしなかったような…

このあと、phpMyAdminで作ったユーザーでアクセスしてみると…

ログインできました!たぶん原因は思った通りかな…?

スポンサーリンク

さいごに

やっとできました。インストールするときについでにユーザーまで作ってくれればいいのに。

root権限でインストールしてなかったのだろうか。いやそんなわけないか…

データベースとユーザーができたので次はLaravelで設定してマイグレーションファイルが作成できそうですね。

お知らせ

株式会社プラン・ドゥではphpとデータベースを利用したアプリケーション開発を行なっております。
wordpressでのホームページ作成、phpのスクラッチ開発などが可能です。
業務効率化等でお困りのことがございましたら、システムのご提案からさせていただきますのでお気軽にご相談ください。

その他の取扱商品はこちらからご覧いただけます。
http://plando-inc.co.jp/product

同じカテゴリの記事

関連記事

スポンサーリンク

DTP

Laravel開発

wordpressカスタマイズ

デジタルマーケティング

ライフハック

動画

当社製品について

Contact各種お問い合わせ

お問い合わせ・ご相談など
まずはお気軽にご相談ください

お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。

トップページ コラム 各種お問い合わせ プライバシーポリシー