문서 보기이전 판역링크책에 추가PDF로 내보내기Fold/unfold allODT 내보내기맨 위로 이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. === Piwigo 설치 === Debian 13 기준으로 작성. == 설치, 운영에 필요한 패키지 설치 == <codeprism lang=bash> # 패키지 설치 전 시스템 업데이트 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}} </codeprism> == 설치할 디렉토리 생성 및 권한 설정 == <codeprism lang=bash> sudo bash -c "mkdir /var/www/piwigo && chown www-data:www-data piwigo && chmod 755 piwigo" </codeprism> == 아파치 VHost 설정 == <codeprism lang=bash> sudo nano /etc/apache2/sites-available/piwigo.conf </codeprism> <codeprism lang=apacheconf> <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> </codeprism> <codeprism lang=bash> sudo a2ensite piwigo.conf sudo a2enmod rewrite sudo apache2ctl restart </codeprism> == PHP 설정 == 업로드 크기 제한, 메모리 사용, 실행 시간 제한을 조정 <codeprism lang=bash> sudo nano /etc/php/8.2/apache2/php.ini </codeprism> <codeprism lang=php> upload_max_filesiz = 500M post_max_size = 520M memory_limit = 1024M max_excution_time = 600 </codeprism> <codeprism lang=bash> sudo apache2ctl restart </codeprism> == MariaDB 설정 == MariaDB를 처음 설치했다면 다음과 같이 보안 관련 설정을 진행 <codeprism lang=bash> sudo mariadb-secure-installation </codeprism> Piwigo 데이터베이스 생성 및 설정 <codeprism lang=bash> sudo mysql -u root -p </codeprism> <codeprism lang=sql> 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; </codeprism> == Piwigo 설치 == <codeprism lang=bash> 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 </codeprism> == Piwigo 설치 == 아파치 가상 호스트 설정에서 지정한 URL로 접속 \\ 정상적으로 설치 페이지가 나온다면 필요한 정보 입력 == Piwigo 설정 == 필수 플러그인 : LocalFiles Editor, VideojS \\ LocalFiles Editor > Settings > Locfiledit.onglet_localcofn <codeprism lang=php> <?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') ); ?> </codeprism> 모두 적용했다면 \\ **도구 > 유지보수 > 환경** 에서\\ 아래와 같이 \\ 환경 항목에 "그래픽 라이브러리: **External ImageMagick x.x.xx-xx**", \\ 활성화된 플러그인 목록에 **"VideojS"** \\ 항목이 있는지 확인 {{.:pasted:20251224-055830.png}} === Multisite 설정 === 하나의 Piwigo 여러개의 독립된 인스턴스 운영을 하는 방법\\ [[https://github.com/Piwigo/Piwigo/wiki/Multiple-Site-%28Multisite%29|Mulitple Site (Multisite)]] 참고 \\ == 다중 사이트 (Multisite) == 다중 사이트는 Piwigo 2.2에서 추가된 한번의 Piwigo 설치로 여러개의 갤러리를 운영하는 기능입니다. Piwigo.com에서는 수천개의 갤러리들을 하나의 설치본으로 운영하고 있습니다. == 데이터베이스 == 각 갤러리마다 하나의 데이터베이스를 사용하거나 같은 데이터베이스에 테이블 접두사만 다르게해서 여러 갤러리가 사용하는 것이 가능합니다. == Piwigo files == Piwigo 파일을 다운로드 받고 서버가 운용될 위치(ex /var/www/piwigo)에 압축 해제 하십시오. == 웹서버 설정 (Apache기준) == 서브 디렉토리 방식으로 한다면 처음 코드를, 서브도메인 방식으로 한다면 두번째의 코드를 참고해서 아파치 설정 파일을 작성합니다. <codeprism lang=apacheconf> # 서브디렉터리 방식: 디렉터리 별칭이 모두 Piwigo 설치 위치를 참고합니다. Alias /gallery1 /var/www/piwigo Alias /gallery2 /var/www/piwigo # 서브도메인 방식: 서버 별칭이 모두 Piwigo 서브 도메인은 참고합니다. ServerName piwigo.yourdomain.com ServerAlias gallery1.yourdomain.com ServerAlias gallery2.yourdomain.com </codeprism> == 사이트 디렉터리 == /var/www/piwigo/gallery1, /var/www/piwigo/gallery2를 생성하고 개별 운영에 필요한 디렉터리를 추가로 생성, 그리고 소유권과 모드를 조정합니다.\\ 우선 1번 갤러리를 설정하고 <codeprism lang=bash> mkdir /var/www/piwigo/gallery1 cd /var/www/piwigo/gallery1 mkdir -p local/config _data upload chown -R www-data:www-data . </codeprism> 이어서 2번 갤러리도 설정합니다. <codeprism lang=bash> mkdir /var/www/piwigo/gallery1 cd /var/www/piwigo/gallery1 mkdir -p local/config _data upload chown -R www-data:www-data . </codeprism> 그리고 필요한 만큼 동일하게 설정합니다. == 멀티사이트 활성화 == 처음 Piwigo를 설치한 디렉터리에서 ''local/conf/config.inc.php'' 파일에 다음과 같은 내용을 추가합니다. <codeprism lang=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'); } </codeprism> 이 방식은 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; 또는 [[https://piwigo.org/forum/viewtopic.php?id=22173|포럼 게시물 22173]]에 설명 된대로 코드를 수정, 물리적 앨범은 멀티 사이트 저장되지 않도록 하는 방법이 있습니다. == 멀티사이트를 위한 동기화 개조 == ''galleries'' 디렉터리 경로가 ''upload_dir''이나 ''data_locaction''과 달리 설정 파일에서 정의되어 있지 않기 때문에 ''$conf''변수에 ''site_dir''을 추가해야 합니다. 이미 위에서 기술한 ''if (isset($site_dir))'' 블럭에 다음을 추가합니다. <codeprism lang=php> $conf['site_dir'] = $site_dir; </codeprism> 그리고 ''admin/site_manager.php''을 수정해서 **멀티 사이트 설치시** ''gallieries''에 필요한 접두사를 붙이도록 합니다. 설치한 뒤에 이 수정을 적용하면 이미 생성된 ''galleries''에 자동으로 접두사가 붙지는 않습니다. 따라서 이미 설치한 경우에는 데이터베이스에서 ''//prefix//_piwigo_site'' 테이블도 수정해야 합니다. <codeprism lang=diff> --- admin/site_manager.php 2013-01-01 13:35:02.000000000 +0100 +++ admin/site_manager.php 2013-05-31 17:06:31.000000000 +0200 @@ -53,8 +58,12 @@ { fatal_error('remote sites not supported'); } - $url = preg_replace('/[\/]*$/', '', $_POST['galleries_url']); + $url = preg_replace(array('/\/+/', '/(\.+\/)|(^\/)|(\/$)/'), array('/', ''), $_POST['galleries_url']); $url.= '/'; + if (isset($conf['site_dir'])) + { + $url = $conf['site_dir'] . '/' . $url; + } if ( ! (strpos($url, '.') === 0 ) ) { $url = './' . $url; </codeprism> 추가된 정규표현식(regex)은 다음에 나오는 것을 제거하는 역할입니다. * 다중 슬래시 (/) * 처음과 마지막에 붙는 슬래시들 * %%./, ../, .../%% 등등 디렉터리 표시 잘 되길 바랍니다. == 멀티 사이트 설치 후에 수정 == **멀티사이트를 설치하기 전에 위에 기술한 수정사항을 적용했다면 아래의 내용을 적용하지 마십시오.**\\ 구글링 하면서 한것이라 깔끔하지 못함 주의!\\ 관리자 > 도구 > 동기화하기 > 사이트 관리자 > 새 사이트 만들기 \\ 디렉토리 입력칸이 ''.''입력 후 <Enter> \\ ''./galleries/<multisite name>/gallieries/'' 와 같이 디렉토리 추가 확인 \\ 다음과 같이 테이블 내용 수정 <codeprism lang=bash> mariadb -u piwigo_user -p </codeprism> <codeprism lang=sql> USE piwigo; # 설치한 데이터베이스로 변경 SELECT * FROM <prefix>_piwigo_sites; # <prefix>는 멀티사이트 설정시에 입력한 값 DELEETE FROM <prefix>_piwigo_sites WHERE id = 1; # 기본으로 설정된 ROOT Piwigo 갤러리위치가 기록된 행, 위에 SELECT 구문으로 확인 UPDATE TABLE set id = 1 WEHRE id = 2; # 설정, site_admin.php 수정후 생성한 갤러리를 기본으로 설정 quit; </codeprism> 사이트 관리자 화면을 새로고침해서 정상적으로 설정되었는지 확인 \\ 모든 적용되면 {{.:pasted:20251231-115925.png}} 이런식으로 동기화하기 옆에 삭제 버튼이 없어야 합니다. === 설치후기 === 생각보다 쉽게 설치가 가능하고 많은 플러그인과 간결한 UI로 편리합니다.\\ N40L에서 처음에 5000장 정도의 사진을 한번에 처리하느라 고생했지만 \\ 일상적으로 몇 장씩 추가한다면 잘 작동합니다.\\ 위에서 기술한 설정 변경과 패치를 적용해도 최상위 Piwigo에서 galleries 전체를 읽어들이는 문제는 여전함으로 galleries가 아니 piwigo 하위에 multisite 전용 디렉토리를 마련하고 거기에 각 사이트를 생성하는 것이 좋아보입니다. piwigo/start.txt 마지막으로 수정됨: 2026/01/01 11:52저자 baecy