문서의 이전 판입니다!
Piwigo 설치
Debian 13 기준으로 작성.
설치, 운영에 필요한 패키지 설치
# 패키지 설치 전 시스템 업데이트
sudo apt update && sudo apt upgrade
# 아파치, MariaDB, PHP 및 동영상 처리 관련 필수 모듈 설치
sudo apt install apache2 mariadb-server ffmpeg imagemagick libimage-exiftool-perl mediainfo zip
sudo apt install php{,-{common,gd,mysql,curl,mbstring,xml,zip,imagick,bcmath}}
설치할 디렉토리 생성 및 권한 설정
sudo bash -c "mkdir /var/www/piwigo && chown www-data:www-data piwigo && chmod 755 piwigo"
아파치 VHost 설정
sudo nano /etc/apache2/sites-available/piwigo.conf
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/piwigo
ServerName piwigo.example.com
<Directory /var/www/piwigo>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/piwigo_error.log
CustomLog ${APACHE_LOG_DIR}/piwigo_access.log combined
</VirtualHost>
sudo a2ensite piwigo.conf
sudo a2enmod rewrite
sudo apache2ctl restart
PHP 설정
업로드 크기 제한, 메모리 사용, 실행 시간 제한을 조정
sudo nano /etc/php/8.2/apache2/php.ini
upload_max_filesiz = 500M
post_max_size = 520M
memory_limit = 1024M
max_excution_time = 600
sudo apache2ctl restart
MariaDB 설정
MariaDB를 처음 설치했다면 다음과 같이 보안 관련 설정을 진행
sudo mariadb-secure-installation
Piwigo 데이터베이스 생성 및 설정
sudo mysql -u root -p
CREATE DATABASE piwigo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'piwigo_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON piwigo.* TO 'piwigo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Piwigo 설치
sudo wget -O piwigo.zip https://www.piwigo.org/download/dlcounter.php?code=latest
sudo unzip -d /var/www piwigo.zip
sudo chown -R www-data:www-data /var/www/piwigo
Piwigo 설치
아파치 가상 호스트 설정에서 지정한 URL로 접속
정상적으로 설치 페이지가 나온다면 필요한 정보 입력
Piwigo 설정
필수 플러그인 : LocalFiles Editor, VideojS
LocalFiles Editor > Settings > Locfiledit.onglet_localcofn
<?php
/* locfiledit_newfile */
// 이미지 크기조정에 사용하는 라이브러리 설정
// 설정 가능한 겂은 'auto', 'imagick', 'ext_imagick' or 'gd'이며
// 'auto'를 선택하면 위에 나열한 순서대로 확인하면 설치되어 있는 것을 사용합니다.
// HEIC 파일을 위해서 ext_imagick 선택
$conf['graphics_library'] = 'ext_imagick';
// ImageMagick ('ext_imagick') 설치 디렉토리 설정
// 아래의 위치는 데비안 기준입니다.
$conf['ext_imagick_dir'] = '/usr/bin/';
// 동영상 미리보기를 위해서 FFMPEG 실행파일 디렉토리 설정
// 아래의 위치는 데비안 기준입니다.
$conf['ffmpeg_dir'] = '/usr/bin/';
// HEIC, MP4, PDF 등을 위한 설정
$conf['upload_form_all_types'] = true;
$conf['file_ext'] = array_merge(
$conf['picture_ext'],
array('jpg','jpeg','png','gif','heic','mp4','webmv','m4v','webm', 'mov', 'pdf','ai','psd','eps')
);
?>
모두 적용했다면
도구 > 유지보수 > 환경 에서
아래와 같이
환경 항목에 “그래픽 라이브러리: External ImageMagick x.x.xx-xx”,
활성화된 플러그인 목록에 “VideojS”
항목이 있는지 확인
Multisite 설정
하나의 Piwigo 여러개의 독립된 인스턴스 운영을 하는 방법
Mulitple Site (Multisite) 참고
다중 사이트 (Multisite)
다중 사이트는 Piwigo 2.2에서 추가된 한번의 Piwigo 설치로 여러개의 갤러리를 운영하는 기능입니다. Piwigo.com에서는 수천개의 갤러리들을 하나의 설치본으로 운영하고 있습니다.
데이터베이스
각 갤러리마다 하나의 데이터베이스를 사용하거나 같은 데이터베이스에 테이블 접두사만 다르게해서 여러 갤러리가 사용하는 것이 가능합니다.
Piwigo files
Piwigo 파일을 다운로드 받고 서버가 운용될 위치(ex /var/www/piwigo)에 압축 해제 하십시오.
웹서버 설정 (Apache기준)
서브 디렉토리 방식으로 한다면 처음 코드를, 서브도메인 방식으로 한다면 두번째의 코드를 참고해서 아파치 설정 파일을 작성합니다.
# 서브디렉터리 방식: 디렉터리 별칭이 모두 Piwigo 설치 위치를 참고합니다.
Alias /gallery1 /var/www/piwigo
Alias /gallery2 /var/www/piwigo
# 서브도메인 방식: 서버 별칭이 모두 Piwigo 서브 도메인은 참고합니다.
ServerName piwigo.yourdomain.com
ServerAlias gallery1.yourdomain.com
ServerAlias gallery2.yourdomain.com
사이트 디렉터리
/var/www/piwigo/gallery1, /var/www/piwigo/gallery2를 생성하고 개별 운영에 필요한 디렉터리를 추가로 생성, 그리고 소유권과 모드를 조정합니다.
우선 1번 갤러리를 설정하고
mkdir /var/www/piwigo/gallery1
cd /var/www/piwigo/gallery1
mkdir -p local/config _data upload
chown -R www-data:www-data .
이어서 2번 갤러리도 설정합니다.
mkdir /var/www/piwigo/gallery1
cd /var/www/piwigo/gallery1
mkdir -p local/config _data upload
chown -R www-data:www-data .
그리고 필요한 만큼 동일하게 설정합니다.
멀티사이트 활성화
처음 Piwigo를 설치한 디렉터리에서 local/conf/config.inc.php 파일에 다음과 같은 내용을 추가합니다.
if (preg_match('#^/gallery1#', $_SERVER['SCRIPT_NAME']))
#if (preg_match('/^gallery1.yourdomain.com$/', $_SERVER['SERVER_NAME']))
{
$site_dir = 'gallery1';
}
elseif (preg_match('#^/gallery2#', $_SERVER['SCRIPT_NAME']))
#elseif (preg_match('/^gallery2.yourdomain.com$/', $_SERVER['SERVER_NAME']))
{
$site_dir = 'gallery2';
}
if (isset($site_dir))
{
define('PWG_LOCAL_DIR', $site_dir.'/local/');
$conf['upload_dir'] = './'.$site_dir.'/upload';
$conf['data_location'] = $site_dir.'/_data/';
# in case there is a specific configuration file for each "site"
@include(PHPWG_ROOT_PATH.PWG_LOCAL_DIR. 'config/config.inc.php');
}
이 방식은 Piwigo가 현재 gallery1 또는 gallery2를 실행하는지 어떻게 이해할 수 있는지 확인하는 것입니다. 이 예시에서는 $_SERVER['SCRIPT_NAME'] 변수를 사용했습니다. 웹 서버 또는 $_SERVER['SERVER_NAME'] 변수의 서버 이름(특정 하위 도메인을 검색하는 경우)에서 설정한 환경 변수를 사용할 수도 있습니다. 별칭 또는 서버 이름이 일치하지 않으면 처음 설치한 위치에 있는 기본 갤러리를 사용합니다.
설치
이제 각각의 Piwigo 갤러리: http://yourdomain.com/gallery1, http://yourdomain.com/gallery2 또는 http://gallery1.yourdomain.com/, http://gallery2.yourdomain.com/ 로 이동해서 각각의 설치를 진행합니다. 명심해야 하는 것은 http://yourdomain.com/piwigo 이나 http://piwigo.yourdomain.com/ 형식으로 접근이 가능한 기본 갤러리가 있어야 한다는 사실입니다.
물리 앨범
Multisites의 Physical Albums (일명 Synchronization)는 아직 (평균 버전 2.5.1)가 바로 사용할 수는 없습니다. 그건 galleries 디렉토리에 있는 모든 것을 의미합니다. 여기서 주요 문제는 설치의 모든 멀티사이트가 이 디렉토리를 공유하고 있다는 것입니다. 다른 문제는 현재 코드 디렉토리 traversals를 사용하면 다른 갤러리를 가져올 수 있다는 것입니다.
로컬/config/config.inc.php에서 다음 코드 스니펫으로 동기화를 비활성화합니다.
사진 추가를 위한 동기화 방법 비활성화 $conf['enable_synchronization'] = false; 또는 포럼 게시물 22173에 설명 된대로 코드를 주정, 물리적 앨범은 멀티 사이트 저장되지 않도록 하는 방법이 있습니다.