あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

WordPressのwp-config.phpをコマンド実行だけで定義する方法

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 のシークレットキーがすべて更新されます。

便利ですね。