DEVELOPERS BLOGデベロッパーズブログ
- HOME >
- 加藤 正人のデベロッパーズブログ >
- /tmp が見えない件
加藤 正人のデベロッパーズブログ
- 氏名
- 加藤 正人
- 役職
- 多分SE
- 血液型
- 秘密
- 出没
- 美味しいもののあるところ
- 特色
- タヒチ大好き。ちょいメタボ。
- 2020/12/15
- CakePHP3 のリダイレクトがうまく行かない例
- 2020/11/12
- Apache Bench
- 2020/10/05
- PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)
社内テスト用サーバー (Fedora 29) で Apache 上の PHP アプリのデバグをしていて気付いたのだが、アプリから /tmp に書き込んだはずのデバグログファイルがコンソール画面 (bash) から見られない。
誤って削除したのかと思ったが、アプリからは既存ファイルとして存在しており以前書き込んだ内容も正しく読み取れる。
で、色々調べてみたところ、systemd で管理されるサービスには「PrivateTemp」という機能が適用され、/tmp と /var/tmp およびそれらの配下を実際の /tmp や /var/tmp ではなくサービスごとに用意された別のディレクトリにマップすることが分かった。
例えば、httpd 配下のアプリの /tmp なら、実際には /tmp/systemd-private-{16進数の羅列}-httpd.service-{6文字のユニーク文字列}/tmp にアクセスする。
これは /tmp でのアプリ間のファイルの衝突を抑止するという意味では役に立つのだが、例えば Web サイト (PHP プログラム) と Cron アプリで作業用ファイルを共用したい場合に /tmp や /var/tmp を利用できないことになる。
これを回避するには、両者間で /tmp や /var/tmp 以外の特定のフォルダを共用することになり、システム全体で管理しなければならない項目が1つ増えてしまうのでちょっと困ることもある。
2020/12/15
2020/11/12
2020/10/05
2020/09/11
2020/08/03