【MySQL】WordPress を Windows へインストール
xserver で blog を動かしている場合に,ローカルのパソコン(Windows10)で同様に動かすのに必要な MySQL のインストール方法を解説する.
検索しても,64bit 版のインストールを日本語で解説しているちょうどよいページが見つからなかったためである.
64bit版はインストーラーがついていないので自分で設定する必要があるが,必要最低限の設定だけすればよいので考えようによっては簡単ともいえる.
方針としては,MySQL は localhost で動作させて,設定ファイルだけ本番のDBサーバーを設定しているところを localhost に変更することで対応する.
(基本的に wp 以下は一度変更したら変更しないという前提で進める.)
ダウンロード
Windows 版の 64 bit 用の MySQL はここからダウンロードする.
https://downloads.mysql.com/archives/community/
ダウンロードしたファイルは 2020年10月23日現在では
mysql-5.7.31-winx64.zip
となる.
インストール
これを適当な場所に解凍してディレクトリ名を mysql に変更する.
ここでは
C:\app\db
に移動するものとして進める.
つまり,インストールしたルートディレクトリは
C:\app\db\mysql
となる.
ちなみに 5.7 のインストールの説明のリンク先は
https://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html
となる.
c:/app/db/mysql 以下にフォルダを作成.
data
logs
tmp
各種設定
MySQL 設定
c:\app\db\mysql
に移動.
c:\app\db\mysql\my.ini
を作成.
(エクスプローラーで「新規作成→テキストドキュメント」など)
以下の内容で my.ini を作成.
これは 5.7 のもの.
[mysqld]
basedir = c:/app/db/mysql
datadir = c:/app/db/mysql/data
tmpdir = c:/app/db/mysql/tmp
character_set_server = utf8
general_log = 1
general_log_file = c:/app/db/mysql/logs/general_query_all.log
log_error = c:/app/db/mysql/logs/mysqld_error.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_syslog = 0
log_timestamps = SYSTEM
long_query_time = 3
slow_query_log = 1
slow_query_log_file = c:/app/db/mysql/logs/slow_query.log
MySQL 動作までの初期設定
管理者でコマンドプロンプトを実行
分からない方は下のリンクを参考に.
管理者権限でコマンドプロンプトを起動する
c:/app/db/mysql/bin
に移動.(cd c:/app/db/mysql/bin で移動)
データベース初期化(--initialize-insecure を使うのは root にパスワードを設定していないため)
mysqld --initialize-insecure --user=mysql
サービスへの登録
mysqld --install MySQL --defaults-file=C:\app\db\mysql\my.ini
ちなみに間違った場合,サービスからの削除は
mysqld --remove MySQL
とする.
「サービス」を開いて,「MySQL」を開始する.
コントロールパネルから「サービス」を開いても構いませんし,左下の虫眼鏡をクリックして,
service
と打ち込んでもよい.
ユーザーとデータベースの作成
#ローカルのパソコンなので,root のパスワードはあえて設定しない.(通常は設定する.)
上で開いたコマンドプロンプトでそのまま続ける.(管理者権限はなくてもよい.)
ルートで接続.パスワードを聞かれるが無視して Enter
mysql -u root -p
ユーザーを作成
CREATE USER ユーザ名@localhost;
grant all privileges on *.* to ユーザ名@localhost identified by 'xxxxxxx' with grant option;
flush privileges;
ユーザーを作成(MySQL8の場合)
create user 'ユーザ名'@'localhost' identified by 'xxxxxxx';
grant all privileges on DB名.* to 'ユーザ名'@'localhost';
flush privileges;
データベースを作成
create database データベース名;
データベースにデータを流し込む
既に本番のサーバーで記事を書いている場合はバックアップを取得.
バックアップ取得
xserver などのプロバイダを使っている場合
管理画面からバックアップを取得する。
プロバイダの管理画面でデータベースのバックアップ(ダンプファイル)が取得できない場合
SSH など端末で繋いでコマンドラインで実行するなら
mysqldump -u ユーザ名 データベース名 > バックアップファイル.sql
を実行すればバックアップファイルを取得できる.
データリストア(データ流し込み)
バックアップを取得できたら以下を実行し、空のデータベースにデータを流し込む。
mysql -u ユーザ名 -h localhost -p データベース名 < C:\backup\バックアップファイル.sql
WordPress 関連の変更
テーブルの変更
MySQL へ接続
mysql -u ユーザ名 -h localhost -p データベース名
WordPress で使っている変数を直接変更.これをしないとサーバーがローカルにならない.
update wp_options set option_value = 'http://localhost' where option_name = 'home';
update wp_options set option_value = 'http://localhost/wp' where option_name = 'siteurl';
wp-config.php の変更
接続先ホストの変更と動作しない時にデバッグ用に表示を変更する.
define('DB_HOST', 'localhost');
define('WP_DEBUG', true);
php の設定
php をインストールしていない人は
Windows への apache インストール方法
の PHP のインストールへ.
そのままだと以下のエラーが出る.
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in
mysqli の拡張を読み込む必要がある.
php.ini の変更(最低限の変更箇所のみ)
extension_dir = "c:/php7/ext/"
extension=mysqli
extension=curl
extension=openssl
extension=mbstring
max_execution_time = 300
(mbstring は正確には不要)
curl を使えるようにしたら,
PHP Warning: PHP Startup: Unable to load dynamic library 'curl'
というエラーが出た場合,どうやら apache の方が古くて整合性がとれずエラーになるらしい.
php の下にある以下のファイルを
libcrypto-1_1-x64.dll
libssh2.dll
libssl-1_1-x64.dll
apache の bin にコピーすることでエラーが出ないようになる.
参考)
PHP Warning: PHP Startup: Unable to load dynamic library php_curl.dll impossibile find
apache の設定
httpd.conf ファイル
LoadModule rewrite_module modules/mod_rewrite.so
.htaccess で wordpress が使う rewrite モジュールを使えるようにする.
自分で設定した apache を使っている場合は忘れないように気を付ける.
ちなみに .htaccess にこんな記述をしていると上記の rewriteモジュールが動作していなくても一見正常に動作しているように見えるので気を付けたほうがよい.以下のような記述は避けたほうが無難.
ErrorDocument 404 /
その他細かい変更
WordPress で変更・確認するファイル
- .htaccess
- タグマネージャを外す.
- インクルードしている場合のパスの変更
ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.