wordpressの開発環境とのやりとり
ワードプレスのデザインや構成などをテストする時に、公開した状態でやるより、ローカルの開発環境にクローンを作成してテストしたいものですね。
一応自分用メモ的な要素が多いのですが・・・
仮にデータベース名を「wpblog」
本番のサーバーURLを「http://example.com/」
ローカル環境のサーバーURLを「http://localhost/」
Lunuxユーザー名を「myname」
sshのポートを「9876」
ワードプレスのファイルがある公開ディレクトリを「/var/www/html」
それぞれホームディレクトリで操作として書いてます。
データベースのバックアップ
本番環境のmysqldumpコマンドにてワードプレスのデータベース「wpblog」をwpblog.sqlにバックアップ。
$ mysqldump -u root -p wpblog >wpblog.sql
mysqlのrootのパスワードを入れるとwpblog.sqlにバックアップ完了。
これで本番環境での操作終了。
バックアップを開発環境にコピー
ローカルからsftpで本番環境に接続してローカル環境にwpblog.sqlをコピー
$ sftp -oPort=9876 myname@example.com myname@example.com's password: Connected to example.com. sftp> get wpblog.sql sftp> exit
ローカル環境のデータベース操作
ローカル環境にデータベースをインポート
mysqlコマンドで(dumpではない)データベースを上書き
$ mysql -u root -p wpblog < wpblog.sql
mysqlのrootのパスワードを入れるとデータベースの上書き完了。
データベースのURLを書き換え
mysqlにログインして2箇所のURLを書き換え。
「設定」 「一般設定」のこの部分。
ここが違うと本番環境を読みに行ってしまうので。
まずログイン。
$ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 403 Server version: 10.1.23-MariaDB-9+deb9u1 Debian 9.0 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
mysql(mariaDB)のrootのパスワードを入れる。
念の為データベースwpblogがあるかを確認
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | wpblog | +--------------------+ 4 rows in set (0.00 sec)
使用するデータベースを指定
MariaDB [(none)]> use wpblog; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [wpblog]>
現在のURLを確認
MariaDB [wpblog]> SELECT * FROM wp_options WHERE option_name IN ('home','siteurl'); +-----------+-------------+--------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+--------------------+----------+ | 2 | home | http://example.com | yes | | 1 | siteurl | http://example.com | yes | +-----------+-------------+--------------------+----------+ 2 rows in set (0.01 sec)
URLの書き換え
MariaDB [wpblog]> UPDATE wp_options SET option_value = 'http://localhost/' where option_name IN ('home','siteurl'); Query OK, 0 rows affected (0.01 sec) Rows matched: 2 Changed: 0 Warnings: 0
一応確認して終了
MariaDB [wpblog]> SELECT * FROM wp_options WHERE option_name IN ('home','siteurl'); +-----------+-------------+------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+------------------+----------+ | 2 | home | http://localhost | yes | | 1 | siteurl | http://localhost | yes | +-----------+-------------+------------------+----------+ 2 rows in set (0.01 sec) MariaDB [wpblog]>exit Bye
本番サーバからwprdpressディレクトリをコピー
rsyncを使ってサクッと
$ sudo rsync -avz -e "ssh -p 9876" myname@example.com:/var/www/html/ /var/www/html/
まずsudoのパスワードを入れると、次にsshのパスワードが要求される。
完了。
広告などウィジットによっては再登録の必要があるかも知れません。
本番環境への適用
開発環境での作業が終わった後に本番環境への適用は、そのまま手動で本番環境で変更したほうが楽かも。
内容によってはローカル本番逆の手順で。
環境によってはデータベース操作はphpmyadminなどで操作してもいいし、sftpやらrsyncが使えなければftpソフトかな。
できるならコマンドでやった方が簡単かな。