半月ほど前、当ブログのサーバをCentOS 7からCentOS 8に移行しました。その時嵌った以下のことを自分のためも兼ねてメモしておきます。
- MariaDB/MySQLでユーザー情報ごとデータベースをバックアップ・リストアする
- WordPressの更新機能をSELinuxがEnforcingの状態でも動くようにする
- php.iniへの変更を正しく反映させる
1. MariaDB/MySQLでユーザー情報ごとデータベースをバックアップ・リストアする
--allow-keywords
オプションありでmysql
データベースをダンプするとユーザー情報がバックアップされるそうです。
なので、以下のようにしてユーザー情報を含めて全データベースをバックアップしました。
(ここではユーザー情報以外のダンプをxz圧縮しています。)
mysqldump -u root -p --lock-all-tables --all-databases | xz > dump.sql.xz
mysqldump -u root -p --lock-all-tables --allow-keywords mysql > user.sql
これで得られたdump.sql.xz
とuser.sql
を新しい環境で以下のようにリストアしました。
xzcat dump.sql.xz | mysql -u root -p
mysql -u root -p mysql < user.sql
2. WordPressの更新機能をSELinuxがEnforcingの状態でも動くようにする
WordPressの更新機能およびプラグイン・テーマ追加機能を使えるようにするためにごめんなさいしながらSELinuxを無効にする(もしくはpermissive設定にする)人も多いですが、実はSELinuxがEnforcingの状態でも割と簡単に動くようになります。
まずは、以下のコマンドでSELinuxのhttpd_can_network_connect
ブール値をオンにして、PHPがネットワーク接続できるようにします。
setsebool -P httpd_can_network_connect 1
次に、Wordpressの設置場所以下にhttpd_sys_rw_content_t
タイプのラベルを設定します。例えば/var/www/wp/
にWordpressを設置しているとすると、以下のようになります。
chcon -R -t httpd_sys_rw_content_t /var/www/wp/
3. php.iniへの変更を正しく反映させる
これは自分が無知だっただけなのですが、CentOS 8からPHPがmod_phpからphp-fpmに変更されたそうで、httpdだけでなく以下のようにphp-fpmを再起動しないとphp.iniへの変更が反映されませんでした。
systemctl restart php-fpm
WordPressでアップロードできる最大ファイルサイズを変更するためにphp.iniのupload_max_filesize
とpost_max_size
を変更したのですが、httpdをいくら再起動しても設定が反映されず、少し嵌ってしまいました。
以上、自分がCentOS 8への移行時に嵌ったことですが、皆さんにとっても何かの参考になれば幸いです。