概要
画像管理に特化したオープンソースのフォトギャラリー「Piwigo」。Ubuntu24.04での構築メモです。
前提/環境
- Ubuntu 24.04の基本的な設定が完了している。
- Apache, MySQL, PHP-FPMがインストール済みである。
- PHP及びPHP-FPMは8.3
- Apacheの実行ユーザは
www-data
- Piwigoを公開するドメイン名と、対応するSSL証明書が用意されている。
さっくりとした手順
- データベースの作成: Piwigoが使用するMySQLデータベースとユーザーを作成します。
- PHP拡張機能の確認: Piwigoの動作に必要なPHP拡張機能がインストールされているか確認します。
- Piwigoの配置: プログラム本体をサーバーに配置します。
- Apacheの設定: ApacheがPiwigoを正しく表示できるように設定します。
- 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は、画像の処理のためにgd
やimagemagick
といった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インストーラーの実行
- ブラウザで、設定したドメイン(
https://【photo.example.com】
)にアクセスします。 - Piwigoの初期設定ウィザードが表示されます。
- 画面の指示に従い、データベース情報(ステップ1で作成したもの)や、管理者アカウントの情報を入力します。
インストーラーが完了すれば、Piwigoのフォトギャラリーが利用可能になります。
コメントを残す