とーますメモ

Ruby on Rails / Goなどの学習メモ

【Nginx】同一サーバで複数サイトを運営し、ログをサイト毎に分ける

自分用メモ。

access_logとerror_logはserverコンテキスト内に以下のように記述

access_log   /var/log/nginx/{service_domain}.access.log warn;
error_log   /var/log/nginx/{service_domain}.error.log;

サイト毎に新たにディレクトリを作成するのではなく、
あくまでもnginxのログはすべて/var/log/nginx内で管理する。
こうすることで、/etc/logrotate.d/nginxのデフォルトである「/var/log/nginx/*.log」の設定がそのまま使用できる。

上記の記述をサイト毎に記述し、nginxを再起動すると記述した通りの{service_domain}.access.logと{service_domain}.error.logができるが、これらのファイルの所有権とグループがroot:rootで作成されてしまう。

この記事を見ると、バグ?みたいな感じで書いてあるが詳細は不明。
centos 7 - Nginx creates log files owned by root instead of specified user - Super User

ただ以下のコマンドで、ログを再読込してあげるとnginx.confのuserディレクティブで指定したユーザが所有者になる。ただしグループはrootのまま。

$ nginx -s reopen

なので、結局はchownコマンドで直してあげるしかないのか...

MacでNode.jsをインストールする

Macでインストールする場合は、brewでnodebrewというnode.jsのパッケージマネージャーを入れてNode.jsをインストールする方向が良さげ。

導入

nodebrewのインストール

$ brew install nodebrew

インストール可能なバージョン一覧

$ nodebrew ls-remote

Node.jsインストール

$ nodebrew install-binary v{{バージョン番号}}
または安定版を使用する場合は
$ nodebrew install-binary stable

インストールされたバージョン一覧

$ nodebrew ls

使用するNode.jsのバージョンを指定

$ nodebrew use v{{バージョン番号}}

環境パスを通す

$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile

使用確認

$ node -v

[参考]
MacにNode.jsをインストール - Qiita

【Shopify】Mailchimpを使ってみた

まずはアカウント作成。参考にしたのは以下のサイトさん

takapon.net

注意するのはアカウント作成時、会社名と住所を入力する必要があること。
この会社名と住所はメルマガに強制的に入り、消せないためビジネス用の住所がない方は注意が必要。

また無料プランだと、メルマガやLPのフッターにはMailchimpのロゴが入るのでこれも注意。

1)送信ドメイン認証

迷惑メール判定を回避するために必要。兎にも角にもこの設定がまずは必要。
Website => Domainsから設定する。
詳細は以下を参考。

[参考]
https://takapon.net/mailchimp_spf_dkim/
https://plus-sum.jp/mailchimp-setting/

約2時間ぐらいで認証された。

2)Audience = 顧客リスト(メール送信先)の作成

・CSVで一括連絡先インポートも可能
・顧客セグメンテーション機能
・登録フォーム作成

[参考]
takapon.net
takapon.net
takapon.net

3)Campaigns(ニュースレター・メールマガジン)の作成

マージタグ

・【Send a Test Email】でテストメール送信も可能
・時差に合わせた配信設定ができる(有料プラン)
・成約率が高い時間帯に自動的にメールを送信してくれる(有料プラン)

4)他にできること

レポート

開封率、クリック率、退会率の測定や、メールアドレス毎の開封回数まで簡単に知ることが可能です。
・A/Bテストができる(5000件以上のリストが必要)(有料プラン)

ランディングページの作成

メールアドレスの収集には、WordPressにフォームを設定するパターンが一般的だと思うが
Mailchimpでランディングページを作り、そこにフォームを設定し収集することもできる。

LPに独自ドメインを設定できるので、設定しておくこと。
自分の場合は、サブドメインを設定。
https://mailchimp.com/help/connect-domain/

DNS Providerによるが、自分の場合は大体15分ぐらいで認証完了メールが届いた。

LPと自動メール機能を組み合わせると強力な自動集客機能を作成できる。以下は一例。
(1) LPページにフォームを付ける。またフォーム送信されたときに自動でつけられるタグの設定をする。
(2) 自動メールを(1)で指定したタグが付けされたタイミングで送るように設定する。また
送信後に「送信済み」タグを「Use advanced settings」から設定できるので設定する。
(3) イベント開催日、X日前、Y日前に自動メールを送信する設定をスケジュール設定しておく。

[参考]
https://takapon.net/mailchimp-lp-creation/
(Mailchimpでメルマガ)クリニックや治療院で使える見込み患者を集めるためのランディングページ作成。
MailchimpのLP作成機能の使い方

Automation = ステップメール機能

RSSフィードが存在するブログから自動的に新着情報メールを送ることができる。すごい!
takapon.net
takapon.net

[参考]
https://takapon.net/mailchimp-scenario-branching/
https://plus-sum.jp/mailchimp-step-mail-01/

・スマホアプリで解析

【Shopify】Theme Kitの使ってみて思ったこと

自分用メモ。

インストールはbrewでコマンドでインストール可能。
詳細は以下を参考にした

(公式) https://shopify.github.io/themekit/
https://qiita.com/t-kurasawa/items/21f887fea399c0d07529
https://www.non-standardworld.co.jp/22987/

使ってみた所感

このツールを使ってよかった思ったことは単純に、Gitによる管理ができること。
liquidファイル群をお気に入りのEditorで編集し、watchコマンドでリアルタイムに編集できるのも良い。
テーマファイルを頻繁に更新する場合は、必須のツールだと思う。

失敗したこと

1) getコマンドとdownloadコマンドの違いを、ちゃんと把握していなかったこと

getコマンドもdownloadコマンドもテーマファイルをダウンロードするのに使えるコマンドだが以下の違いがある。

[getコマンド]

・全てのファイルをダウンロードすることしかできない。個別にファイルをダウンロードすることができない。
configファイル(config.yml)が上書きされる

[downloadコマンド]

・全てのファイルをダウンロードすることもできるし、個別にファイルをダウンロードすることもできる。
・configファイル(config.yml)は上書きされない

自分の場合、getコマンドを使い続けていたため、使う度にconfig.ymlが上書きされ、かなり煩わしかった。
公式ドキュメントを見ても、getとdownloadの使い分けの詳細は書かれていないが実際に想定されている使い方としては以下だと思う。

(1) listコマンドでテーマファイルのID一覧を調べる。
(2) getコマンドでテーマファイル一式を全てダウンロードする。
(3) config.ymlもダウンロードされるので、以下のページを参考にし設定
shopify.dev

(4) これ以降ファイルをダウンロードしてくる場合は、getコマンドではなく、downloadコマンドを使用する

2) deployコマンドを使用されると無慈悲になんのログもなく上書きされる。

自分のやらかした経験なのだが、Shopifyのテーマ管理画面から「Customize」を行うと、その設定内容は「config/settings_data.json」に保存される。そしてdeployコマンドに特定ファイルを指定せずにそのままコマンドを打つと、全てのファイルがなんの警告も、何のファイルをアップロードしたかのログも出ずに全てアップロードされる。

ログがでないため、その日は何も気づかずに翌日、テーマのCustomizeで設定したデータが全て消えていて、愕然とした...という経験がある。なのでdeployコマンドを使用する前は、必ず以下のステップを踏むことにしている

(1) downloadコマンドで全てのファイルをダウンロードし、更新されたファイルがないかチェックする。
(2) deployコマンドを使用するときは、できるだけ特定ファイルを指定して、deployコマンドを使用する。

理想的な使い方

今後は、Shopifyテーマファイルを購入後、このツールを使うときは以下の使い方を行う。

[初期設定]
(1) テーマファイルを購入(テーマファイル名は仮名"Theme")とする
(2) "Theme"を複製し、以下の用途で使用する
① "Theme (production)" (本番環境用)
② "Theme (development)" (開発環境用)
③ "Theme (DON'T TOUCH ME)" (バックアップ用)

(3) listコマンドでテーマファイルのID一覧を調べる。
(4) getコマンドで①のテーマファイル一式を全てダウンロードする。
これ以降ファイルをダウンロードしてくる場合は、getコマンドではなく、downloadコマンドを使用する。

(5) config.ymlを設定(productionとdevelopmentの設定。設定名はそれぞれproductionとdevelopmentにする)
(6) (4)で取得したファイルをGit管理する。(config.ymlはgitignoreに追加)

[開発時]
(1) downloadコマンドで"Theme (production)"から最新のファイルを全取得。
(2) (1)で変更があればGitでコミットまたはプッシュしておく。
(3) (1)のファイルを"Theme (development)"にdeployする
(4) theme open --env="development"で開発用のテーマが画面をブラウザで開く
(5) theme watch --env="development"でリアルタイムで編集したコードが開発環境用テーマにアップロードされるようにする。
(6) 開発が終了し、ブラウザで確認して問題なければ、theme deploy --env="production"コマンドに、デプロイするファイル名を指定して、本番環境にデプロイする。
(7) 本番環境でも問題なければ、Gitコミットまたはプッシュする

ZohoメールでSMTP設定を行ってみる

自分が管理している一部のWordPressでは、メール送信にWP Mail SMTPというプラグインを使用している。
今回このプラグインにZohoメールのSMTP設定を行い、メールを送信してみた。

SMTPの設定は、Zohoのページを参照し、設定は以下のように行った。
https://www.zoho.com/jp/mail/help/zoho-smtp.html

Mailer) "Other SMTP"を選択
SMTP Host) smtp.zoho.com
Encryption) TLS
SMTP Port) 587
Authentication) ON
SMTP Username) Zohoにログインするときのメールアドレス
SMTP Password) SMTP Usernameのパスワード
⭐ただし二段階認証を使用している場合は、Zohoのアカウントページ => セキュリティ => アプリのパスワードから
アプリ固有のパスワードを作成し、それを使用しないといけない。

SMTP/送信サーバーを設定する際には、認証用のメールアドレスと正しいパスワードを入力する必要があります。2段階認証を有効にしている場合、他のデバイスのアカウントを設定するにはアプリケーション固有のパスワードが必要になることがあります。

SMTP設定|Zoho Mail


自分の場合は、このケースだったの、アプリケーション固有のパスワードを設定した。

これで設定完了

Zohoメール内で可能なセキュリティ設定と迷惑メール設定

前回の記事からの続き
thoames.hatenadiary.jp

SPF

送信元IPアドレスが入ったSPFレコードをDNSに入れることで、受信先のサーバが送信元IPアドレスがSPFレコードに登録されているかを確認し、詐称(なりすまし)メールなのかを確認する仕組み。
インターネット用語1分解説~SPFとは~ - JPNIC

DKIM

電子署名を使って改竄の有無を確認できる仕組み。
送信者はDNSに公開鍵を登録し、自分のみ知っている秘密鍵でメールに電子署名を付与する。受信側がDNSに公開鍵を問い合わせて電子署名を検証する。
SPF, DKIMの特徴と違い | SendGridブログ

DMARC

ドメイン所有者(送信側)がメールの認証失敗時の対処方法をDMARCに対応している受信側に指示することができる仕組み。SPFまたはDKIMが設定されている前提で設定可能。
この設定を行うことで、なりすましメールの送信元IPなどが記載されたレポートを受信側から受け取ることができる。

通常、SPFおよびDKIMを用いて送信元ドメインを認証する際には、 認証に失敗したメールをどのように取り扱うかは、受信者の判断に任せられています。 これまでは、送られたメールがなりすましメールだったとしても(SPF・DKIMの認証に失敗した場合でも)、受信側が「受信する」というポリシーだった場合、なりすましメールは受信者の意向に沿って、そのままユーザのメールボックスで受信されていました。

DMARCとは?送信ドメイン認証の仕組みを理解して、なりすまし対策をしよう! | メルラボ

対象方法は以下の3種類がある
1)何もしない(none)
2)隔離をする(quarantine)
3)受信拒否をする(reject)

DMARC検証に応じた2種類のレポートを受け取る設定もでき、なりすましメールの頻度や送信元IPなどの解析に活かすこともできる。
検証結果の統計情報を示した「ruaレポート」と、「隔離」または「拒否」した場合に送信される「rufレポート」がある。
送信ドメイン認証技術「DMARC」によるなりすましメール対策とDMARCレポートの活用 |

二段階認証

ダッシュボードから全体に対して二段階認証を付与できるし、
「ユーザーの詳細」=> 「2段階認証」からは個別にも設定できるよう。

パスワードポリシー

自分の中で色んなサイトを参考にし以下のルールにした。

1) パスワードの有効期限(日数):設定無し
パスワードの変更回数を多くしても対策効果は無いとのこと。
参考: 総務省が「パスワードの定期変更は不要」に転換!安全性を高めるパスワードの作り方は? - U-NOTE[ユーノート] - 仕事を楽しく、毎日をかっこ良く。 -

2) 最小文字数: 12文字
3) パスワード履歴の最小数: 設定無し。1)を設定無しにしているため。
4) 最小文字数(特殊文字): 2文字
5) 最小文字数(数字): 3文字

迷惑メール設定

1) SPF

スパムやウイルスを含んだメールの可能性が高いが、念の為に「永続的な拒否」ではなく
個人設定は「検疫に移動」を設定。Soft failも同じく。

2) DKIM

スパムやウイルスを含んだメールの可能性が高いが、念の為に「永続的な拒否」ではなく
個人設定は「検疫に移動」を設定

3) DMARC

DMARC導入時は、DMARC検証に失敗(フェール)するケースが、色々とあるため最初のポリシーは「none」で様子を見て、レポートを見て
逐次、隔離または拒否するといったポリシーに段階的に変更していくほうが良さそう。
そのため個人設定は「なし」を設定

どれくらい自社ドメインがなりすまされているか、ご存知ですか? | IIJ Engineers Blog

MacのThunderbirdをダウングレードする

現時点で最新の78では、Enigmailというアドオンがうまく動作しないことが判明したため
動作確認ができていた68に戻す作業を行ったので、作業記録をとる。

1) プロファイルのバックアップ

超重要。[Thunderbirdを起動]→[メニューバーのヘルプ]→[トラブルシューティング情報]内の[プロファイルフォルダ]からFinderを開けるので
その中のプロファイルをバックアップする。

2) 指定のバージョンをダウンロードし、上書きインストール。

以下からダウンロードし、上書きインストール。
Directory Listing: /pub/thunderbird/releases/

3) 起動する。

普通に起動すると「古いバージョンの Thunderbird を起動しました」というエラーが表示され、新しいプロファイルを作らない限りThunderbirdが開けない。
そのため、上書きインストール後の初起動時は、Macでは以下のコマンドを叩いてから、プロファイルマネージャーを起動させ、既存のプロファイルを選択して
Thunderbirdを起動させる必要がある。コマンドは以下。

$ /Applications/Thunderbird.app/Contents/MacOS/thunderbird -profilemanager --allow-downgrade

これでThunderbirdは起動できる。

4) Enigmailを再インストール

自分の場合、EnigmailもThunderbird68に対応させたバージョンにダウングレードする必要があったので
68に対応したものを以下のサイトからダウンロードし、インストールした。

Enigmail :: Versions :: Add-ons for Thunderbird


[参考]
Thunderbird ダウングレード -Mac- | Kinchan's Blog
Mozilla、Thunderbird 68.0デスクトップ向け最新版をリリース。 | moshbox
How can I install a usable version of Thunderbird over 68.3.1? | Thunderbird Support Forum | Mozilla Support
h.ogi blog (jp): Thunderbird 78.xの注意点