2014/04/29

LHX で PHP & MySQL 設定メモ

 リンククラブのレンタルサーバー LHX で、データベースを動作させることになった。
 いろんな機能があるのは知っていたが、実際にデータベースをウェブで扱うのは初めてなので、何かと手間取り、そこでの設定メモ。

 稼働している PHP も MySQL もかなり古いバージョンらしく、ウェブ上の最新情報には合致しないことも多かった。


●LHX コントロールパネルでの設定
・ドメインを選択後、ホスティング欄の「設定」で「PHP 対応」をチェック。('safe_mode' は有効にしない)
・サービス欄の「データベース」で、「新しいデータベースの追加」/タイプは「MySQL」
・データベースを追加後、「新しいデータベースユーザの追加」

 本来なら、次にツール欄の「DB WebAdmin」を使って、データベース定義をするらしい。
 クリックしても動作しないので無視していたら、Chrome ブラウザでポップアップウインドゥが遮断されているのが原因だった(わかったのは、かなり後になって)。
 この DB WebAdmin は、MySQL の場合、phpMyAdmin というツールが動作する仕組みになっており、LHX の技術サポート Q&A ページによると「文字コード UTF-8 を使うには、自分で最新の phpMyAdmin をインストールせよ」とあるので、ここでは無視しても良さげ。


●phpMyAdmin のインストール
 何も考えずに、最新のバージョンをインストールすると「PHP 5.3+ is required」とのメッセージが出て、動作しない。
 phpMyAdmin の過去バージョンの倉庫から古いのを取ってくる。
 http://www.oldapps.com/phpmyadmin.php

 どのバージョンが動くのかは実際に動作させなくても判りそうなものだが、その知識が無いので、最新版から適当に少しづつバージョンを落としてインストール。ものぐさな私は「2.11.10.1」をインストールしたが 、本当はもっと新しくても動くような気がする。
 インストールの方法は、倉庫から落としたアーカイブを一つのフォルダ内に展開して、そのフォルダーをサイト内に FTP でアップロード。
 動作は、ドメイン名/フォルダ名/phpmyadmin[Enter] でOK。

 ユーザ名とパスワードの入力画面が出たら、とりあえずは phpMyAdmin が動作している。

●config.inc.php の作成
「設定されてません」みたいなメッセージが出る。当然。
 phpMyAdmin を展開したフォルダ内のファイル「config.sample.inc.php」をコピーして「config.inc.php」を作成。
 テキスト内の行「$cfg['blowfish_secret'] = '';」を「$cfg['blowfish_secret'] = 'hoge';」に変更して、同ファイルを FTP でアップロード。

 で、動作させるとワーニング文「mcrypt 拡張をロードできません。PHP の設定を確認してください」が表示される。
 これに関しての情報は、ウェブ上にたくさんある。

●文字コードに関する注意点
 テーブル作成時に、文字セットと照合順序を「utf8_general_ci」にしておく。
 各カラムの照合順序を省略した場合、テーブルの照合順序になると思う。ならなければ、各カラムごとも、これにしておく。
 後から変更しても、一旦格納された値は変換されない。

 php 内でも、データベースを選択後に「mysql_query('SET NAMES utf8');」文を追加。
 本来なら、SET NAMES は使わずに、ほにゃほにゃ・・・という記事があちこちで見つかるが、LHX にインストールされている php のバージョンが古いので、この方法しかないように思う。