「ちょっと実験」のつもりが、全くちょっとで済まなくなった件('A`)
【httpd+PHP】ハマり中 (2) ~PHPが動かない~
前回までのおさらい
PHPが動かん!
→php-fpmが(おそらく設定不備で)動かないので、preforkで動かすことにする。
→動いた
→(WordPressのセットアップをしようとしたら)今度はMySQLに繋がらん!
. ∵ ./ ./|
_, ,_゚ ∴\// ←今この辺
(ノ゚Д゚)ノ |/
/ /
 ̄ ̄ ̄ ̄ ̄ ̄
Chromeで開くと以下のメッセージがブラウザに出力された。
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
ググってみると沢山出てきたw
そもそも利用できないって何よ。入れただろ確か。
# ll /usr/lib64/php/modules/ | grep mysql
・・・と打ってみると
ない
皆無~皆無~
もうMySQLが入っているはずなのに何故?
バージョンの問題かと思ってMySQLをyum uupdateしてみる。
なんかマイナーバージョンが上がったな。
それで解決すれば良いんだけど。
やっぱり何もない。
更にググってみると、PHP7でmysql関数が使えない事がわかった。
マジか。
仕方なくmysqliを入れる。
# yum -y install php-mysqli
んで/etc/php.ini
に
を追加。
これで動くだろうと思ったら、またエラーが出た('A`)
またググる
Mysql8から認証方式がcaching_sha2_passwordに変わったが、PHPはまだ対応していないので
エラーになるそうだ。
いやホント勘弁して欲しいんですけどこういうの。
DBがどういう状態なのかを確認してみる。
select User, Plugin from mysql.user;
バッチリcaching_sha2_passwordになってた('A`)
そりゃそうだよな・・・変わってるなんて思わないでセットアップしたんだから。
っつーわけで、
ALTER USER '※ユーザ※'@'localhost' IDENTIFIED WITH mysql_native_password BY '※パスワード※';
で変更してやろうと。
なんか嫌なエラ-。
肝となるテーブルの定義が変わってないかオイ。
そういうのアップデートした時に一緒に修正かかるんじゃないの?
いちいちユーザが直せ と?
直しても良いけど、他にも影響があるかもしれなくて
その都度あれこれするのは嫌なので諦めて環境を捨てることにする。
こういうときVMって楽で良い。
イジる前の状態にサクッと戻す。
ファイルのコピーだけだから数分レベルだし。
ポイント
■php-fpmを使わずにpreforkで動かす(逃げただけなので、いずれちゃんと調査したい
■MySQLのバージョンは上げない&mysql_native_passwordを使う
データベースやユーザを作る前に、ユーザ作成時にmysql_native_passwordになるようにする。
/etc/my.cnf
に
default-authentication-plugin = mysql_native_password
を追加。
■mysqliを使用する
# yum install php-mysqli
/etc/php.iniに
を追加。
で、無事に動いた。
こんなんでGWを半分以上潰したんだよなぁ・・・('A`)