12
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

俺だけの写真管理サーバを作る(Lychee)

Last updated at Posted at 2017-03-13

はじめに

増え続けていく画像ファイル。
PCに保管しているだけでは、スマホから見る事が出来ないので、使い勝手が悪いです。
クラウドに上げればいい事ですが、5GBとか10GB程度では俺の思い出は入りきれません(見栄)。
あと、曲がりなりにもインターネットにアップロードする事になるので、ソレはソレで心の中の何かが抵抗します。

セットアップまでは多少面倒でもいいから、自宅で写真を管理してくれるWebアプリケーションサーバがあればと思い探してみたらLycheeを見つけました。
デザインもカッコイイのでこれをいれてみます。

環境

Lycheeのためとはいえ、普通のPC上げっぱなしでは電気代が気になります。
RaspberryPi model 3Bをサーバにすることにしました。

主なソフトウェアは以下の通りです。
・Webサーバ:Nginx 1.10.2
・アプリケーションサーバ: php 7.1.1
・DB:MariaDB 10.1
・写真管理Webアプリ:Lychee 3.1

よく他の記事ではApache とか php 5.5 とか mysql を使用してたりしますが、
せっかく自宅用で何のしがらみもありませんから、使用するソフトだったり、
バージョンなど、色々挑戦してみました。
ディレクトリ構成は以下の様にしております。

/etc
  +ーmy.cnf
/opt
  +ーanyenv
    +ーーenvs
      +ーーphpenv
        +ーーversions
          +ーー7.1.1
            +ーーbin
            +ーーetc
  +ーmariaDB
    +ーー10.2
      +ーーbin
  +ーnginx
   +--1.10.2
       +--sbin
       +--conf
    +--running
        +--logs
        +--html
        +--temp
           +-fastcgi_temp
/var
  +ーwww
    +ーーLychee

なお、それぞれのインストールですが、私はは以下の記事の様にしております。
MariaDB
NginX
PHP
併せてみて頂けると幸いですm(_ _)m

セットアップ手順

GitHubに従い、セットアップしていきます。

環境確認

phpの設定を確認します。phpのモジュールの状況から。

$ php -m
:
, exif
, gd
, json 
, mbstring
, mysqli
, session 
, zip
:

上記パッケージがあればOKです。

次にPHPの設定を推奨設定へ変更します。

php.ini
max_execution_time = 200
post_max_size = 100M
upload_max_size = 100M
upload_max_filesize = 20M
memory_limit = 256M
diffの結果
$ diff php.ini.org php.ini
383c383
< max_execution_time = 30
---
> max_execution_time = 200
404c404
< memory_limit = 128M
---
> memory_limit = 256M
671c671
< post_max_size = 8M
---
> post_max_size = 100M
824c824,825
< upload_max_filesize = 2M
---
> upload_max_size = 100M
> upload_max_filesize = 20M
939c940
< ;date.timezone =
---
> date.timezone = Asia/Tokyo

Lychee本体のダウンロード

無心で落としてきます。

$ cd /var/www
$ sudo git clone https://github.com/electerious/Lychee.git

Permissionの変更

$ sudo useradd -r -g web -d /opt/Lychee/ -s /usr/sbin/nologin lychee 
$ sudo chown -R lychee:web /opt/Lychee 
$ sudo chmod -R 777 /opt/Lychee/uploads/ /opt/Lychee/data

php-fpm設定

記事がうまく整理できていなくて申し訳ないですが、php-fpmも設定します。

$ cd /opt/anyenv/envs/phpenv/versions/7.1.1/etc/php-fpm.d
$ cp -p www.conf.default www.conf
$ sudo vi www.conf
listen = 127.0.0.1:19711
user = nginx
group = web

nginx.conf の設定

$ diff nginx.conf.org nginx.conf
44,45c44,46
<             root   html;
<             index  index.html index.htm;
---
>             # root   html;
>             root   /var/www/Lychee;
>             index  index.html index.htm ;
65,71c66,75
<         #location ~ \.php$ {
<         #    root           html;
<         #    fastcgi_pass   127.0.0.1:9000;
<         #    fastcgi_index  index.php;
<         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
<         #    include        fastcgi_params;
<         #}
---
>         location ~ \.php$ {
>             root           /var/www/Lychee;
>             fastcgi_pass   127.0.0.1:19711;
>             fastcgi_index  index.php;
>             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
>             include        fastcgi_params;
>         }

fastcgi_parm の設定を変えなきゃいけない事がわかるまですごく時間がかかってしまいました。
ここのサイト様が大変参考になりました。ありがとうございました。

接続できなかった時、以下のようなエラーが出ていました。

nginxのerror.log
2017/03/06 16:23:46 [error] 18245#0: *7572 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.1.1, server: localhost, request: "POST /php/index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:19711", host: "192.168.1.2", referrer: "http://192.168.1.2/"

Lycheeサーバの設定

Lycheeサーバにアクセスすると、以下の画面が出ます。
Lychee設定.PNG

それぞれ、自分の設定を記入します。

Database host:     localhsot
Database username: ******
Database password: ******

以下はお好みで。
Database Name : DB_Lychee (Lychee独自データベース名)
Table Prefix : Lyc_ (テーブル名の接頭辞)

と、入力できればよかったのですが、、、、
実はDBの設定を忘れていました。
ユーザを作っていませんでしたので、今から作成します。

DBの設定

ユーザ作成

まずは、rootでログインして設定を確認します。

$ mysql -u root -p
Enter password:

MariaDB [(none)]> select host, user FROM mysql.user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)

MariaDB [(none)]>

見事に手つかずでした。Lychee用にデータベース(photo)とユーザ(photoadmin)を作成します。

MariaDB [(none)]> create database photo;
MariaDB [(none)]> grant all privileges on photo.* to photoadmin@localhost identified by 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;

(間違って作ってしまったユーザは、以下のコマンドで消してやり直ししました。)

MariaDB [(none)]> drop user user1;

Lycheeサーバの設定(再び)

準備が整いました。もう一度、ブラウザから設定にいきます。
、、、、先ほどの記述では、まだうまく次の設定画面にいけませんでしたorz
原因を想定して解決するのに苦労しましたが、ポート番号の設定が抜けていました。
なのでポート番号の設定も行います。

Database host:     localhsot:3306
Database username: photoadmin
Database password: ******

次にユーザ名とパスワードの設定画面が出ます。
キャプチャTOP.PNG .PNG

画面に記述してある通りに設定します。

username:    photouser
password:    password

無事接続できました!

TOP画面.PNG

あとは手持ちの写真をいろいろと放り込みます。

12
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?