sambaがアップデートしたら動かなくなったので修復

CentOS7でずいぶん触ってなかったサーバーをyum updateしたらsambaが止まってしまった。
systemctl status smbで見てみると、WBCLIENT_0.13が見つからないとか、バージョン違いが原因のようだ。
/etc/samba/smb.conf をコピー退避してから、sambaを入れ直す。
yum remove samba
yum install samba
systemctl start smb
systemctl status smb
で起動確認。
configを書き戻してもそのまま起動した。
たまにライブラリ違いみたいなのが出てくるなぁ。

nginxでalias下のfastcgiへのパスの渡し方

nginx + php-fpm の環境。
最近はドメインのトップからWordpressのようなシステムを置くことが増えたので
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
で良かったのですが、
URI上の一部分を別のディレクトリに置いていたりするパターンでは、rootの定義し直しではなくてaliasを使ったほうがよさげらしい。
しかしaliasにしてしまうと不都合もあるようで

server {
  server_name example.com;
  listen 80;
  root /var/www/example.com/;
  location /somepath/ {
    alias /var/www/somepath/;
    index index.php index.html;
    location ~ \.php$ {
      fastcgi_pass unix:/run/php-fpm/www.sock;
      fastcgi_index index.php;
      # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param SCRIPT_FILENAME $request_filename;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      include fastcgi_params;
    }
  }
}

example.com/somepath/hoge.php をリクエストすると
$document_root$fastcgi_script_nameの場合 /var/www/somepath//hoge.php が渡されちゃう。スラッシュが2重になってしまうのでalias下では使えないことに。
$request_filenameの場合 /var/www/somepath/hoge.phpが渡る。こちらは望み通りの結果。

じゃあalias下じゃなくても$request_filename使えば良いのでは?と思って試した結果、
example.com/fuga.php のリクエストに対してどちらも /var/www/example.com/fuga.php となった。

大本がどこからのコピペだったか忘れたが、$request_filenameで良さそうだ。ただしrootとかaliasとかindexがしっかり定義されている文脈に限る。
rootのときは最後の/を調整してくれるけどaliasではしてくれないあたりからの違いってことか

参考
落とし穴とよくある間違い | NGINX 日本語訳
nginx $document_root$fastcgi_script_name と $request_filename の違い – Qiita

ノートPCをWiFiアクセスポイントにする

出張で宿に泊まったとき、今どきのホテルはWiFi無料が当たり前だったりしますが、それにしてもアクセスポイントが遠くて電波が悪いとか、WiFiがやたらと遅いとか、そういうときにはノートPCを有線でつないだ方が良いです。

Windows10で対応しているPCなら、PCをWiFiアクセスポイントにすることができます。
これでスマホやゲーム機が快適に接続できます。ニンテンドースイッチとかWiFi設定を追加するのが面倒なので、毎度同じPCで同じAPなら設定を追加する必要もなくてラクですね。

いまどきのノートPCだと有線接続するにも別途アダプターが必要だったりしますが、こういうこともあるので持っておくと便利です。
USB-C端子からLAN、HDMI、SDカードリーダー、USB3.0などが使えるハブがありますので、そのへんを適当に。

便利!ACアダプタ用3個口タップ

結論: PCやUSB充電器など、ACアダプタのメガネ端子の間に挟む3個口タップが超便利。

私はiBuffaloのやつをヨドバシで買いましたが、同じモノがamazonだと無い。というかもっと便利そうなのもあった。


私はよくモバイル環境で仕事をしますし、出張することも多いので、パソコンやスマホ類、Bluetooth関連だとか、とにかく充電するものが多い。
大体のものはUSBから充電できるので複数口のACアダプタが必須。そしてPCやビデオカメラなどは専用のACアダプタが必要だったりするので、複数個のAC差し込みが必要に。そんなときに役立つのが冒頭のACアダプター用のタップなのです。

そんなわけで以前はAnkerの充電器に3個口のタップを合わせていました。が、前回の出張前日にそれらを紛失していることが発覚。どこで忘れたか落としたかしたんだろう。
とりあえず無いと困るのでヨドバシAkibaの店頭受け取りを指定して買い直しました。ソーシャルディスタンス対策のヨドバシは当たり前ですが雰囲気が違いました。

AnkerはなかったのでOwltechです。無駄に光るなー!と思ったけど、暗闇で差し込むときに便利かもしれない。

いずれ高出力のUSB PDと複数口のUSBポートが複合した製品が出てくるとは思いますが、現状はあまり良いのがないので、タップはあったほうが何かと便利です。

特定ドメインからのメールをチェックなしで通すテスト postfix

CentOS+postfixの話。
SPAMはなるべく受け取りたくないのでFromのチェックを厳しくしてます。
main.confで

smtpd_sender_restrictions =
        permit_mynetworks, # 信頼できるネットワークからは許可
        reject_non_fqdn_sender, # FQDNじゃない人は拒否
        reject_invalid_hostname, # ホスト名がおかしい人は拒否
        reject_unknown_sender_domain #ドメインのDNSレコード見ておかしかったら拒否

しかし世の中にはメールサーバーが正しくないけど受け取りたい相手というのもあるもので、特定ドメインからのメールだけは身元が怪しくても受け取っておきたいという場合もあります。
そんな場合は check_sender_access を入れると良いらしい。

smtpd_sender_restrictions =
        permit_mynetworks,
        check_sender_access regexp:/etc/postfix/sender_access.regexp,
        reject_non_fqdn_sender,
        reject_invalid_hostname,
        reject_unknown_sender_domain

sender_access.regexpでは、正規表現に合致したらOKと返すようにする

/^.+@example\.com$/i        OK

これでFromがexample.comドメインだったら、他の身元チェックをする前にOKになるのでメールが受信できるようになる。はず。
テストしようにも「身元が怪しい送信元」がすぐ手配できないので、一旦は様子見。
postfix checkしてreload。