WordPress の wp-confg.php を設定する際、コマンド実行だけで設定ができると Docker などで自動化ができるのでうれしいですね。
この記事では、WordPress の wp-config.php をコマンド実行だけで設定する方法をご紹介します。なお、動作確認環境は CentOS 8 になります。
まず、基本3項目については以下のように設定します。
# sed -i -e 's/database_name_here/[データベース名]/' wp-config.php #DB_NAME # sed -i -e 's/username_here/[ユーザー名]/' wp-config.php #DB_USER # sed -i -e 's/password_here/[パスワード]/' wp-config.php #DB_PASSWORD
具体的には、こんな感じです。
# sed -i -e 's/database_name_here/wordpress/' wp-config.php # sed -i -e 's/username_here/dbuser/' wp-config.php # sed -i -e 's/password_here/password/' wp-config.php
データベースサーバーが別にある場合やエンコーディングを変更する場合は、以下のように設定します。
# sed -i -e 's/localhost/[データベースサーバー名]/' wp-config.php #DB_HOST # sed -i -e 's/utf8/[エンコーディング名]/' wp-config.php #DB_CHARSET
具体的にはこんな感じです。
# sed -i -e 's/localhost/mysql/' wp-config.php # sed -i -e 's/utf8/utf8mb4/' wp-config.php
やっかいなのが、ジェネレーターで生成するシークレットキーの設定です。
こんな感じのです。このキーは公開しているので使用しないでください。
define('AUTH_KEY', 'Lx~K)ATB?A*ok4i+$Azx3]Tt8-|if:!0#Q0e;ny+-oh5!I.fbQ5E;.zc2O<dw6!['); define('SECURE_AUTH_KEY', '`WEf|To?{Yu(Tv<J$ZG*>?J_mHEw5^{*8-b;hUZ<Qrz-~?`u}q9PmGR,?%L/1d^n'); define('LOGGED_IN_KEY', '?:O&*gIT [8JPxz>%SR|nnzcs{=;bq*8-i|J*@G-6r)Qc00ce!iNmt5Vxv(e0 Nz'); define('NONCE_KEY', '-Q`:NzsNp#T|6Qn|Hzj[Vy=HvWBXHs45=d}!Q7?0_`i<N/O-/4!9XPB+^S?EEk^d'); define('AUTH_SALT', 'U0;}kQ+dt4d2Xj`|EFM-rC=4yxD0tUs+[_^H&?EFqP%r?6YLK&9*X-I784AM-|q|'); define('SECURE_AUTH_SALT', 'MyAV_ A7/3l%AK]qK|lfjeD`=W%vBG`oiq@C_ n |j&RHEZK+/+={<M6 $_&]lA4'); define('LOGGED_IN_SALT', '-GK(+ ;qAz?ycVNT_l4El|e>4F]Whwd>V|lovF_C95gm$c`6I4%2}#Q|N.C;-r3^'); define('NONCE_SALT', '%P!Yr~C9fH/3|7pUFj<+Ww(yIT}c?]2Ls&P71{1eXEO{o.&NqN|7>.s/8_G{ kBG');
調べてみたら、これも自動で実行する方法がありました。
こんな感じです。
# SALT=$(curl -L https://api.wordpress.org/secret-key/1.1/salt/) # STRING='put your unique phrase here' # printf '%s\n' "g/$STRING/d" a "$SALT" . w | ed -s wp-config.php
これで正しく wp-config.php のシークレットキーがすべて更新されます。
便利ですね。