SU | MO | TU | WE | TH | FR | SA |
---|---|---|---|---|---|---|
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
Synology NASでPHPを使えるようにした。
純粋にPHPを触る情報があまり見つからなかったのでメモ。
SynologyのNAS(DS220j)を使って、自炊した本のpdfを貯めてる。
pdfを閲覧するのために、Windowsだとエクスプローラー、iPhoneだとファイルアプリでNASに入る必要がある。
これをブラウザから見られるようにしたい。
SynologyのNASは、ブラウザアプリでデスクトップ環境のようなモノを持っていて、
パッケージセンターというGUIで機能をDLできるようになっている。
Webサーバ機能はWeb Station
という名前のパッケージ。
WebサーバはデフォルトでNginx
がインストールされる。
こいつのバックエンドで使えるスクリプティングにはPHP
とPython
が使える。
せっかくなので使ったことのないPHP
を使ってみることにした。
ネットで調べると、sshログインしてコマンドラインで直接設定する方法とかがあったが、
せっかくNAS使ってる意味がないので、なるだけSynologyの提供してるUIで完了できる方法を探した。
ここを参考に、index.php
を置くことで、<NASの名前>.local
にアクセスで、このPHPが呼ばれるようになった。
まずは、HelloWorld的なので以下を試した。
<?php
phpinfo();
?>
Reactとかに慣れすぎて忘れていたが、PHPは評価された結果が展開されるようなモノではなくて、echo
とかで出力した結果がHTMLに吐かれるんだった。
Cで書いたCGIとかを思い出す。
やりたかった、PDFの返却はここを参考にした。
<?php
$filename = 'test.pdf';
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . basename($filename) . '"');
header('Content-Length: ' . filesize($filename));
readfile($filename);
?>
欲しい機能は以下。
ルーティングが必要だが、Nginx
のコンフィグいじらないと無理っぽい。
あまりきれいではないがクエリパラメータで泥臭くやるか。
LaravelとかならSPA的なのやりやすいんだろうな。
もうWebアプリ考えるときはSPAを前提に考えてしまうな。