taichi_raspi
Posts: 1
Joined: Thu Nov 23, 2017 7:06 am

apache2で公開するフォルダについて

Thu Nov 23, 2017 7:11 am

はじめまして。

初めて書き込みをさせていただきます。

Apacheの/var/www/html/ にUSBメモリのシンボリックリンクを作り
スクリプト側でUSBメモリに保存したファイル(この場合グラフの画像ファイル)を
表示させたいと思っています。

/home/pi/以下のディレクトリをシンボリックリンクさせた場合には問題なく
ブラウザから開くのですが、USBのディレクトリはパーミッションエラーが出てしまいます。
Apache2.confのDirectryでシンボリックリンクを許可したりパーミッションを見直してみたり
としているのですが、うまくいきません。どこか良いまとめ的なサイトとか紹介してもらえ
ませんでしょうか?


今までできたことは下記みたいな感じです。
GPIO接続で温度(DS18B20)を取得してます。
Pythonでスクリプトを作りCSVでデータ保存してグラフを作らせる
とこまではできたのですが、それをWeb経由で見たいと思っています。

USBメモリにわざわざ保存するのはグラフの画像ファイル容量が気になるので
SDカード側には保存をさせたくないという思いがあります。
今のところそれほど気になる容量ではないですが、
将来的にはUSBでデータを抜き出してしまうというのもありかなと思ってます。

USBメモリは最初FAT32だったものをext4にしてマウントしています。
マウントオプションも原因かと思っているのですが、、、

とりとめのない相談になってしまいましたがよろしくお願いします。

matoken
Posts: 22
Joined: Sat Jan 05, 2013 10:30 am
Location: kagoshima japan
Contact: ICQ Website Google+ Twitter

Re: apache2で公開するフォルダについて

Sun Dec 24, 2017 11:44 am

/home/pi/以下のディレクトリをシンボリックリンクさせた場合には問題なく
ブラウザから開くのですが、USBのディレクトリはパーミッションエラーが出てしまいます。
恐らく,apache httpdの権限では読めない権限になっているのではないかと思います.
まずはapache httpdの実行されている権限(恐らく www-data)でファイルが読めるか確認してみると良いと思います.
設定ファイルや,プロセスの情報で確認できます.

Code: Select all

$ grep USER /etc/apache2/envvars
$ ps -ef|grep apache2
実際にアクセスできるかapache httpdの権限で読み込めるか確認してみます.
テキストファイルであればcatやheadなどで見ればいいですが画像ファイルということなのでstringsで表示できる部分だけ表示して確認するといいと思います.
以下はsudoコマンドでwww-dataとしてUSBFILEを表示しようとしている例です.

* OK例(ファイル内容により結果は異なる)

Code: Select all

$ sudo -u www-data head USBFILE | strings | head -1
JFIF
* NG例

Code: Select all

$ sudo -u www-data head USBFILE | strings | head -1
head: cannot open 'USBFILE' for reading: Permission denied
エラーになった場合は該当ファイルのオーナー,グループ,パーミッションを設定し直してあげる必要があります.
画像ファイルを作成しているスクリプトで書き込みが出来るかつapache httpdが読み込み可能な権限です.
例えばscriptの実行しているユーザーがpiでapache httpdのユーザーがwww-dataの場合,以下のような権限で動作するのではないかと思います.
オーナー : pi
グループ : pi
パーミッション : 604

うまくいかない場合はapache httpdの該当部分のエラーログや対象ファイルのオーナーグループパーミッションなどを貼ってもらうと何か解るかもしれません.
USBメモリは最初FAT32だったものをext4にしてマウントしています。
シンボリックリンク先のファイルシステムであればFATでも該当ファイルにapache httpdの読み込み権限があればいけるはずです.
Kagoshima Linux User Group : https://kagolug.org/
my site: http://matoken.org
my pi : 1B/1B+/1A/1A+/2B/Zero/Zweo W

Return to “日本語”

Who is online

Users browsing this forum: masa328 and 2 guests