piwigo:start

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
piwigo:start [2025/12/27 00:51] baecypiwigo:start [2026/01/01 11:52] (현재) baecy
줄 1: 줄 1:
-=== Piwigo 설치 ==+=== Piwigo 설치 ===
 Debian 13 기준으로 작성. Debian 13 기준으로 작성.
  
 == 설치, 운영에 필요한 패키지 설치 == == 설치, 운영에 필요한 패키지 설치 ==
-<codeprism bash>+<codeprism lang=bash>
 # 패키지 설치 전 시스템 업데이트 # 패키지 설치 전 시스템 업데이트
 sudo apt update && sudo apt upgrade sudo apt update && sudo apt upgrade
줄 23: 줄 23:
 </codeprism> </codeprism>
  
-<codeprism apacheconf>+<codeprism lang=apacheconf>
 <VirtualHost *:80> <VirtualHost *:80>
     ServerAdmin admin@example.com     ServerAdmin admin@example.com
줄 90: 줄 90:
 정상적으로 설치 페이지가 나온다면 필요한 정보 입력  정상적으로 설치 페이지가 나온다면 필요한 정보 입력 
  
-=== Piwigo 설정 ===+== Piwigo 설정 ==
 필수 플러그인 : LocalFiles Editor, VideojS \\ 필수 플러그인 : LocalFiles Editor, VideojS \\
  
줄 122: 줄 122:
   );   );
  
-?></codeprism>+?> 
 +</codeprism>
  
 모두 적용했다면 \\ 모두 적용했다면 \\
줄 132: 줄 133:
 {{.:pasted:20251224-055830.png}} {{.: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.1766796718.txt.gz
  • 마지막으로 수정됨: 2025/12/27 00:51
  • 저자 baecy