SQLite Integration不具合
最近、スターサーバーのエコノミープランの動作確認で、SQLite + SQLite IntegrationでインストールしたWordPressサイトの挙動を調べたり、旧ミニバードでもあえてMySQLを使わずSQLiteでWordPressサイト作ってみたところ。なんか、WordPressの設定で変更できない項目があることに気づいた。
ちなみにこの現象、毎度おなじみSQLite Integration(ja)のページのコメントで、1年半以上前に指摘されてるので、既知の不具合みたいだな。
管理画面の設定が変更できない
もうちょっと詳しく不具合内容を書いてみると。こちらで確認したのは、WordPress管理画面のディスカッション設定で、一部のチェックボックスを除くと、元からあるチェックが外せないし、一度チェックを入れても外せなくなる現象だった。
例えば、「投稿のデフォルト設定」の「この投稿に含まれるすべてのリンクへの通知を試みる」のチェックを一度付けると外せない。
「他のコメント設定」の「コメントの投稿者の名前とメールアドレスの入力を必須にする」などのチェックが外せない。デフォルトでチェックが付いてない項目も、一度チェックを付けると外せなくなる。
「自分宛のメール通知」と「コメント表示条件」の項目も、デフォで付いてるチェックと一度付けたチェックは外せなくなる。
「アバターの表示」設定で「アバターを表示する」のチェックが外せない。その下の「評価による制限」と「デフォルトアバター」は変更可能。数字やプルダウンの項目は変更可能。
メディア設定のチェックボックスも外せない。
一般設定の「だれでもユーザー登録ができるようにする」と、表示設定の「検索エンジンがサイトをインデックスしないようにする」のチェックはオンオフ可能だった。
設定が保存できない解決策
WordPress上で設定の変更が出来ないなら、該当箇所を直接書き換えるしかないんじゃねと考えてググってみたところ。WordPressの設定はファイルじゃなく、データベースのwp_optionsテーブルに保存してるらしい。
SQLite Integrationを使ってWordPressをインストールした場合、データーベースは「.ht.sqlite」ファイルになる模様。場所はwp-conten/databaseフォルダにある。これをダウンロードして直接編集すればいいはずだが。失敗するとWordPressアクセス不可どころか、データ吹っ飛ぶ可能性もあると思うので、くれぐれもバックアップは忘れずに。ちなみに、変更に使ったのはこれのポータブル版。
具体的な手順は、アプリで.ht.sqliteファイルを開いたら、「Browse Data」タブ→Table:のプルダウンメニューから「wp_optinos」を選択→該当箇所の「option_value」を変更(0がチェックなし、1があり)
とりあえず変更したのは「require_name_email」と「show_avatars」の二箇所。ちなみに、option_nameを一つずつ見ていってもいいけど、変更する項目が決まってるならFilterに入力して対象を絞ったほうが早いと思う。
終わったら、上の方にある「Write Changes」を押してアプリ終了。その後、サーバにある.ht.sqliteを差し替えて、サイトが正常に動作してれば多分OK。なお、私はレンタルサーバもデーターベースもググって調べた以上の知識はないので、この通りやって何が起きるか分からないので、やるなら自己責任でお願いします。
今回の感想
.ht.sqliteを直接書き換えることで、下記サイトでWordPressの管理画面からはチェックが外せなかった、「コメントの投稿者の名前とメールアドレスの入力を必須にする」と、「アバターを表示する」の項目を無事外せた。もっとも、アバターは表示させといて良かったんでチェック付け直したけど。
http://sqlite.hatarakitakunee.com/
そんな訳で、MySQLを使えないけどSQLiteが使えるレンサバで、SQLite Integration使ってWordPressインストールしたはいいが一部の設定が変更できなかった人は、データーベースを直接変更しちゃえば姑息的には解決できるぞ。ただし、管理画面でチェック入れちゃうとまた外せなくなるけどね。
設定変更後ついでにググってみたところ、作者サイトのコメントの1ヶ月後ぐらいに、同じように手動で書き換えてる人がいた。ちなみに、「firefoxのSQLite manager」ってのはアドオンみたいだな。
まあ、動作確認外の方法で運用してる以上、何らかのトラブルが起きるのは想定の範囲内だからな。一番の解決策は当然、MySQL使えるレンタルサーバ借りるのがまっとうな方法なんだろうけど。やるなって言われると、かえってやってみたくなるよね。
コメントを残す