curl コマンド

古い API の動作確認をするので、curl の使い方をメモしておく。

$ curl [opts] [url]

基本はこんな感じ。

オプション

$ curl -X <メソッド>

HTTP のメソッドを指定。デフォルトは GET。POST だとか PUT だとか DELETE だとかを指定する。

$ curl --data-urlencode <データ>

URL エンコードしてデータを送るとき(Content-Type が application/x-www-form-urlencoded のとき)に使う。

他にもあれば追加しよう。

早めにやりたいこと ~ VVV、node.js と npm、postfix と dovecot など

やりたいことが溜まってきた。

Varying Vagrant Vagrants

VVV と呼ばれているもの。WordPress をちゃんといぢれるようにならなければ。

node.js と npm

まだ node.js を使いこなせているとは言えない。node モジュールをつくるとかもきちんとできるように。

postfix と dovecot

複数のドメインを収容するメールサーバを。

とりあえず、忘れないように。そして、自分を追い込む。(笑)

nodist

新しいノート PC の環境を整えているが、node.js をどう設定してよいか調べてみた。

nodist というのが結構使われているという感じだった。Ubuntu とか MacOS なら anyenv でやっていたのだけれど、Windows だけ違うというのが今ひとつだけど、扱いやすく情報が多いのが良い。

ということで、ここからダウンロードして、インストールする(今は v0.8.8 だった)。
デフォルトでは C:\Program Files (x86)\nodist にインストールするようになっていたが、いろいろなバージョンが入るはずなので、C:\nodist に入れる。で、実行すると 7.2.1 が入っているらしい。

> nodist
(x64)
> 7.2.1 (global: v7.2.1)

最初は 7.2.1 が入っているようだ。

>nodist dist

上記で、インストールできるバージョンを一覧表示。目的は Lambda の開発なので、8.10 6.10.3 4.3.2 あたりをインストールしておく。デフォルトは 6.10.3 にしよう。

> nodist + 4.3.2
> nodist + 6.10.3
> nodist + 8.10.0
> nodist 6.10.3

で設定。

あとはいろいろ使って覚えていく。

Windows の PackageManagement

新しいノート PC に諸々のソフトウェアをインストールするのに PackageManagement を使ってみる。

PowerShell で操作するが、「管理者」で立ち上げる必要がある。

Set-ExecutionPolicy RemoteSigned -Scope Process を実行して、ローカルのスクリプトと、リモートなら署名されているスクリプトを実行できるようにする。

Find-PackageProvider でパッケージプロバイダの一覧。Get-PackageProvider で設定済みのパッケージプロバイダ一覧。この操作中に nuget というプロバイダを入れろと言われたので追加した。
Find-Package -Name Firefox すると、そんなのないと言われる。

あと、chocolatey というプロバイダを追加する。Install-PackageProvider ChocolateyGet で追加。chocolatey の方は使わない方が良いようです。途中で、

Choco.exe is required to continue
ChocolateyGet is built on Choco.exe. Do you want ChocolateyGet to install Choco.exe from
‘https://chocolatey.org/install.ps1’ now?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y

と聞かれたので Y で進めた。
これで Find-Package -Name Firefox でちゃんと情報が出るようになる。

実際にインストールを行う。

> Find-Package -Name “*chrome*” -Provider ChocolateyGet

Name Version Source Summary
—- ——- —— ——-
GoogleChrome 66.0.3359.18100 https://www.c…
chromium 66.0.3359.181 https://www.c…
google-chrome-x64 47.0.2526.81 https://www.c…
adblockpluschrome 1.12.4 https://www.c…
selenium-chrome-driver 2.38 https://www.c…
<SNIP!>
secureshell-chrome 0.8.43 https://www.c…
google-play-music-chrome 1.390.0 https://www.c…
windows-defender-browser-pr… 1.62 https://www.c…
chrome-remote-desktop-host 1.0 https://www.c…
dropbox-for-gmail-chrome 1.1.6 https://www.c…

たくさん出てきたが、GoogleChrome を入れてみる。

> Install-Package -Name GoogleChrome -Provider ChocolateyGet

パッケージは、信頼済みとマークされていないパッケージ ソースから取得されています。
‘https://www.chocolatey.org’ からソフトウェアをアンインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は “N”): y

Are you sure you want to perform this action?
Installing package ‘GoogleChrome’. By Installing you accept licenses for the package(s). The package possibly needs to
run ‘chocolateyInstall.ps1’.
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は “Y”): y

Name Version Source Summary
—- ——- —— ——-
GoogleChrome v66.0.3359.18100 https://www.c…

完了。スタートメニューにも追加されている。大丈夫みたいだ。

入れたものリスト

  • GoogleChrome
  • jdk8
  • 7zip.install
  • git.install
  • skype
  • adobereader
  • firefox
  • XnViewMP.install

AWS Cloudfront のキャッシュ生存期間を変更する

AWS Cloudfront のキャッシュの生存期間を変更する。

CloudFront Distributions から Distribution をクリックして、開いた画面で Behaviors タブを選択。Create Behavior をクリックして開いた画面で設定を作成する。

この画面の、Path Pattern と Object Caching と Minimum TTL、Maximum TLL、Default TTL を設定する。

Path Pattern は「hoge/*」の場合、s3 object の key が「hoge/」で始まるものに対しての設定になる。例えば「hoge/fuga/image.png」など。

Object Caching を Customize にして Minimum TTL・Maximum TLL・Default TTL を設定する。300 と入力すると 300 秒で 5 分。

注意点としては、Behavior の並び順。上から評価されて、最初にかかったものが適用されるようである。

AWS Simple Email Service でメールを受信してみる

AWS のドキュメント(Receiving Email with Amazon SES)を読みながら Simple Email Service (SES) でのメール受信を試してみた。

ドキュメントを自分のドメインに置き換えて進めていくが、Step 3: Set up a Receipt Rule の中で、キャプションが「Create a Receipt Rule」とあったが、実際は「Create Rule」という違いがあった。catchall みたいなことをするということが書かれていたので、画面が違うのかとちょっと迷った。

とりあえず、catchall と適当なアドレスを設定して試してみたが、ちゃんと S3 に保存された。

準備 OK!

Let’s Encrypt を使う

Let’s Encrypt で証明書を入手した。手順等を諸々。

まず、ACME という仕組みでサーバとやり取りして証明書を入手する(らしい)ので、その準備。certbot が特定のディレクトリにファイルを格納して、サーバ側はそのファイルを取得する。OK なら certbot に証明書を送ってくるので、それを保存する、というのが流れ(らしい)。

複数のドメインを格納するので、Let’s Encrypt 用の設定ファイルをつくっておく。

root で指定しているのがサーバがアクセスしてくるパス。
サイトの設定ファイル(sites-avalable の中のファイル)も編集。

letsencrypt.conf を include している。他のドメインも同様に設定してやって、

$ sudo apt install certbot
$ sudo certbot certonly --webroot -w /path/to/letsencrypt -d develop.hoge.com -d fuga.com -d www.fuga.com

これで証明書が取得される。以下のような出力があるはず。

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/develop.hoge.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/develop.hoge.com/privkey.pem
Your cert will expire on 2018-08-19. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
“certbot renew”
– Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

https の設定は、サイトの設定ファイルに。

必要そうな部分はこんなものでしょうか。TLS を受け付けないようにしている(つもり)。

あとは crontab で自動で更新させる。週 1 回確認。root の crontab に書いた(つもり)。

ちなみに sudo /usr/bin/certbot renew --dry-run で更新はせずに動作チェックできる。

参考:コマンド解説

nginx + php-fpm 上で WordPress のパーマリンクを使う

WordPress の設定が多分終わった。

Ubuntu 18.04 上で、nginx, php7.2-fpm, mysql-server はパッケージをそのまま使っている。

try_files が 2 回あるだとかいろいろ言われたので「include snippets/fastcgi-php.conf;」の行をコメントアウトして、中身をこちらに移植した。多分動いている。