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を前提に考えてしまうな。