php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

mysql5.7を試してみました

mysql5.7を試してみました


と言っても遅いんですが。。
mysql5.7を入れてみようと思ったのでやったこと
コマンドも含む

きっかけは新しいもの好きとjson型を扱えるようになったということで試してみたかったためです

さてmysql5.7のインストール自体はyumでインストールするとしてサービスを起動
ここまではいつもと変わらず

以前にドキュメントを読んでいて変更点で気になっていたのがパスワードの有効期限が設定されたようで360日で設定され期間が過ぎるとログインできなくなるということ

【mysql5.7.4】よりパスワードの有効期限が設定されたようでパスワードを変更しようと思いましたが
【mysql5.7.11】よりデフォルトが無期限で変更されていました

今回導入したのは5.7.11以上のもの

でもrootのパスワードがログに書かれたままなのは嫌なので変更します


rootのパスワードが設定されていますので確認
/var/log/mysqld.log の中に
A temporary password is generated for root@localhost: ***********
**の部分は実際はパスワードが書かれています

ログインしてまずはrootのパスワードを変更します

set password for `root`@`localhost`=password('新たなパスワード');
FLUSH PRIVILEGES;

ちなみにですが本当にデフォルトで無期限になったのかちゃんと確認していきたいと思います
パスワード関連の設定を確認

SHOW VARIABLES LIKE '%password%';

mysql> SHOW VARIABLES LIKE '%password%';

結果(省略あり)
+---------------------------------------+--------------+
| Variable_name                    | Value        |
+---------------------------------------+--------------+
| default_password_lifetime   | 0              |
| validate_password_length    | 8              |
| validate_password_policy     | MEDIUM  |
+---------------------------------------+--------------+

default_password_lifetime=0

つまり無期限になっていました


個人的に変更を促すのは正しいですが強制はちょっと。。。
その辺のポリシーは利用者側の問題だと思うので。。。
そんなことを思ったりしました

その後にWEBアプリケーション用のユーザーを作成しようと思います
とりあえずgrantオプションを除いた権限で一つユーザーを作成
のちにアプリケーション作成時に更新や参照など適切なユーザーを作ることにします


grant all on *.* to `application`@`localhost` identified by 'pass';

これだとエラーが出ます

なんのエラーかというと
パスワードが短いという点と数値と英大文字と英小文字さらに記号が入っていなければならないというデフォルト設定になっているのでエラーが出ています

validate_password_length = 8

これが8文字以上の制限

validate_password_policy = MEDIUM

これが英数大文字小文字と記号にしてねのポリシー

8文字くらいはあってもいいのでとりあえずは英数でパスワードを作りたいのでポリシーを変えることにします

set global validate_password_policy = LOW

再起動で戻ってもデフォルトに脆弱にはならないのでsetで変更にしました

grant all on *.* to `app_user`@`localhost` identified by 'password';


ちなみに私は構築するときにDBはグローバルIPからのポートは開けないのでパスワードの強度というよりもパスワードの管理が重要だと思っています
DBサーバへ接続できるホストやこれに接続できる社員管理をしっかりして且つDBに接続していい社員を限定すること(ここでパスワードの管理)により責任と発見を明確にできること
これが直接の操作では何か起きないための大事なことだと思っています

コメント

このブログの人気の投稿

nginxで画像が表示されない。。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

CakePHP3でHTTPSにする