[忘備録] Piwigoを導入
写真と動画の整理はどうしています?
この投稿にも書きましたが、動画と写真がどんどん溜まり、整理する間も無くオンラインのフォルダはいっぱい、ローカルにSDカードのまま放置など、よく聞く話ですね。 写真の方はAmazon Primeに入っている人はAmazon Photoで無制限に保存できるので、これを使わない手はないと思いますが、動画のことを考えると、やっぱりどうにもならんのですよね。。。
と言うわけで、Mail Serverをオンプレで運用しているので、動画と写真の管理ソフトも運用してみます。候補は下記の様にさまざまあります。
他にも色々ありますが今回は私はPiwigoを使ってみたいと思います。と、これ書く前に数ヶ月PhotoPrismを利用していたのですがDockerComposeからインストールが簡単だったのはいいのですが、動画をアップロードする最大サイズの設定がうまく反映できず(これは私の忍耐力と技術の問題。笑)で大きな動画がアップできず苦労したのと、マルチアカウントで利用できない、指定した写真だけ公開するとか、ちょっとしたことができないので乗り換えてみます。
大きなファイルがアップロードできなかったのは、もっと簡単に設定できると思うのですが、なぜにできないのかがよく分からず。。PHPのいつものファイルサイズの最大値の設定が効かず。。。
→ Piwigoに乗り換える途中に気づきました。DockerComposeで立ち上げているのにも関わらず、ローカルホスト側の設定ファイルばかりいじっていました。笑 コンテナ内のを触る必要があるのに。。というか、コンテナ内部の環境に行く必要すらなかったです。NginxでProxyして動かしていたところでNginx側のMaxコンテンツサイズの制約が効いていただけらしい。。。普通に動きました。何やってんだか。。間あけて暇な時に設定している割にはろくにメモ残してないのでこうなります。。仕事でもやらかすのに、家の事だと適当さがハンパないです。。w
両方触った結果、PhotoPrismの方がだいぶいいですね。写真を見れます。Piwigoはなんというか、ギャラリーとして写真を見ることができない。なんか見にくいし、探しにくいし1枚表示の画像の大きさも中途半端だし、綺麗じゃないですね。。昔のレイアウトから何もしていない感じ。。
PhotoPrismがマルチアカウントに対応していない?(チームも作りたいというコメントは書いていましたが、優先度の問題で別の機能を実装する状態が続いている様子。)ことと、親に共有してあげようと思った時にささっ、とその写真だけのURLを発行できないのがちょっと辛いですが、それ以外は素晴らしい。
選んだ写真・動画だけ短縮URLで共有可能でした。そのほかの写真はプライベートのまま!素晴らしい。今日PhotoPrismをアップデートしてみたのだけど、それに入っていたのだろうか。。
一応、Piwigoをインストールしている時にメモしたやつ↓はそのまま残しておきます。
PiwigoもPHPなのですが、DockerCompose ではなく、通常のPHPホストです。私はNginxでホストしてPHP動かす様にします。
Install
ここからソースコードとってきます。
PHPで実行する場所に展開しましょう。私は/www以下にPHPアプリは置いています。適宜読み替えてください。
unzip piwigo-12.3.0.zip
私の環境ではPHP8を導入しています。
例えば、photo.your_domain.comにアクセスするとPiwigoにアクセスするとすると、Alpineの標準の環境ですと、以下から設定することになると思います。
cd /etc/nginx/sites-available
↑のフォルダ内にNginxの設定ファイルをおきます。ファイル名はphoto.your_domain.com
です。
sudo vim photo.your_domain.com
Zipファイルを解凍したフォルダを/www/photo/piwigoに配置したとすると、以下の様になるはず。
server {
listen 80;
listen [::]:80;
server_name photo.your_domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name photo.your_domain.com;
root /www/photo/piwigo;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/lego/certificates/_.your_domain.com.crt;
ssl_certificate_key /etc/lego/certificates/_.your_domain.com.key;
client_max_body_size 500M; #ここは適宜かえてください。
charset UTF-8;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; #私の環境です。PHPを動作させるポートを指定。
fastcgi_index index.php;
include fastcgi.conf;
}
location = /404.html {
internal;
}
location ^~ /data {
deny all;
}
}
これでいいかな。
NginxとPHP再起動かけます。念の為。
sudo rc-service nginx restart
sudo rc-service php-fpm8 restart
今までの設定だと、ブラウザでhttps://photo.your_domain.com/install.phpでPiwigoのインストールができるはず。。
が。。
PHP extension "mysqli" is not loaded と出てしまった。PHPのモジュールが足りません。インストールしましょう。
PHP モジュール php8-mysqli のインストール
2022/10/02現在だと、以下のコマンドではphp7のモジュールが入り、PHP8だと指定する必要がありそうです。
sudo apk add php-mysqli
(1/4) Installing php7-common (7.4.32-r0)
(2/4) Installing php7-openssl (7.4.32-r0)
(3/4) Installing php7-mysqlnd (7.4.32-r0)
(4/4) Installing php7-mysqli (7.4.32-r0)
OK: 3529 MiB in 546 packages
sudo apk add php8-mysqli
(1/6) Purging php7-mysqli (7.4.32-r0)
(2/6) Purging php7-mysqlnd (7.4.32-r0)
(3/6) Purging php7-openssl (7.4.32-r0)
(4/6) Purging php7-common (7.4.32-r0)
(5/6) Installing php8-mysqlnd (8.0.18-r0)
(6/6) Installing php8-mysqli (8.0.18-r0)
OK: 3528 MiB in 544 packages
これでPHPもう一度再起動かけて、インストールページをリロードしてみましょう。
うまくいきました!
このページで作ったMySQL(MariaDB)のデータベースとユーザー名を入力して設定します。
するとインストール&設定完了です。
もう一息、あとはローカルの既にある写真の追加と、今後追加する写真の保存先の設定です。 これを外付けのHDD/SSDにします。でないと、全然足りないですからね。
今日は遅くなったので、また追記します。。。
コメント
コメントを投稿