概要
メインで使っていたフォトアルバムLycheeの代わりにインストールしてみました。
動作確認環境
- Ubuntu 20.04
- MySQL 8
- Apache 2.4
- PHP 8.1
で動作を確認しています。
前提
上記が運用されていること
- ドメインで名前解決できること
- そのドメインに対する適切なSSL証明書が導入されていること
が条件です。
手順
さっくりとした手順
- プログラムを配置します。
- DBを設定します。
- Apache設定ファイルを追記して反映します。
- 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名
を入力します。
管理設定
- ユーザ名:管理者名を入れます。
- パスワード:管理者のパスワードを入れます。
- メールアドレス:メールアドレスを入力します。
設定後、以下が表示されると設定完了です。