Archives 2018.02.07

Tweets for 2018-02-06

  • 室温、3.4℃…こんなに下がったことない。 ->
  • RT @kosys_pr: そういえば、CCCのDDDというコンテストを知りました。
    そこで、アイデアなのですが、特定の人物の来店時刻を複数指定することでT会員を特定し、そのT会員の購買履歴から生活圏や好物を割り出すプレゼント支援サービスというのはどうでしょうか。 ->
  • RT @vorto752: そういう人達はイデオロギーに染まって「〇〇であるべき」という自分の脳内の理想を優先させてしまって、現実への認識能力や対処能力がガバガバになってしまってるのだと思われ。どんなに知識がある人間だろうと教会の素晴らしい教えを正当化するために地球は平らだと強… ->
  • 「高学歴である大卒は高卒と違って相対化して考える能力を身につけている」とかでなく
    「偏差値が高い大学の卒業生は頭がいいはずなのに何故おかしな思考に染まっちゃって穴だらけの論理を主張するんだろ」
    ということなら後者の考えは、そもそもの前提がいろいろと間違っとるよ。 ->
  • 後者の誤謬、これはオウム事件の教訓でもあるはずなんだ。 in reply to K_akiya ->
  • 大体、おかしなイデオロギーに染まらないためのリテラシーぐらいは学卒後から学んでも十分に身につくでしょ。 ->
  • しかし、その程度のリテラシーは義務教育で全員に身につけさせとけ!というのが持論。まとめ記事とかテレビに毒された人々って、戦前に沸騰してた世論を作った人たちじゃないかなあと漠然と思うのである。 in reply to K_akiya ->
  • RT @metatetsu: 14歳で北極点を制覇したとき「女は冒険なんてしないでサンドイッチを作ってろ」と暴言を吐いた人がいた。今回南極点制覇し「ほらよ作ったから食べに来い」と写真をアップ
    16歳女子高生、南極点から「サンドイッチ」で反撃 ユーモアで差別に対抗、世界から賞賛… ->
  • RT @ESAKUGA: 電子書籍E-SAKUGAは原画+タイムシート+レイアウトがフルで参照できる、本とは異なるアニメ原画集 https://t.co/gTlX22UjLM https://t.co/lCcJ8xnNMY https://t.co/nvjvQV9rnr ->
  • ホント、統計とメディアリテラシーはどこでもいいから必修化して身につけさせて。情報社会における九九みたいなもんよ。 ->
  • 節分ネタ全部入り感 美人女上司滝沢さん 第38話 / やんBARU – ニコニコ静画 (マンガ) https://t.co/2HYcWr81bA ->
  • 口述筆記は、専任の担当が必要だった。技術により個人が一人で使えるようになった。イノベーティブ! https://t.co/8gcUIF12GL ->
  • RT @lpmya: 낙서.. https://t.co/GnJtjdxaTN ->
  • これは好きな絵柄!と思ってフォローしようとすると、プロフィールが繁体字だったりハングルだったりすることがちょいちょいある。なので自分はdeviantArtの方がいいかもと思って、ここ3年ほどdeviantArtにしか投稿してない。… https://t.co/9HWrBmx0hm ->
  • ザックリした線に水彩風にササッと薄味に彩色してサッとアップできるとよいのだが…自分の場合、ザックリした描き方だとバランスがおかしくなる。下書きを微調整しながらでないとバランスとれないんだ。 ->
  • RT @Yuu_syameGD2: 訳の分からないアンチに使えそうな名言 https://t.co/1pROxgjKMX ->
  • あとUIというかページデザインがDeviantArtの方が好き。 ->
  • RT @x__ok: このタンカー沈没事故は、日本ではほとんど報道していない事の異常さが海外で言われている。被害はとても大きい。すでに日本海側に有害物質は回っている。今後の日本人の食の大きな問題となってくる。
    https://t.co/VI4LSCYISg ->
  • RT @t_misono: 『ふたりはともだち』個人的な感覚ですが、図書館のカウンターで「教科書に載っていた話をもう一度読みたい」と相談される率ナンバー1!がまくんとかえるくんのやりとりが心あたたまる…。かたつむりくんも記憶に残るみたいです。 #こんな時だからステキな絵本の話を… ->
  • RT @shigerufujita: #情報工学科 ではハードウェア,ネットワーク,ソフトウェアを学びます
    演習ではプログラミングを,実験1〜3では,教科書だけでは学べない実地体験をして,報告書の書き方を学びます
    入試願書受け付け中
    #ステマ ->
  • RT @zakone: https://t.co/OMyyW2sBnT ->
  • RT @TaTaRa_: 「Apacheが落ちた」「Apacheが落ちた」とニュースで繰り返すのは、インフラエンジニアに対する配慮があまりにも足りない。 ->
  • RT @dokuninjin_blue: ポリコレ棒のように「表現の自由棒」になったら嫌ですよね。それは避けていこう、ということです。 ->
  • RT @Eusy_Ram: 表現することは許すし、守りもするが、その表現が本当に適切かをよく考えて行動に移せと仰っておられるのだと ->
  • RT @appmarkelabo: つまらないことを「たのしいデザイン」にしたら人の行動が変わった
    ゴミ箱に落下音をつけた
    →ゴミの回収量が2倍に🗑
    歩くと音がなるピアノ階段
    →階段つかう人1.6倍に🎹
    苦痛を超える「たのしさ設計」が重要。逆に「処罰でコントロールしよう」… ->
  • RT @ppp_usagi_: 🌸 https://t.co/WAkFmD2BYL ->
  • RT @lhipelal: ソフトバンクは広告として、吉野家は売上として、並んでる人はコスパの良い「コト消費」として、ネット民は愚かな人間を叩くネタとして、話題を消費する。悪魔のような施策よな。 ->
  • RT @raf00: インターネットの理想と誤解の中でも根深いものの1つだよな、「ネット直接にすると中間マージンを搾取されない」って話。
    「搾取構造がよりタフになる」「競争が熾烈になる中これまで代理店に任せてた機能技術を自社で抱えないと生き残れない」みたいな展開山ほどあるのに。 ->
  • #wocker wordmove、FTP接続でやると必要パッケージが入ってないのでエラー出た。しまったな… ->
  • RT @mona_3588: 帰ってきたらナンバープレートがこんな事になってて、自動車の空力デザインってすげぇなって思った https://t.co/eU4fTU96Uf ->
  • RT @ddg_miralt: 各校の「渋滞の時」。 https://t.co/QXR9eg73pf ->
  • アトピーは根治しないよ。 ->
  • 社会と群れの違いってなんだろう。ライオンも協力して狩りをする。また、社会性昆虫も分業をしている。アリとかハチとか。人間のそれをのみ社会というのだろうか。 ->

WockerでWordmoveを使う

Wockerバージョン1.3にてWordmoveが実装されました。


今回はWordmoveをつかって、このブログのテーマをWocker内のWordPressに反映させてみます。
Wordmoveを使うと、PC内の開発用WordPressとサーバの本番環境のWordPressをコマンド一つで「同期」できます。
公式サイトでは「自動的なミラー」(複製)と書いています。

Wordmove is a gem that lets you automatically mirror local WordPress installations and DB data back and forth from your local development machine to the remote server.

Wocker自体の使い方は、公式サイトwocker.ioを参照して下さい。
Windowsでの使い方は当ブログに解説記事があります。WindowsでWockerを使う ― Autumnsky

ローカルのフォルダ構成、リモートの構成

作業前にローカルのフォルダ構成と、サーバ側のWordPressの設定を確認します。
当方ではDドライブ内にwockerのフォルダを作っています。
下記のコマンドでtest-wordmoveというコンテナを作りました。

$ wocker run --name test-wordmove

ローカルのWordPressが入っているフォルダはD:\wocker\data\test-wordmoveとなります。
wocker start test-wordmoveコマンドで、このフォルダ内のWordPressがPCで実行されます。
当ブログはさくらのレンタルサーバ スタンダードプランに構築されています。
サーバ側のWordPressは別途フォルダを作ってwordpress内にインストールしていますので、

WordPress アドレス (URL): https://autumnsky.jp
サイトアドレス: https://autumnsky.jp

上記の通りになっています。

Wordmoveのmovefile.ymlを生成する

ローカルのWordPressの設定、本番環境が動いているサーバの設定、等の設定をmovefile.ymlに記載します。
movefile.ymlに記載された設定を元に、Wordmoveは同期を行います。
.ymlは、YAML(ヤメル)というデータ形式のファイルです。私は「ヤムル」と読んでいます。
ローカルのWocker内には、初期状態ではmovefile.ymlはありません。
まず、Wockerコマンドでmovefile.ymlを生成します。

$ wocker wordmove init

result_wordmove_init
movefile.ymlが作成されました。テキストエディタで開いてみます。
(Windowsではメモ帳は使わないで下さい。)created_movefile
この時点で、Wocker内のWordPressは設定済みです。
下記のglobal:からproduction:の手前までの部分。
movefile_global_section

global:
  sql_adapter: wpcli # default is not available for Wocker
local:
  vhost: http://wocker.test
  wordpress_path: /var/www/wordpress # use an absolute path here
  database:
    name: wordpress
    user: wordpress
    password: "wordpress" # could be blank, so always use quotes around
    host: localhost

movefile.ymlを編集する

先に生成したymlファイルに本番環境(サーバー側、リモート)の設定を書いていきます。
production:以下、インデントが一つ下がっている項目は、サーバー側の本番環境の設定項目です。
例えば、database以下はproduction(本番環境)のデータベース設定です。databaseのname、databaseのuser、databaseのpasswordと設定が必要です。
これを本番環境のサーバー設定に書き換えていきます。
WordPressの設定、wp-config.phpとmovefile.ymlの設定を対応させると下図のようになります。
サーバ側 WordPress 4.9.2 / ローカル Wocker v1.3 の場合
prodction_server_settings
書き換え後の例

production:
  vhost: https://autumnsky.jp
  wordpress_path: /home/autumnsky/www/wordpress
  database:
    name: wp-config.phpからコピー
    user: wp-config.phpからコピー
    password: wp-configからコピー
    host: wp-configからコピー
    # port: 3308 # Use just in case you have exotic server config
    # mysqldump_options: --max_allowed_packet=1G # Only available if using SSH

vhost:は最後のスラッシュは書きません。リモートのデータベースをローカルへプルした際、データベース内にあるproduction: vhostのURLをlocal: vhostの文字列に書き換えています。サーバー側とローカルで、サイトURLが変わるため、URLを書き換えなければローカルのWordPressが正しく動きません。
正確に記載されていないと、書き換えに失敗します。
production:以下のwordpress_pathはサーバー側のWordPressを設置しているパス(フォルダ)の指定です。

サーバーのテーマフォルダをプル

それではサーバのテーマをローカルのWockerに引っ張ってみます。
今回はSSHという接続を使います。

SSH(Secure Shell) とは、物理的に遠いところから、サーバを操るための手段のひとつです。
さくらのレンタルサーバ SSHについて

SSHでの接続設定はサーバごとに異なりますので、各自ご確認下さい。
まず、先と同様にmovefile.ymlのSSH項目の設定を書きます。
SSHの設定は初期状態ではコメントアウトされているので、#を半角スペース2個で置き換えます。
左が編集前、右がコメントアウトを外した状態です。
下記の画像では分かりやすいように、エディタの設定でスペースを_で可視化しています。
enable_ssh
さくらレンタルサーバなら、hostとuser設定だけでもOKです。wordmoveする都度、パスワードを入れる必要がありますが。
インデントの半角スペースの個数、インデントの段数に気をつけて下さい。
YAML形式のインデントは半角スペース2個です。
このインデントの深さがデータの階層構造に対応します。
movefile.ymlは下記のツリーのような階層構造となっています。

movefile.yml
├─ local:(PCのローカルWordPressの情報)
│   ├─ vhost: http://wocker.test (サイトURLはwocker.test)
│   ├─ wordpress_path: /var/www/wordpress # use an absolute path here
│   └─ database:(ローカルのデータベース設定)
│        ├─ name: wordpress
│        ├─ user: wordpress
│        ├─ password: "wordpress" # could be blank, so always use quotes around
│        └─ host: localhost
│
└─ production:(本番環境のサーバ、WordPressの情報)
    ├─ vhost: http://example.com (本番環境のサイトURL)
    ├─ wordpress_path: /var/www/your_site (本番環境のサーバー内のパス)
    ├─ database: (本番環境のデータベース設定)
    │   ├─ name: database_name
    │   └─ ...
    ├─ exclude (除外ファイル)
    ├─ ftp (本番環境へのFTP接続の設定)
    ├─ ssh (本番環境へのSSH接続の設定)
    └─ ...

WordmoveはRubyで書かれています。YAML形式はRubyの構文に近いです。インデントが空白2個で文法上の意味があるのも、Rubyと同じです。WordPressはPHPなので、随分と勝手が違いますね。
ではいよいよWordmoveコマンドでテーマを取得します。
その前に

  • 注意 サーバーに存在しないテーマは、ローカルのフォルダから削除されます!

サーバー側にないファイルは、一旦待避してください。
では実行します。

$ wocker wordmove pull -t

pullはサーバー側のファイルを引っ張ってくる、-t はテーマのみとする指定です。
実行結果はこのようになります。
success_pulling
success_download
movefile.ymlが読み込めない時は、下記のようにRuby実行環境がエラーを出します。
yaml_parse_error
「あるべきはずの設定値が見つからなかった」という意味ですね。
この場合は「28行目を含むブロックを解析中に見つかりませんでした」とのことです。
(黄色背景の強調表示は筆者が独自につけています。)
YAMLファイルの書き方が正しいかチェックしてくれるWEBサービスもあります。
例)YAML フォーマットチェッカーCGI

プルしたテーマを確認する

Wordmove pullは、サーバー側とローカル側のテーマフォルダを完全に同期します。
サーバー側に存在しないテーマをローカルで使っている場合など、wocker.testを開くとホームは真っ白になる場合があります、
http://wocker.test/wp-login.phpからダッシュボードにログインして、テーマを確認します。
after_pulling
左側のスクリーンショットが空白のテーマが選択されています。
当サイトはWordPress4.9.2のデフォルトテーマであるTwentySeventeenを入れていないため、ローカルのWockerから削除されています。
右側のShirohanadaを有効化します。
WockerでShirohanadaテーマが表示されました。
mytheme_in_wocker

おわりに

今回はプルしか試していませんが、もちろんプッシュも可能です。
また、Wocker V1.3では若干、制限があります。

  • 公開鍵認証を使ったSSH接続
    できると思いますが、Wockerのコンテナ内にid_rsaファイルを設置する必要があります。
  • FTP接続
    FTP接続は今のところできません。これもWockerのコンテナの設定で出来るようになります。

多少の制約もありますが、使いやすく実装できていると思います。
是非活用して下さい。
movefile.ymlの書き方については、こちらを参考にしました。
Wordmove の正しい設定方法 Qiita @miya0001