Debian上で一時的にWordPressをSQLiteを使って動かす

nogajun
nogajun

_ Debianを使ってて手元で一時的にWordPressを動かしたいときがあります。Dockerを使ってもいいですが少し面倒です。そういう場合、PHP内蔵サーバーとSQLiteを使えばWordPressを動かせます。

コマンドライン版PHPとSQLiteライブラリをインストールします。

sudo apt install php-cli php-sqlite3

WordPressのzipファイルとWordPressをSQLiteで使うためのwp-sqlite-dbをダウンロードして展開します。

展開したwp-sqlite-dbのフォルダのsrc/db.phpを、WordPressのwp-contentフォルダにコピーします。

 cp wp-sqlite-db-1.1.0/src/db.php wordpress/wp-content/

wp-sqlite-dbアーカイブのダウンロードが面倒な人は、GitHubにあるdb.phpファイルをwgetでダウンロードして直接wordpressのフォルダーにコピーしても構いません。

wget https://raw.githubusercontent.com/aaemnnosttv/wp-sqlite-db/master/src/db.php -O wordpress/wp-content/db.php

wordpressのフォルダに入って、wp-config-sample.phpwp-config.phpにコピーします。

cd wordpress/
cp wp-config-sample.php wp-config.php

そしてブラウザで https://api.wordpress.org/secret-key/1.1/salt/ にアクセスしてユニークキーを生成したら、wp-config.phpをエディタで開き、以下のユニークキー部分を生成したユニークキーと置き換えます。

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

以下のコマンドでPHPのWebサーバーを起動します。

php -S localhost:8000

ブラウザでhttp://localhost:8000/にアクセスすればWordPressが使えます(といってもジャーナルを設定しなければ遅いけど)。

おまけ: Sqlite3のジャーナルモードを変更する

これで使えますがジャーナルモードがdeleteなのでめちゃくちゃ遅いです。Sqliteデータベースのジャーナルモードをwalにすると高速にアクセスできます。

注: walモードはローカルで利用するだけなら大丈夫ですが、高速になる分、弊害もあるので変更前にSqliteのドキュメントを読んでください。

Sqlite3のコマンドラインを使うのでsqlite3をインストールします。

apt install sqlite3

sqlite3コマンドを使ってwp-contentにあるデータベースのジャーナル設定を変更します。

sqlite3 wp-content/database/.ht.sqlite "PRAGMA journal_mode=wal"