大人になってからの勉強

こんにちわ。
リエです。
 
まだまだ暑い日が続きますが、朝晩は少し涼しくなってきましたね。
夏の終わりを感じさみしくなっています。
 
そんなリエですが、『20代のうちにやりたいことリスト』というものを作っています。
世界制服したいとかそんな大したことは書いていなくて、○○の資格を取るとかそんな感じの内容です。
 
勉強が得意!勉強はお友達♡とかはこの先一生言うことのないほど勉強が苦手なわたしですが、自身のスキルアップのために取りたい資格があるのです。
お仕事への理解も深まりますしね。
 
でも偉そうに言いましたが、社会人になると勉強する時間を作るのって中々大変。
プライベートの時間にどう盛り込むかが悩ましいところ。
やっぱりプライベートは遊びたいし。。(小声)

 
日々のメリハリ大事よね!ということで、試験日の1.2ヶ月前からだいたい週4〜5日で1日1時間〜2時間程度勉強するやり方が自分に向いているとわかりました。
遊びも盛り込みつつ無理ない程度で。
根詰めてやると嫌になりますしね。。
 
大人になると勉強って誰かに強制されることではなく、あくまで自分の意志での勉強になるかと思います(例外もあるとは思いますが;)
自分の意思な分モチベーションの作り方ってとても難しく感じます。
でもわからなかったことがわかると楽しくて、さらに資格が取れるととても嬉しい!
そこが一つの区切りにもなりますしね。
 
弊社には「資格取得制度」があるので、この制度を使って資格取得しているメンバーがいます(*´ω`*)
※資格取得報奨金制度とは※
社員のスキルアップのため、会社が認める資格を習得した社員に対し、合格した試験の受験費用並びに報奨金を支払う制度のこと。
 
会社にそういった制度があるのはとてもありがたいです。
引き続き頑張ります(●´ϖ`●)


WordPress開発快適化計画 ~ Wordmoveの簡単導入とメリット・デメリット ~

早く冬が来ないかなとソワソワしているノリフミです。

前回、VCCW on WP-CLIにてWordPressの使い方を紹介しました。

WordPress開発快適化計画 ~ VCCW on WP-CLIを使ってみた ~

Wordmoveを使用してみて、Wordmoveだけでは割と限界があることに気づいてしまいました。

今回はもっと簡単にWordmoveを導入する方法と運用に当たってのメリット・デメリットをご紹介します。

※ 当記事では、Vagrantをインストール済みで、サーバーでWordmoveを公開しており、そのサーバーへssh接続できるものとして話を進めます。

目次

  1. Wordmoveの現状
  2. 今回の妄想
  3. Vagrantで環境構築
  4. Gitの設定
  5. Wordmoveの設定
  6. Wordmoveの使い方
  7. まとめ

Wordmoveの現状

コマンド

init (wordmoveの設定ファイルであるMovefileを生成)

pull (指定環境を元に同期する)
push (実行環境を元に同期する)

-w, [–wordpress], [–no-wordpress]
-u, [–uploads], [–no-uploads]
-t, [–themes], [–no-themes]
-p, [–plugins], [–no-plugins]
-m, [–mu-plugins], [–no-mu-plugins]
-l, [–languages], [–no-languages]

機能フォルダ単位を同期するオプション

-d, [–db], [–no-db]

DBを同期するオプション

-e, [–environment=ENVIRONMENT]

同期環境を複数設定した際に環境を指定するオプション

[–all], [–no-all]

文字通り全てを同期するオプション

メリット

  • ローカル、サーバー間などの別環境のファイルからDBまで簡単に同期できる
  • 同期コマンド(pull,push)にオプションをつけると機能フォルダ別に同期できる
  • 複数環境も設定ファイルに定義しておくと-eオプションで簡単に同期できる
  • 同期時にDBのバックアップがとられる

デメリット

  • ファイル単位の同期はできず、機能フォルダ単位でしか同期できない
  • ファイルの差分は無視される(恐らく更新日時の新しいものが同期される)
  • 差分が無視されて同期されるため、古いファイルは消滅する
  • 間違えてpullやpushしたら取り返しがつかない

今回の妄想

wordmoveとgitを使った管理を表した画像

Wordmoveは複数人開発の際、上記デメリットの点を引き起こしがちです。
今回の妄想ではWordmoveの役目は主にDBの同期とし、ソース管理はgitに任せます。

 

Wordmoveで管理する項目

  • アップロード系の変更 ( -u )
  • プラグイン系の変更 ( -p )
  • language系の変更 ( -l )
  • WordPress自体のバージョンアップ ( –all )
  • その他DBの変更 ( -d )

テーマ以下は基本的にDBに影響を与えないため、git管理とします。

 

作業の基本的な流れ

  • ローカルに環境構築
  • ローカルで作業を進める
  • stagingに作業分を同期し、テストする
  • productionに作業分を同期し、確認する
  • gitにcommitする

複数人開発時、上記工程後の他メンバーは

Vagrantで環境構築

# 適当なフォルダを生成
mkdir wordpress
cd wordpress

# Vagrantfileを生成し設定する
vim Vagrantfile

# nginx設定ファイルを生成
vim nginx.conf

# 設定したipとドメインをhostsに追記
sudo sh -c 'echo "192.168.33.123 example.com" >> /etc/hosts'

# 設定問題なければVagrant起動
vagrant up

….

…..

ここ割と長いですが、最後まで無事終了すれば環境構築完了です。

 

ブラウザからアクセス後、サイト情報を入力し初期設定を完了させてください。

上記構成だと

サイトURL : http://example.com
mysqlユーザー : root
rootユーザーパスワード : root
mysqlデータベース : wordpress

になります。

Gitの設定

初回登録の場合

# Git管理を始める
git init

# 全てをGitに登録する
git add --all

# 確定させる。適宜mオプションでコメント設定
git commit -m 'wordpress install'

# 初めてのpushなので先にRepositoryの場所を決める
git remote add origin GITURL

# branchを設定してpushを実行する
git push -u origin master

決まり文句ですね。

既存Repository使用の場合

# srcディレクトリ削除
rm -rf src
# Repositoryをsrcの名前でclone
git clone GITURL src

 

※ GITURLは適宜Gitの対象RepositoryのURLに変更してご利用ください

Wordmoveの設定


# Wordmove設定ファイル修正
vim src/Movefile

コメントがある箇所と、local部も調整した場合は適宜設定してください。

※ local + 1環境(productionのみなど)の場合、wordmove push or pull時にeオプションにて同期先環境を選択する必要はなくなります。

Wordmoveの使い方

Vagrant内にWordmoveをインストールしているため、Vagrant内のドキュメントルートまで移動する必要があります。

# Vagrant内に接続
vagrant ssh
# ドキュメントルートまで移動
cd /vagrant/src

使用例1(プラグインをインストールし、テーマ以下の調整を行なった場合)

  • 改修者がstagingに同期し確認後、productionへ反映、最後にgitに反映
    wordmove push -e staging -dpt
    wordmove push -e production -dpt
    git commit & push
  • 他メンバーがデータ同期
    wordmove pull -e production -dp
    git pull

使用例2(ブログ引っ越しにて過去記事の画像付きインポートを行なった場合)

  • 改修者がstagingに同期し確認後、productionへ反映
    wordmove push -e staging -du
    wordmove push -e production -du
  • 他メンバーがデータ同期
    wordmove pull -e production -du

その他コマンドについては、上記をご参考ください。

まとめ

これだけ長々と書きましたが、、、
一人の場合はWordmoveだけで管理し、キリのいいところでgitに反映すれば問題ないと思います。

複数人の場合はWordmoveを使った際に、予期せぬ消滅が多々あるので、DB関連の同期のみにしたほうがいいですよ!

というお話でした。

最後までご覧いただきありがとうございました!


夏っぽいことといえばの○○

こんにちわ。
リエです。
 
少し前(でもないか)NintendoSwitchを手に入れたわたしですが、

話題のNintendoのアレをゲットしました


 
スプラトゥーン2を予約し発売日にゲットしていましたが、ずっと手付かずのまま放置していました。
最近やっと遊ぶようになったのですが、楽しい&難しいです(^q^)
1日1レベル上げるのを目標に頑張っています。
 
でもゲームばっかりせず夏っぽいこともちゃんとやっています。
それは浴衣を着ること。
 
ずっと祖母が母親に作った浴衣を受け継ぎ大事に着ていたのですが、うん十年前のものだったのでそろそろ新調してもいいんじゃない?となり、気に入ったものを見つけれたということで新調しました。
浴衣が好きで毎年夏は着ています。(でも着付けはできないのでそこはプロにお任せ/(^o^)\)
年に数回、しかも夏にしか着れないので浴衣ってちょっと特別ですよね。
 
浴衣を見たときに帯締めも一目惚れしたものがあり、一緒に新調したのですが、これ何結びかわかりますか?(アップ失礼します)

加賀の伝統工芸「加賀水引」です。
 
伝統工芸のものを身につけることで、さらに身が引き締まります。
もう今年は着る機会はないと思うので、また来年着るときまで大事に保管したいと思います。


Ubuntuに最新のnginxをインストール

時々しかしないので忘れてしまう備忘録シリーズ

Ubuntuへ最新のnginxのインストール

PGPキーを追加

$ curl -s https://nginx.org/keys/nginx_signing.key | sudo apt-key add –

リポジトリ追加

$ sudo sh -c “cat << EOS >> /etc/apt/sources.list.d/nginx.list
deb http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx
EOS

nginxインストール

$ sudo apt-get update && sudo apt-get install nginx

 

インストールされたバージョンやオプションを確認

$ nginx -V 2>&1 | sed ‘s/ –/\n –/g’

nginx version: nginx/1.13.4
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments:
–prefix=/etc/nginx
–sbin-path=/usr/sbin/nginx
–modules-path=/usr/lib/nginx/modules
–conf-path=/etc/nginx/nginx.conf
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–pid-path=/var/run/nginx.pid
–lock-path=/var/run/nginx.lock
–http-client-body-temp-path=/var/cache/nginx/client_temp
–http-proxy-temp-path=/var/cache/nginx/proxy_temp
–http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
–http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
–http-scgi-temp-path=/var/cache/nginx/scgi_temp
–user=nginx
–group=nginx
–with-compat
–with-file-aio
–with-threads
–with-http_addition_module
–with-http_auth_request_module
–with-http_dav_module
–with-http_flv_module
–with-http_gunzip_module
–with-http_gzip_static_module
–with-http_mp4_module
–with-http_random_index_module
–with-http_realip_module
–with-http_secure_link_module
–with-http_slice_module
–with-http_ssl_module
–with-http_stub_status_module
–with-http_sub_module
–with-http_v2_module
–with-mail
–with-mail_ssl_module
–with-stream
–with-stream_realip_module
–with-stream_ssl_module
–with-stream_ssl_preread_module
–with-cc-opt=’-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC’
–with-ld-opt=’-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,–as-needed -pie’

$ dpkg -s nginx

Package: nginx
Status: install ok installed
Priority: optional
Section: httpd
Installed-Size: 2771
Maintainer: Sergey Budnevitch <sb@nginx.com>
Architecture: amd64
Version: 1.13.4-1~xenial
Provides: httpd
Depends: libc6 (>= 2.14), libpcre3, libssl1.0.0 (>= 1.0.2~beta3), zlib1g (>= 1:1.1.4), lsb-base (>= 3.0-6), adduser
Conffiles:
/etc/default/nginx e2b1ae0f31c6d03d3305ef526b0ba3b5
/etc/default/nginx-debug 719f6f9981039a05a64c201a4b1db19f
/etc/init.d/nginx 7224be660d7c280a775bd6eca2547df4
/etc/init.d/nginx-debug 57e8f64b4f464fc13701c6b22240ac10
/etc/logrotate.d/nginx a4da44b03e39926b999329061770362b
/etc/nginx/conf.d/default.conf 411a0b28ff9b21a1cd94a6cb2ae2217d
/etc/nginx/fastcgi_params 4729c30112ca3071f4650479707993ad
/etc/nginx/koi-utf 3e338aca6a53a5420fc791b5ef86f64c
/etc/nginx/koi-win bfa0b80381fed2b1dfcf617b0ba204ec
/etc/nginx/mime.types bd837e7b34f5c9b8d89957d0527f0d44
/etc/nginx/nginx.conf f7984934bd6cab883e1f33d5129834bb
/etc/nginx/scgi_params df8c71e25e0356ffc539742f08fddfff
/etc/nginx/uwsgi_params 88ac833ee8ea60904a8b3063fde791de
/etc/nginx/win-utf 3749ffe19bedd842eb87e83d544e5ce6
Description: high performance web server
nginx [engine x] is an HTTP and reverse proxy server, as well as
a mail proxy server.
Homepage: http://nginx.org

インストールされたファイル一覧表示

$ dpkg -L nginx

/.
/etc
/etc/nginx
/etc/nginx/uwsgi_params
/etc/nginx/mime.types
/etc/nginx/win-utf
/etc/nginx/scgi_params
/etc/nginx/fastcgi_params
/etc/nginx/koi-win
/etc/nginx/koi-utf
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/default
/etc/default/nginx
/etc/default/nginx-debug
/etc/init.d
/etc/init.d/nginx
/etc/init.d/nginx-debug
/etc/logrotate.d
/etc/logrotate.d/nginx
/usr
/usr/lib
/usr/lib/nginx
/usr/lib/nginx/modules
/usr/sbin
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/nginx.8.gz
/usr/share/doc
/usr/share/doc/nginx
/usr/share/doc/nginx/CHANGES.ru.gz
/usr/share/doc/nginx/README
/usr/share/doc/nginx/changelog.Debian.gz
/usr/share/doc/nginx/changelog.gz
/usr/share/doc/nginx/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/nginx
/var
/var/cache
/var/cache/nginx
/var/log
/var/log/nginx
/etc/nginx/modules

起動

$ sudo service nginx start

停止

$ sudo service nginx stop

状態確認

$ sudo service nginx status


AnalyticsチェックをSlack連携でカンタンにしてみた

Google先生にはいつもお世話になっております。
マエダです。
 
ウェブサイト分析でGoogle Analyticsを利用させていただいております。
Analyticsは最近ホーム画面がリニューアルされたりしてます。
http://web-tan.forum.impressrd.jp/e/2017/06/22/26069
 
詳細分析ではなく日々のPVチェックだけしたい社内のヒト向けにSlack連携をしてみました。
設定手順をご紹介します。
 
1) Analyticsデータを取得する
Spreadsheetにアドオンを入れてAnalyticsデータ取得しましょう。
参考サイト:
https://tonari-it.com/google-analytics-spreadsheet/
 
アドオン入れる
メニュー [アドオン]-[Google Analytics]-[Create new report]をクリック。
Metrics 「Pageviews」を指定してみる。
Dimensions 「Date」を指定してみる。
メニュー [アドオン]-[Google Analytics]-[Run reports]をクリック。
メニュー [アドオン]-[Google Analytics]-[Schedule reports]をクリックして実行時間設定。
 
2) Slackへ投稿するGoogle Apps Script(GAS)を準備する
https://drive.google.com/drive/my-drive
 
左上にある[新規]-[その他]-[Google Apps Script]をクリック。
※ Google Apps Scriptファイルを作成したことがない場合は[新規]-[その他]-[アプリを追加]より「Google Apps Script」を検索追加してください。
 
プロジェクト名 「Daily Analytics Report」 ← 適宜ご変更ください。
 

* Slack API トークン
https://api.slack.com/docs/oauth
以下サイトがわかりやすくトークン発行手順を紹介されてます。
http://www.utali.io/entry/2016/10/03/004421
 
Legacy tokensもあったりします。。。
ご利用はオヌヌメしません。。。”for testing and development”
https://api.slack.com/custom-integrations/legacy-tokens
 
* 投稿先チャンネル名
その名の通り、ご利用のSlackの投稿先のチャンネル名を指定してください。
* 投稿名
Slackに投稿される名前を指定してください。
* スプレッドシートキー
手順1で作成したSpreadsheetのURLのあのあたりの文字列を指定してください。
https://docs.google.com/spreadsheets/d/(このあたりの文字列)/edit#gid=0
 
 
3) 作成したGASのトリガーを設定して自動実行
メニュー [編集]-[現在のプロジェクトのトリガー]をクリック。
実行「postMessage」
イベント「時間主導型」「日タイマー」「(お好みの時間帯)」を指定して[保存]をクリック。
 

 
カンタン3ステップでGoogle AnalyticsとSlackを連携することができました!
 
 
 
え!?3ステップじゃないって!?
 
 
まぁまぁ。。。ヾ(´ε`;)ゝ
 
 
 
上記はあくまで簡易チェックなので詳細チェックはAnalyticsコンソールをご利用ください。<(_ _)>
 
 
本文とアイキャッチイメージは特に関連性はありません。