XAMPPでローカルサーバー構築

投稿者: | 2017年9月20日

レンタルサーバのPHPをバージョン5から7に変更するにあたり、テスト環境として自宅PCにWEBサーバを構築した。久しぶりにXAMPPを使ったら色々とトラブったので覚書。(※前の記事から独立した)

先ずは、FTPソフトでリモートファイルをローカルにダウンロード。これは個人的な事情だが、自宅PCの環境(OSやHDD)がここ数年で何度か新しくなっているので、WEBサーバーにあるファイルがローカルには殆ど無い。よってリモートからダウンロードするのに量やサイズが大きすぎて、FFFTPが何度も止まってしまった。

次はXAMPPをインストール、これ自体はウイザードに従うだけなので簡単。FileZillaやTomcatは取り敢えず不要なので除外し、Apache(PHP7を含む)とMySQLだけインストールした。

MySQLのユーザー登録

ここからが曲者。先ず、リモートで運用しているphpMyAdminのフォルダを一式DL。ローカルホストでアクセスしたら、何時もリモートサーバで使ってるユーザーでログイン出来ない。よく考えたらこれは当然で、そんなユーザーが真っさらのMySQLに居るはずない。しかし中々それに気づかず、設定ファイルで一生懸命パスワードの設定を弄ってしまった(;´∀`)

そもそも、XAMPPにはデフォルトでphpMyAdminが付いており、コントロールパネルのMySQLの「Admin」ボタンを押すだけでローカルのphpMyAdminに飛んでくれる。そこでrootかなにかでログインし、何時もリモートで使ってるユーザーを新規登録すればよかったのだ。

そこでmysqlというデータベースのUSERテーブルで、rootユーザを複製して名前を何時ものユーザーに変えたらOK・・・と思いきや又してもログイン出来ない!権限を変えてもダメなので、このユーザー(レコード)は一旦削除して、今度は普通にメインメニューから、ユーザー>ユーザーを追加したら上手く行った。USERテーブル以外にも何か書き換わるのかもね。

データのインポート

次にコンテンツであるデータをリモートからローカルに引っ張ってくる。やり方は、リモートのphpMyAdminにログインしてデータをエクスポートし、吐き出されたSQL文をローカルのphpMyAdminでインポートする。

当然DB一全体を一気に移動するのは無理なので、幾つかのテーブルを選んでエクスポートするも、インポート時に容量オーバーでエラーになってしまう。だから更に細切れにしてエクスポート→インポートを繰り返した。

しかしついに単独で容量オーバになるテーブルがあったので、結局本家のFAQに従いphpの設定を変更。具体的にはphp.iniのupload_max_filesizeを2MBから4MBに変更した(post_max_sizeは最初から8MB)。考えたら、最大2Mは小さいよね?因みにリモートの設定は10Mになってた。

文字化けの修正

ようやく独自システムのWebページがローカルで立ち上がったら、お約束の文字化けが発生。

そこで先ず、phpMyAdminに元々あった幾つかのデータベースの文字コードが殆どラテン系だったので、utf_general_ciに変更してみるが改善せず(もちろんApacheもMySQLも立ち上げ直した)。

次にApacheの設定ファイルhttpd.confを見るも、文字コードに関係しそうな行が見つからずひとまずスルー。またPHPの設定を確認するもdefault_charsetはちゃんとUTF-8になっていた。

そこでMySQLの設定ファイルmy.iniの## UTF 8 Settings以下の5行くらいのコメントアウトを全て外してみたら、見事文字化けがなくなった。DBやテーブルの文字コード変更が必要だったかは判らないが、文字化けしたら大体MySQL設定が怪しいということかな。

コメントを残す

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