[技術ブログvol.34] phpMyFAQのサイトURLを変更する方法

誰得な感じですが、phpMyFAQのIPアドレスをDBデータの編集で変更する方法を紹介します。

はじめに

phpMyFAQは、インストール時にホスト名の指定はできません。
また、インストール後も管理画面から変更することもできません。

その為、後からホスト名を変更したい場合は、データベースのデータを直接変更する必要があります。

特に、AWSのEC2で作った場合、EIPを付けていなければ、サーバを再起動する度にIPアドレスが変わってしまうので、再起動するとアクセスできなくなってしまいます。

そんな時は、データベースで保持している設定データを直接編集します。

手順

phpMyFAQは、MySQLのfaqconfigテーブルにサイトのURL情報を持っているので、これを修正します。

今回は、対象のデータベース名がphpmyfaqという名前だったとします。

mysql> use phpmyfaq;
mysql> show tables;
+----------------------+
| Tables_in_phpmyfaq |
+----------------------+
| faqadminlog |
| faqattachment |
| faqattachment_file |
| faqcaptcha |
| faqcategories |
| faqcategory_group |
| faqcategory_user |
| faqcategoryrelations |
| faqchanges |
| faqcomments |
| faqconfig |
| faqdata |
| faqdata_group |
| faqdata_revisions |
| faqdata_tags |
| faqdata_user |
| faqglossary |
| faqgroup |
| faqgroup_right |
| faqinstances |
| faqinstances_config |
| faqnews |
| faqquestions |
| faqright |
| faqsearches |
| faqsessions |
| faqstopwords |
| faqtags |
| faquser |
| faquser_group |
| faquser_right |
| faquserdata |
| faquserlogin |
| faqvisits |
| faqvoting |
+----------------------+

phpMyFAQは、faqconfigテーブルのmain.referenceURLにURL情報を格納しています。

mysql> select * from faqconfig where config_name='main.referenceURL';
+-------------------+----------------------+
| config_name | config_value |
+-------------------+----------------------+
| main.referenceURL | http://52.195.181.85 |
+-------------------+----------------------+

手元の環境では、サイトのURLが上記の通りhttp://52.195.181.85になっていたので、IPが変わった後からアクセスできなくなってしまいました。。

URL情報の更新

EIPを設定しない場合、インスタンスを停止する度にIPが変わってしまうので、ホスト名を設定します。
以下の例では、http://phpmyfaq.example.comというURLに変更しています。

mysql> update faqconfig set config_value='http://phpmyfaq.example.com' where config_name='main.referenceURL';

mysql> select * from faqconfig where config_name='main.referenceURL';
+-------------------+-----------------------------+
| config_name | config_value |
+-------------------+-----------------------------+
| main.referenceURL | http://phpmyfaq.example.com |
+-------------------+-----------------------------+

これで、サーバ起動時に割り当てられたIPアドレスとphpmyfaq.example.comを自分のPCのhostsファイルに書いてあげれば、ホスト名でアクセスできるようになります。

備考

IAMやAWS CLIを使って動的にRoute53の対象レコードを変更するようにしてあげれば、いちいちhostsファイルを編集する必要はなくなります。

技術ブログ中の人
phpMyFAQなどのように、直接データベースに設定を格納するアプリの場合、EC2で気軽に試そうとすると、結構ハマるポイントかなと思います。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA