Difference between revisions of "타이니IB"

From Hidden Wiki
Jump to navigation Jump to search
Line 11: Line 11:
= 사용법 =
= 사용법 =
== 자기가 쓴 글이 안 보일 때 ==
== 자기가 쓴 글이 안 보일 때 ==
키보드의 F5 버튼을 누르거나 웹 브라우저의 새로 고침 버튼을 눌러주면 된다.
[[키보드]]의 F5 [[키]]를 누르거나 [[브라우저]]의 [[새로 고침]] [[버튼]]을 눌러주면 된다.




Line 19: Line 19:


http://c2djzrn6qx6kupkn.onion/res/41268.html
http://c2djzrn6qx6kupkn.onion/res/41268.html


= 설치 =
= 설치 =

Revision as of 20:40, 22 July 2018

개요

타이니IB(TinyIB)는 4챈(4chan)이나 후타바 채널, 2채널(2ch)같은 플로팅 쓰레드 형식의 이미지 보드이다. IB는 image board의 줄임말이다. TinyIB는 작은(tiny) 이미지 보드(ib)라는 뜻이다.

TinyIB는 MySQL같은 데이터베이스(database) 프로그램과 같이 사용해도 되고, 그냥 일반 파일로 데이터를 저장하는 형식으로 사용해도 된다. 그냥 일반 파일 형식의 저장 방식인 flatfile이 기본(default) 설정이다.


사용법

자기가 쓴 글이 안 보일 때

키보드의 F5 를 누르거나 웹 브라우저새로 고침 버튼을 눌러주면 된다.



왜 TinyIB는 자동 새로 고침이 잘 안 되냐? 서버 부담을 줄이기 위해서인가? DB 대신에 텍스트 파일을 써서 그런가?

http://c2djzrn6qx6kupkn.onion/res/41268.html

설치

타이니아이비 다운로드는 이 링크( https://github.com/tslocum/TinyIB )로 들어가서 Download ZIP을 눌러준다. 그 후 압축파일채로 업로드하거나, 개별 파일들을 업로드한다.


오픈 소스 (open source) 저장소인 깉헙 (GitHub)을 사유 소프트웨어 (proprietary software) 회사인 마이크로소프트 (Microsoft)에서 인수하여 그에 반발한 오픈 소스 개발자들이 소스 코드 (source code) 저장소를 깉랩 (GitLab)으로 바꿨다. TinyIB 개발자도 여기에 동참하였다. https://gitlab.com/tslocum/tinyib


웹 호스팅에서 TinyIB 설치는 상의 FTP로 들어가서 settings.default.php 파일을 복사한 후, 복사한 파일의 이름을 settings.php 파일로 바꾼 후 수정만 해주면 끝이다. settings.php 파일 수정은 퍽 유 호스팅의 경우는 Web file manager에서, 프리덤 호스팅 II의 경우는 WebFTP에서 하면 된다.

가상 사설 써버(VPS)에서 TinyIB 설치도 웹 호스팅과 동일하지만 웹 FTP 대신에 씨큐어 셸(SSH)을 사용한다는 점이 다르다.


타이니이미지보드데이터베이스도 필요없다. 정말 쉽다! 일반적으로 flatfile을 쓰는 것보다 DB를 사용하는 걸 권장한다. 하지만 웹 써버의 성능이 낮은 경우 무거운 데이터베이스보다는 가벼운 flatfile을 쓰는 게 낫다.


settings.php 설정

아래는 settings.php에서 수정할 목록이다.


  • // Administrator/moderator credentials

define('TINYIB_ADMINPASS', ""); // Administrators have full access to the board

이건 사이트 운영자 비밀번호. "" 사이에 비밀번호로 쓸 문자를 넣어준다.


define('TINYIB_MODPASS', ""); // Moderators only have access to delete (and moderate if TINYIB_REQMOD is set) posts ["" to disable]

사이트 운영자 외의 관리자를 설정한다. "" 사이에 비밀번호로 쓸 문자를 넣는다. 관리자는 글을 삭제할 수 있다. 만약 글이 공개되기 전에 관리자의 허락을 얻어야 하는 TINYIB_REQMOD가 설정되어 있을 경우 관리자는 글의 공개 여부를 결정할 수 있다.


  • // Board description and behavior

define('TINYIB_BOARDDESC', "TinyIB"); // Displayed at the top of every page

"" 사이의 TinyIB를 지우고, 사용할 사이트 이름을 적어준다.


define('TINYIB_ALWAYSNOKO', false); // Redirect to thread after posting

false면 thread(글)나 reply(댓글)를 달면 ***.onion/index.html 파일로 넘어간다. true면 글을 달면 ***.onion/res/91.html#91 처럼 글을 단 위치로, 댓글을 달면 ***.onion/res/89.html#92 처럼 댓글을 단 위치로 이동한다.


define('TINYIB_CAPTCHA', false); // Reduce spam by requiring users to pass a CAPTCHA when posting (click Rebuild All in the management panel after enabling)

false를 true로 바꿔주면 글을 올리기 전에 캪차(CAPTCHA)를 해야해서 스팸을 줄여준다. 하지만 토어(Tor)에서는 노스크맆트 때문에 캪차 이미지가 뜨지 않아 정상 작동하지 않으니 설정하지 않는 게 좋다.


define('TINYIB_REQMOD', "disable"); // Require moderation before displaying posts: disable / files / all (see README for instructions, only MySQL is supported)

이 옵션을 사용하면 업로드된 게시글은 관리자의 허락을 받아야 다른 사용자들에게 보여진다.


  • // Board appearance

define('TINYIB_THREADSPERPAGE', 10); // Amount of threads shown per index page

한 페이지에 보이는 쓰레드 숫자


define('TINYIB_PREVIEWREPLIES', 3); // Amount of replies previewed on index pages

화면에 보이는 댓글 숫자. 이 숫자가 넘어가는 댓글은 해당 글을 클릭해야 보인다.


define('TINYIB_TRUNCATE', 15); // Messages are truncated to this many lines on board index pages [0 to disable]

화면에 보이는 글자의 줄 숫자. 이 경우 15줄이 넘어가는 글은 해당 글을 클릭해야 16줄째부터가 보인다.


define('TINYIB_TIMEZONE', 'UTC'); // See https://secure.php.net/manual/en/timezones.php - e.g. America/Los_Angeles

시간대(time zone) 설정이다. 기본 설정은 UTC인데 북조선 시각으로 바꾸고 싶으면 Asia/Pyongyang으로, 남한 시각으로 바꾸고 싶다면 Asia/Seoul로 바꿔준다.


  • // Post control

define('TINYIB_DELAY', 30); // Delay (in seconds) between posts from the same IP address to help control flooding [0 to disable]

동일 IP 주소로 글을 올릴 수 있는 시간 간격이다. 여기선 30초로 설정되어있으며 0을 넣으면 기능이 꺼진다.


define('TINYIB_MAXTHREADS', 100); // Oldest threads are discarded when the thread count passes this limit [0 to disable]

쓰레드의 갯수가 특정 갯수가 넘으면 삭제한다는 옵션이다. 여기선 100개로 설정되어 있으며 0을 넣으면 글의 갯수가 많아져도 삭제하지 않는다.


  • // Upload types

define('TINYIB_PIC', true); // Enable .jpg, .png and .gif image file upload

이미지 업로드 설정. 기본 설정은 업로드 가능이다. true를 false로 바꾸면 이미지 업로드 불가.

최신 버전에서는 // Upload types의 설정이 바뀌었다.

// Upload types

// Empty array to disable

// Format: MIME type => (extension, optional thumbnail)

$tinyib_uploads = array('image/jpeg' => array('jpg'),

'image/pjpeg' => array('jpg'),

'image/png' => array('png'),

'image/gif' => array('gif'));

# 'application/x-shockwave-flash' => array('swf', 'swf_thumbnail.png'));

# 'video/webm' => array('webm')); // WebM upload requires mediainfo and ffmpegthumbnailer (see README for instructions)

# 'audio/webm' => array('webm'));

위와 같이 되어있는데 'image/jpeg'나 'image/gif'와 같이 업로드가 활성화되어 있는 파일 포맷의 앞에 #을 넣어 모두 주석 처리하여 무효화시킨다. 예를 들어

$tinyib_uploads = array('image/jpeg'                    => array('jpg'),

$tinyib_uploads = array(#'image/jpeg'                    => array('jpg'),

로 바꾸면 된다.

단,

'image/gif'                     => array('gif'));

의 경우 앞에 #을 쳐서

#'image/gif'                     => array('gif'));

와 같이 만들면 맨 끝의 );도 무효화되어 문법상 오류가 생겨 설치가 되지 않으므로 주석 처리를 하려면

#'image/gif'                     => array('gif')
);

와 같이 해야 한다.


  • // oEmbed APIs

// Empty array to disable

$tinyib_embeds = array('SoundCloud' => 'http://soundcloud.com/oembed?format=json&url=TINYIBEMBED',

'Vimeo' => 'http://vimeo.com/api/oembed.json?url=TINYIBEMBED',

'YouTube' => 'http://www.youtube.com/oembed?url=TINYIBEMBED&format=json');

싸운드클라우드(SoundCloud)의 음악이나 비메오(Vimeo)와 유튜브(YouTube)의 동영상을 삽입하는 기능이다. 이 기능이 활성화되어 있으면 유튜브 등의 링크를 적지 않으면 새 쓰레드(글 타래)를 시작할 수 없다. 단, 댓글은 달 수 있다. 귀찮으니 그냥 얘네들도 이미지 파일 업로드처럼 #을 쳐서 주석 처리를 하면 동영상 링크가 없어도 글을 올릴 수 있다.

이미지 파일 주석 처리처럼 제일 마지막 줄의

'YouTube'    => 'http://www.youtube.com/oembed?url=TINYIBEMBED&format=json');

#'YouTube'    => 'http://www.youtube.com/oembed?url=TINYIBEMBED&format=json'
);

처럼 주석 처리를 해야 한다.


  • // File control

define('TINYIB_MAXKB', 2048); // Maximum file size in kilobytes [0 to disable]

업로드 할 수 있는 파일의 최대 크기를 kb 단위로 지정.

define('TINYIB_MAXKBDESC', "2 MB"); // Human-readable representation of the maximum file size

파일 업로더가 최대 크기를 넘는 파일을 업로드 하려고 할 때 업로드 가능한 파일의 최대 크기가 얼마인지 보여주는 경고 메시지에 뜨는 용량. 2 MB로 적어놓으면 That file is larger than 2 MB.라고 뜬다.

define('TINYIB_NOFILEOK', false); // Allow the creation of new threads without uploading a file

false로 해놓으면 반드시 파일을 첨부해야 새 쓰레드(thread)를 시작할 수 있고, true로 해놓으면 파일을 첨부하지 않아도 새 쓰레드를 시작 가능하다. 하지만 Upload types가 모두 false라 아예 업로드 기능이 막혀 있는 경우 이 메뉴가 true든 false든 파일 첨부를 하지 않아도 새 쓰레드 시작이 가능하다.


  • // Tripcode seed - Must not change once set!

define('TINYIB_TRIPSEED', ""); // Enter some random text (used when generating secure tripcodes)

"" 사이에 영문 대소문자, 숫자, 특수문자로 대충 길게 써준다.


  • // Database

데이터베이스에 대한 전반적인 설정

// Recommended database modes from best to worst:

flatfile은 MySQL같은 전문 DB가 아니라 그냥 일반 파일에 저장할 내용을 저장하는 경우를 말한다. 기본 설정인 flatfile보다는 데이터베이스를 사용하는 걸 권장한다.

// pdo, mysqli, mysql, sqlite, flatfile (flatfile is only useful if you need portability or lack any kind of database)

flatfile은 이동성이 필요하거나 DB가 없을 경우에만 쓴다.

define('TINYIB_DBMODE', "flatfile"); // Mode

flatfile은 기본 설정이고, DB를 사용하려면 flatfile을 지우고 "" 사이에 pdo, mysqli, mysql, sqlite 중 mysql 등 자신이 사용하는 DB를 입력. 마리아DB를 사용할 경우 mysql이라고 적어주면 된다.


  • // Database configuration - MySQL

데이터베이스MySQL 설정

// The following only apply when TINYIB_DBMODE is set to mysql, mysqli or pdo with default (blank) TINYIB_DBDSN

아래 설정들은 TINYIB_DBMODE가 mysql, mysqli, pdo로 설정된 경우에만 작동

define('TINYIB_DBUSERNAME', ""); // Username

웹 호스팅 업체를 이용하는 경우 "" 사이에 호스팅 업체에서 제공하는 DB User를 입력. 가상 전용 써버(VPS)를 사용하는 경우 root를 입력하면 된다.

define('TINYIB_DBPASSWORD', ""); // Password

웹 호스팅 업체를 이용하는 경우 "" 사이에 호스팅 업체에서 제공하는 DB Password를 입력. VPS 사용시 마리아DB를 설치할 때 자신이 DB의 root용 비밀번호로 만들어놓은 것을 입력하면 된다.

define('TINYIB_DBNAME', ""); // Database

웹 호스팅 업체를 이용하는 경우 "" 사이에 호스팅 업체에서 제공하는 Database 이름을 입력. VPS 사용시 자신이 마리아DB에 만들어놓은 데이터베이스 이름을 적어주면 된다. 만약 tinyib라는 이름의 데이터베이스를 만들었다면 tinyib라고 적어주면 된다.



설정 후

settings.php를 수정했으면 웹 호스팅회사의 웹 FTP의 Chmod를 이용하여 다음 다섯 개 디렉터리에 everyone이 write할 수 있는 권한을 준다. 가상 전용 써버(VPS) 사용시에는 SSH써버에 접속하여 터미널에서 작업하면 된다.

./ (the directory containing TinyIB)

./src/

./thumb/

./res/

./inc/flatfile/ (only if you use the ``flatfile`` database mode) flatfile은 MySQL같은 전문 DB가 아니라 그냥 일반 파일에 저장할 내용을 저장하는 경우를 말한다. flatfile을 쓸 경우 이 디렠터리(폴더)에 other(owner와 group을 제외한 모두)가 쓸 수 있는 권한을 준다. 마리아DB데이터베이스를 사용할 경우 이 폴더는 안 건드려도 된다.


일단

ll directory_name

으로 디렉터리의 소유자, 소유그룹, 권한을 확인해본다. 그리고

chmod 777 directory_name

과 같은 식으로 입력하여 특정 디렉터리에 권한을 777로 준다. 읽기와 쓰기 권한만 주니 제대로 작동하지 않았다. 결국 실행 권한까지 전부 다 줘야하는 것 같다.


만약 이미지를 업로드하는 이미지 보드로 쓸 거라면

apt install php-gd

로 php-gd를 설치해야 한다. 그냥 텍스트 보드로만 쓸거라면 설치하지 않아도 된다.


그 후 자신의 사이트 주소 뒤에 /imgboard.php를 붙여 접속한다. 즉, http://rapeyourdaughter.onion/imgboard.php 이런식이 될 것이다. 그럼 자동으로 index.html 파일이 생성되면서 사이트가 이용가능해진다.

관리

설치가 끝난 후 추가적으로 설정 변경시

settings.php 변경 후 TinyIB의 Manage로 들어가서 운영자 비밀번호를 넣은 후 Rebuild All을 해주면 바뀐 설정이 적용된다.


적용된 모습이 보이지 않으면 키보드의 F5 키를 누르거나 토어 브라우저의 "새로 고침" 버튼을 누른다.


그래도 안 되면 글을 하나 새로 올린다. 그러면 index.html이 갱신되면서 제대로 뜨기도 한다.

도배글 삭제

대량의 도배글을 삭제할 때는 주소창에 http://주소.onion/imgboard.php?manage=&delete=게시물번호 를 입력하면 된다. 그러면 관리자 비밀번호를 물어볼텐데 입력하면 된다. 관리자 비번은 한 번만 입력하면 그 다음부터는 입력하지 않아도 된다. "주소"는 자기 사이트 주소, "게시물번호"에는 게시물 번호를 숫자로 입력한다. 그러면 게시물 번호만 바꿔주면서 여러개의 게시물을 삭제할 수 있다.


페이지 상단이나 하단에 배너 등을 넣는 방법

다크 웹 싸이트 제작 문서 참조.