write ahead log

ロールフォワード用

Windows11のエクスプローラが開くのが遅いのでなんとかする

アップデートしてからとにかく遅くてイライラしていた。

フォルダオプションを開いて「エクスプローラーで開く」の部分を「PC」にしたらめちゃ早くなった。

あと「プライバシー」のチェックをすべて外すのも効く気がする。

フォルダオプション

Dockerで立てたリバースプロキシのnginxでrequestのログを全部出したい

ザクっとやりたい.

nginxにはdebugモードというのがあるらしい.

blog.kasei-san.com

Dockerで雑にやりたい.

以下のOfficialイメージのドキュメントに解説があった.

https://hub.docker.com/_/nginx

docker-composeでやるときには以下のように書けばよいらしい.

設定ファイルのvolumeマウントは私が追記した.

web:
  image: nginx
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro
    - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
    - ./docker/nginx/log/:/var/log/nginx/
  command: [nginx-debug, '-g', 'daemon off;']

あとはnginx.confを以下のように書き換える.

#error_log  /var/log/nginx/error.log notice;
error_log  /var/log/nginx/error.log debug;

そうするとerror.logにいっぱいログが出てきてありがたくなる.

シェルスクリプトで一時的にaws-cliのプロファイルを設定したい

こんな感じで環境変数を使うと一時的に設定できるらしい.

export AWS_ACCESS_KEY_ID=""
export AWS_SECRET_ACCESS_KEY=""
export AWS_DEFAULT_REGION=""

なんかいっぱいあったけどクラスメソッドのページみたらいっぱい書いてあった。

dev.classmethod.jp

PHPでHTTPリクエストをダンプするやつ

定期的に書くのでベタにメモっとくことにした.

アクセス内容をlogs/log.txtへ吐き出す.

ディレクトリを作って権限の割り当てだけ忘れないように.

<?php
date_default_timezone_set ('Asia/Tokyo');

$now = date("YmdHis");
$out = "";
$out .= "===========================================\n";
$out .= $now . "\n";
$out .= "===========================================\n";

$out .= "-------------------------------------------\n";
$out .= "HEADERS\n";
$out .= "-------------------------------------------\n";

foreach (getallheaders() as $key => $value) {
        $out .= "$key : $value\n";
}

$out .= "-------------------------------------------\n";
$out .= "GET\n";
$out .= "-------------------------------------------\n";
foreach ($_GET as $key => $value) {
        $out .= "$key : $value\n";
}

$out .= "-------------------------------------------\n";
$out .= "POST\n";
$out .= "-------------------------------------------\n";
foreach ($_POST as $key => $value) {
        $out .= "$key : $value\n";
}

file_put_contents("logs/log.txt", $out);

ついでにdocker-compose.ymlも.

PHPのイメージは適当.

version: "3"
services:
  php:
    image: php:7.2-apache
    container_name: php
    ports:
      - 8000:80
    volumes:
      - ./docker/php/src:/var/www/html

追記

3回目使ったのでプロジェクトにした。

github - http-request-dumper

Linuxのメールコマンドで保存したメールから添付ファイルを取り出したい

まぁあまりないケースではある。

メールコマンドの基本的な使い方は以下。

twinbird-htn.hatenablog.com

で、添付ファイルが来ていたのでこれを開きたい。

1 まずはメールを開く

$ mail
[一覧が出る]
& 1
↑では1番のメールを開く

2 メールを保存する

sコマンドを使うとファイルパスを指定して保存できる。

& s ファイル名

3 munpackを使って分解する

munpack ファイル名

するとファイルが複数出てくる。

試したケースだとbodyと添付ファイルに分かれていた。

添付ファイル名までは復元できなかったけど。

メールは本当によくわからない。mimeとかもちゃんと理解できるとよいのかもしれない。

chibiccを読んだときに出てくるアライメント調整用関数のアルゴリズムの名前が知りたい

rui氏作のCコンパイラであるchibiccを読むとアライメント調整用の関数がある。

GitHub - rui314/chibicc: A small C compiler

// Round up `n` to the nearest multiple of `align`. For instance,
// align_to(5, 8) returns 8 and align_to(11, 8) returns 16.
static int align_to(int n, int align) {
  return (n + align - 1) / align * align;
}

何か名前ついてそうだけどそんなことないのかしら。

PHPのcurlでhttpsのURLへアクセスする(SSL)とエラーになった

status取得したら0が返ってくる。なんだこれ。

と思っていたら結構有名な話らしい。

【php】curlでSSL通信をCA証明書のチェックありで at softelメモ

PHPの curl 関数でhttpsのウェブページが取得できなかった - bayanの<del>電波</del>日記

PHPでcurlを使ってHTTPSにアクセスしてエラー出たときの回避策 - Qiita

対処方法1

証明書検証を無効にする

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false);

対処方法2

無効はちょっとなーと思ったら、証明書をダウンロードしてきて指定もできるらしい。

curl_setopt($curl, CURLOPT_CAINFO , 'cacert.pemへのパス');

証明書はcurlのページに案内があった。

curl - Extract CA Certs from Mozilla