【サブPC 自宅サーバ化計画】ギャラリーCMS Piwigoのインストール

手元にある多量の画像素材を『タグ付け』とかして管理できないかな~と思って行き着いたのが、PiwigoというCMS。デモサイトなど見る限り、タグ付けも出来そうだし、フォルダー分けすることでカテゴライズできるので、これなら用途に合いそう。
*ローカルでZoner Photo Studioのフリー版で一時期しのごうとしていたが、ソフトの動作が重いのなんの・・・

Piwigoの必須要件

  • Apache (Webブラウザ経由なので当然必要)
  • MySQL5~ (タグ付けなどをDBで管理する)
  • PHP5 *推奨は5.2以上 (PHPで動作)
  • GD もしくは ImageMagick (画像ライブラリに使用)

ImageMagickはインストールされていないし、他でも使うCMSは多数あるので、この際インストールしておく。

ImageMagickのインストール

CentOS6系だと、yumでOKらしい。

sudo yum install php-devel
sudo yum install ImageMagick ImageMagick-devel ImageMagick-perl
sudo yum install php-pecl-imagick
sudo vi /etc/php.ini
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
(中略)
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
extension=imagick.so *追記

phpinfoに上記のような記述が出てくれば、PHPモジュールのインストールもできている。

MySQLでPiwigo用データベース作成

これは任意。phpMyAdminにrootでログインし、データベース作成、ユーザー作成もできるのでそちらから操作しておく。

Piwigoインストール

手順はしては、他のCMSに近いものがある。

1.公式サイトからダウンロードし、Webサーバー管理下の公開ディレクトリにアップ。

公式サイトURL:http://piwigo.org/ からダウンロードし、FTPソフトでサーバーへアップ。
その後、サーバー側で展開し、フォルダを移動するのが良いだろう。

2.アップロード先にブラウザでアクセス

基本的には、画面の指示に従い、必要な情報を入力。
データベース設定は、事前に準備しておいた情報を記載する。
接頭辞はデフォルトで良いでしょう。

管理設定は”Piwigo”自体の管理者の設定となるので、任意のユーザー名とパスワードを設定する。
パスワード忘れなどに備えて、メールアドレスも自分のアドレスを設定しておくのが良いだろう。

 

必要事項を入力したら、『インストールを開始する』を押下。で、インストール完了のはずだが、真っ白画面…orz
よく見ると、いくつか作成されていないテーブルがある模様。

どうも、MySQLが5.7系のため、MySQLの環境変数”sql_mode”のデフォルト値が厳しくなっていて、日付型データのカラムに”0000-00-00″といった、日付として不適切な値を入れると、『エラー』として弾くようになっているらしい。
*これは、MySQL5.6系からの仕様らしい。以前はエラーではなく、不正な日付は”0000-00-00″に置き換えられて『警告』扱いになっていた。

ひとまず、インストール完了するまでは、「sql_mode=”ALLOW_INVALID_DATES”」の記述を /etc/my.cnf に記載してみる・・・と、インストールが完了した。

 

これで無事使える・・・とおもいきや、PHPのワーニングが大量発生。画面によっては、エラーに。
エラーメッセージを頼りにググると、php.ini にタイムゾーンの設定をしていないのが原因だったらしい。
で、php.iniを編集して、httpd再起動で、ワーニングも消えた。やれやれ。

 

 

 

後日談

インストール時に「sql_mode=”ALLOW_INVALID_DATES”」を指定し、sql_modeの制約をゆるくしてやらないとインストールすら出来なかったわけだが、運用開始後もsql_modeの制約に悩まされる。
Piwigoのギャラリー画面で使用しているSQL文、とくに「アルバム」単位で画像を表示する際のSQL文に問題があるようで、DISTINCTとORDER BYを両方使っている。
そして、ORDER BY句で指定するカラムに、DISTINCTのカラムリストに含まれていないものを平気で使用している。

そのため、MySQL5.7のsql_modeでは”ONLY_FULL_GROUP_BY”がデフォルトでONになっているので、この制約に引っかかりエラーとなってしまう。

こうなってくると、Piwigoのシステム要件にある、”MySQL5″というのを”MySQL5以降”と解釈するとハマる可能性大。
少なくともPiwigo2.7.4とMySQL5.7の組み合わせでは、sql_modeをいじらないと(=制約をゆるくしないと)まともに動作しません。

コメント

タイトルとURLをコピーしました