タグ: piwigo

Ubuntu24.04にPiwigoインストール。(PHP-FPM対応版)

概要

画像管理に特化したオープンソースのフォトギャラリー「Piwigo」。Ubuntu24.04での構築メモです。

前提/環境

  • Ubuntu 24.04の基本的な設定が完了している。
  • Apache, MySQL, PHP-FPMがインストール済みである。
    • PHP及びPHP-FPMは8.3
    • Apacheの実行ユーザはwww-data
  • Piwigoを公開するドメイン名と、対応するSSL証明書が用意されている。

さっくりとした手順

  1. データベースの作成: Piwigoが使用するMySQLデータベースとユーザーを作成します。
  2. PHP拡張機能の確認: Piwigoの動作に必要なPHP拡張機能がインストールされているか確認します。
  3. Piwigoの配置: プログラム本体をサーバーに配置します。
  4. Apacheの設定: ApacheがPiwigoを正しく表示できるように設定します。
  5. Webインストーラーの実行: ブラウザから初期設定を完了させます。

データベースの作成

  • MySQLログイン
sudo mysql -u root -p
  • DB作成
CREATE DATABASE piwigo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • ユーザー作成と権限付与(【】内は強固なパスワードに置き換えてください)
CREATE USER 'piwigo'@'localhost' IDENTIFIED BY '【YOUR_STRONG_PASSWORD】';
GRANT ALL PRIVILEGES ON piwigo.* TO 'piwigo'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  • DB作成確認
mysql -u piwigo -p

先ほど作成したDBユーザです。

SHOW DATABASES;

作成したDBが表示されることを確認します。

EXIT

確認後、MySQLコンソールから抜けます。

PHP拡張機能の確認・インストール

Piwigoは、画像の処理のためにgdimagemagickといったPHPの拡張機能を必要とします。
これらがインストールされているか確認します。(ない場合は以下の手順でインストール)

  • 既存のPHP拡張機能で不足しているものをインストールする例
sudo aptitude install php8.3-gd php8.3-imagick php8.3-mysql

筆者の好みに合わせてaptitudeを用いています。必要に応じてaptに読み替えます。

Piwigoの配置

  • Web公開用ディレクトリに移動
cd /var/www/html && pwd

自分の環境に合わせます。(筆者環境/home/www-data)

  • git cloneによる配置
sudo -u www-data git clone https://github.com/Piwigo/Piwigo.git piwigo

piwigoは自分の環境に合わせます。

Apacheの設定

  • ログディレクトリの作成
sudo mkdir -p /var/log/piwigo

自分の環境に合わせます。

  • ディレクトリの権限変更
sudo chown -R www-data:www-data /var/log/piwigo

Piwigo用のApache設定ファイル(例: /etc/apache2/sites-available/piwigo.conf)を以下の内容で作成します。

<VirtualHost *:80>
    # ドメイン名を指定します
    servername photo.example.com
    # HTTPアクセスを強制的にHTTPSにリダイレクトします
    RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName photo.example.com
    # アクセスログ
    CustomLog /var/log/piwigo/piwigo_access.log combined
    # エラーログ
    ErrorLog /var/log/piwigo/piwigo_error.log

    # PHP-FPMと連携するための設定
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/"
    </FilesMatch>
    DocumentRoot /home/www-data/piwigo
    <Directory /home/www-data/piwigo>
        AllowOverride All
        Require all granted
    </Directory>

    #SSL設定
      SSLEngine on
    Protocols h2 http/1.1

    # 推奨されるSSL/TLS設定 (Mozilla Intermediate Compatibility)
    SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
    SSLHonorCipherOrder     on
    SSLCompression          off
    SSLSessionTickets       off # PFSを強化する場合

    # SSL証明書を指定します
    SSLCertificateFile 【SSL証明書のパスを絶対パスで指定】
    # 秘密鍵を指定します
    SSLCertificateKeyFile 【SSL証明書に対応した秘密鍵のパスを絶対パスで指定】

    #セキュリティヘッダー付与
        Header always set Strict-Transport-Security "max-age=63072000"
        Header always set X-Content-Type-Options "nosniff"
        Header always set X-Frame-Options "SAMEORIGIN"
        Header always set X-XSS-Protection "1; mode=block"
</VirtualHost>
  • 設定ファイルの有効化
sudo a2ensite piwigo.conf
  • 設定ファイルの整合性確認
sudo apache2ctl configtest

Syntax OKを確認します。

  • apacheリスタート
sudo systemctl restart apache2.service
  • apacheリスタート確認
systemctl status apache2.service

active(running)を確認します。

Webインストーラーの実行

  1. ブラウザで、設定したドメイン(https://【photo.example.com】)にアクセスします。
  2. Piwigoの初期設定ウィザードが表示されます。
  3. 画面の指示に従い、データベース情報(ステップ1で作成したもの)や、管理者アカウントの情報を入力します。

インストーラーが完了すれば、Piwigoのフォトギャラリーが利用可能になります。

思考中、思考中。(piwigoとmatomoの連携)

やりたいこと

フォトアルバムシステム、piwigoをシステム解析システム、matomoに置きたいのですが、どうもうまくいかず。

「ここまでやった」というメモのために残します。

前提

  • 自前でアクセス解析:matomoとフォトアルバム:piwigoをインストール済み。
  • 両者はそれぞれインターネット通信が可能。(相互に見えている)

やったこと

piwigoサイトに管理者権限でログインし、Add< head > Elementをインストールします。

有効にして、設定します。

エレメントの所に、matomoで提示されたトラッキングコードを埋め込みます。

結果

piwigo側のサイトのソース表示で、matomoのトラッキングコードが表示されることを確認しました。

ですが、その後、何回かアクセスを繰り返しているにもかかわらずうまくカウントされません。

  • wordpress : プラグインにより連携可能
  • redmine: view customize pluginで設定可能

まで行いましたが、うまい手は見つからず。

状況を見ながらもう少し続けてみます。

Piwigo, Webからのアップデート。

Webでのフォトアルバムアプリ、Piwigo。

https://hideout.reisalin.com/

WordPressやNewxtcloudと同じようにWeb画面上でアップデートができました。

管理者アカウントでログインし、管理>ダッシュボードにアクセスします。

「新しいバージョンのPiwigoが利用可能です」とでるのでこちらをクリック。

アップグレードをクリックします。

しばらく待ちます。

「アップデート完了」のメッセージが出たら作業は完了です。

タイムタグ、ライフログ。

Twitterの話題が元で:

英国に滞在していたときの記憶が蘇りました。なので、AWSにて管理しているPiwigoの写真を更新です。

ロンドン

https://hideout.reisalin.com/index.php?/category/7

こちらはテムズ川のクルーズに絞ったもの。

当時は晴れた日ばかりを選んで撮影したはずですが、こうしてみるとくすんだ空の色です。

コーンウォール

https://hideout.reisalin.com/index.php?/category/1

願わくば、6~7月にもう一度行きたい場所。自分にとって初めて目にする大西洋にも感動しました。

カンタベリー

https://hideout.reisalin.com/index.php?/category/12

ここも暮らしていた場所なので、感慨深いです。

改めて:写真というのは自分の思い出をタグ付けするものであり、明確な記録(ログ)であると思いました。

 広角とツツジ。(根津神社)

平日の休みを利用して上野~根津を散歩しました。

池之端

まずは不忍池で久しぶりの屋外撮影の勘を取り戻していきます。

そこから根津まで無心で歩き……

根津神社

今回のメインイベントである根津神社・ツツジ祭りに到着。

今回、思い知らされたのは「詰まった場所での広角レンズの強さ」。

今回のツツジ園のように高低差があり、視界の情報量が多いときほど役立ちます。9-18mm(通常換算で18-36mm)に大いに助けられました。

花粉の時期、ほぼ出歩けなかった鬱憤を晴らすかのような散歩でした。

備考

今回の写真、Piwigoにリアルタイムでアップロードした初の「アルバム」となりました。

https://hideout.reisalin.com/index.php?/category/9

AIによる命名。(別サイト:フォトアルバム公開)

概要

「面白そう」という理由と、「安価なクラウドストレージが見つかった」という理由で開設したWebフォトアルバム。

https://hideout.reisalin.com/

ドメインなどは決まったものの、「いいサイト名が見つからない」という問題がありました。

そんな中、ChatGPTに聞いたところ思わぬ発見がありました。

質問と回答

最初の質問

まず、ChatGPTにこんな感じで聞いてみました。

Webのフォトアルバムを開設しました。 camera obscura と韻を踏む形で いいタイトルを英語でいくつか候補を挙げてください

ChatGPTの回答

以下は、"camera obscura" と韻を踏むいくつかの英語のタイトル候補です。

  1. Obscure Captures: A Camera Obscura Album
  2. Through the Lens of Camera Obscura: A Photographic Journey
  3. Capturing Shadows: An Album by Camera Obscura
  4. Obscura Moments: A Collection of Camera Captures
  5. The Obscure Beauty: A Camera Obscura Photobook
  6. Obscura Reflections: A Photographic Collection by Camera Obscura
  7. The Obscura Experience: A Camera Album of Captivating Moments
  8. Camera Obscura Chronicles: A Photographic Adventure
  9. Obscura Visions: A Camera Album of Surreal Scenes
  10. The Art of Obscura: A Camera Album of Visual Delights

好きなゲームのタイトルにもなっている「Reflection」。カメラとの相性も抜群。これをベースに更に突っ込んで聞いてみます。

和訳と回答

Obscura Reflections 、とても気に入りました。これを和訳するとどうなりますか

AIへの質問

「Obscura Reflections」を和訳すると、「オブスキュラの反射」となりますが、この場合の「reflection」は「写真や鏡に映った姿や景色」という意味ではなく、「熟考、反省、回想」という意味を持っています。つまり、「Obscura Reflections」は「カメラオブスキュラで撮影された写真を通して、過去の出来事や思い出に熟考し、回想する」というような意味を持ちます。

AIからの回答

これをベースに紹介文も書いてもらいます。

ChatGPTの紹介文

"Obscura Reflections" is a photo album inspired by moments of contemplation and introspection. Through the lens of a camera obscura, this collection captures memories and reflects on the past, inviting viewers to join in the journey of reflection and remembrance.

AIが書いた紹介文

結果

これをそのまま採用する形になりました。

なんとなく思いついたアイディアを形にするという点においてChatGPTは有用なツールです。

Webフォトアルバム「Piwigo」一括タグ付け。

運用を始めたWebフォトアルバム「Piwigo」、操作のメモです。

ここでやること

一括でタグを付与するときの操作をメモしました。

前提

  • Piwigo 13がインストールされています。
  • いくつかの写真がアップロードされている状態です。

手順

管理者権限でログインします。

アルバム>管理>任意のアルバムの「アルバムを編集する」をクリックします。

アルバムの写真を管理するをクリックします。

「すべて」を選択します。

「アクションを選択して下さい」のプルダウンが有効になりますので、「タグを追加する」をクリックします。

「検索アイテムを入力してください」の蘭に任意のタグを入力します。(カンマで区切ることで複数入力が可能です)

入力を確認し、「アクションを実行する」をクリックします。

設定確認

先ほどタグ付けをしたアルバムの任意の写真を表示して、タグが表示されていることを確認します。

https://hideout.reisalin.com/index.php?/category/4

フォトアルバムPiwigoの写真格納ディレクトリをWasabiクラウドストレージに設定。

概要

AWSサーバに設置したフォトアルバムPiwigo。

こちらをWasabiクラウドストレージと連携させます。

動作確認環境

  • Ubuntu 20.04
  • Piwigo 13.6.0
  • Apache 2.4
  • PHP 8.1
  • MySQL 8.0.32

前提

  • Piwigoがインストール済みであること
  • いくつかの写真をアップロード済みであること
  • Wasabiクラウドストレージがs3fsでマウントされていること
  • また、Piwigoのルートディレクトリは /var/www/html/piwigo です。

確認した手順

さっくりとした手順

  1. 写真格納ディレクトリを確認します。
  2. Wasabiのクラウドストレージ(バケット)にアップロード用のディレクトリを作成します。
  3. 既存の写真格納ディレクトリをバケットに移動します。
  4. シンボリックリンクを作成します。
  5. 動作を確認します。

格納ディレクトリの確認

  • findによる確認
find /var/www/html/piwigo/ -type f -name "*.jpg" -print

以下のディレクトリに写真が格納されていました。

  • /var/www/html/piwigo/_data/
  • /var/www/html/piwigo/upload/

クラウドストレージ設定

  • ディレクトリ移動
cd /mnt/wasabi
# s3fsでマウント済みのディレクトリに移動します
  • ディレクトリ作成、所有者変更
sudo mkdir piwigo

sudo chown www-data:www-data piwigo

ls -ld piwigo
# ディレクトリが作られていることと所有者がwww-dataであることを確認します

写真格納ディレクトリをデータごと移動

  • ディレクトリ移動
cd /var/www/html/piwigo && pwd
# piwigoのドキュメントルートに移動します

sudo mv _data /mnt/wasabi/piwigo/

sudo mv upload /mnt/wasabi/piwigo/

sudo chown -R www-data:www-data /mnt/wasabi/piwigo

シンボリックリンク作成

sudo ln -s /mnt/wasabi/piwigo/_data _data

sudo chown -h www-data:www-data _data

sudo ln -s /mnt/wasabi/piwigo/upload upload

sudo chown -h www-data:www-data upload
  • リンク作成確認
ls -ld  /var/www/html/piwigo/_data
ls -ld  /var/www/html/piwigo/upload
# それぞれのリンクがクラウドストレージのバケットであること、リンクの所有者がwww-dataであることを確認します

設定反映、動作確認

  • apacheサービス再起動
sudo systemctl restart apache2.service

systemctl status apache2.service
  • 動作確認

設定したpiwigoのサイトにアクセスします。

  1. ファイルが閲覧できることを確認します。(NW越しにマウントするので時間はそれなりにかかります)
  2. アルバムにファイルをアップロードできることを確認します。
  3. アルバムにアップロードしたファイルが表示されることを確認します。

上記が確認できれば設定完了です。

こうしてできあがったサイトが以下の

https://hideout.reisalin.com/

です。今までに撮りためていた写真をご紹介する機会斗羽がやっとできたという形です。

動作確認日

2023/03/08

UbuntuサーバにフォトアルバムPiwigoインストール。

概要

メインで使っていたフォトアルバムLycheeの代わりにインストールしてみました。

動作確認環境

  • Ubuntu 20.04
  • MySQL 8
  • Apache 2.4
  • PHP 8.1

で動作を確認しています。

前提

上記が運用されていること

  • ドメインで名前解決できること
  • そのドメインに対する適切なSSL証明書が導入されていること

が条件です。

手順

さっくりとした手順

  1. プログラムを配置します。
  2. DBを設定します。
  3. Apache設定ファイルを追記して反映します。
  4. Web画面でインストールを行います。

Piwigo入手

  • 作業用ディレクトリに移動
cd hoge && pwd
  • Piwigoダウンロード
wget https://piwigo.org/download/dlcounter.php?code=latest -O piwigo-latest.zip
# 最新版のダウンロード
  • zip展開
unzip piwigo-latest.zip
  • アクセス権変更
sudo chown -R www-data:www-data piwigo
  • ディレクトリ配置
sudo mv piwigo /var/www/html/
# 運用に合わせて配置ディレクトリを指定してください
ls- ld /var/www/html/piwigo
# ファイルがあること、所有者がwww-dataを確認します

DB設定

mysql -u root -p
CREATE DATABASE piwigo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'piwigo_user'@'localhost' IDENTIFIED BY 'パスワード';
/* パスワードは任意のものを設定します */
GRANT ALL ON piwigo.* TO 'piwigo_user'@'localhost';
GRANT RELOAD ON *.* TO 'piwigo_user'@'localhost';
/* 後の運用を考えて、dumpが取得できるようにします */
FLUSH PRIVILEGES;
EXIT;

apache設定

バーチャルファイル作成

  • ServerName
  • ドメイン
  • 格納場所(ログ含む)
  • SSL証明書及び秘密鍵格納位置

は自分の環境に合わせてください。

cat <<- __EOF__ | sudo tee -a /etc/apache2/sites-available/piwigo.conf
<VirtualHost _default_:80>
ServerName album.example.com
# 公開するサーバのドメイン名を指定
 RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName album.example.com
    CustomLog /var/log/apache2/piwigo_access.log combined
    ErrorLog /var/log/apache2/piwigo_error.log
# ログの格納先を指定を指定

    DocumentRoot /var/www/html/piwigo
    <Directory /var/www/html/piwigo>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
# DocumentRootは実際に配置したディレクトリを指定

  SSLEngine on

    Protocols h2 http/1.1
    Header always set Strict-Transport-Security "max-age=63072000"

SSLCertificateFile /etc/certs/example.com.crt
SSLCertificateKeyFile /etc/private/example.com.key
# 証明書と秘密鍵のパスを指定

</VirtualHost>

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
__EOF__

バーチャルファイル有効化

sudo a2ensite piwigo.conf

設定反映

sudo apache2ctl configtest
# Syntax OKを確認します
sudo systemctl restart apache2.service
systemctl status apache2.service
# active (running)を確認します

表示確認

http://設定したドメイン

にアクセス後、以下が表示されます。

データベース設定

  • ユーザー: DBユーザ名
  • パスワード: 設定したDBのパスワード
  • データベース名:DB名

を入力します。

管理設定

  • ユーザ名:管理者名を入れます。
  • パスワード:管理者のパスワードを入れます。
  • メールアドレス:メールアドレスを入力します。

設定後、以下が表示されると設定完了です。

Powered by WordPress & Theme by Anders Norén