Installation By manual - Joungkyun/JSBoard GitHub Wiki

JSBoard μˆ˜λ™ μ„€μΉ˜

##1. 주의 사항

  • 이 λ¬Έμ„œλŠ” JSBoard 2.0.x 버전을 μ„€μΉ˜ ν•˜κΈ° μœ„ν•œ λ¬Έμ„œμ΄λ‹€.
  • PHP 4.1.0 이상 버전이 ν•„μš”ν•˜λ‹€.
  • Account User(Root κΆŒν•œμ΄ 없을 경우) κΆŒν•œμœΌλ‘œ Installerλ₯Ό μ‚¬μš©ν•˜μ—¬ μ„€μΉ˜ν•  경우 λ‹€μŒμ˜ 쑰건이 μ„ ν–‰ λ˜μ–΄μ•Ό 함
    1. MySQL databaseκ°€ 미리 생성 λ˜μ–΄ μžˆμ–΄μ•Ό 함.
    2. μƒμ„±λ˜μ–΄ μžˆλŠ” database에 λŒ€ν•œ MySQL user와 μ•”ν˜Έκ°€ 미리 섀정이 λ˜μ–΄ μžˆμ–΄μ•Ό 함

##2. μ‚¬μš© ν™˜κ²½

  • Apache 1.3.23 이상
  • MySQL 3.23.32 이상
  • PHP 4.1.0 이상
  • PHP Build Option
[root@host php]$ ./configure ... \
                        --disable-debug \
                        --with-regex=php \
                        --with-mod_charset \
                        --with-mysqli=shared \
                        --enable-inline-optimization \
                        --enable-track-vars \

##3. 체크 사항

  • PHP mysqli function test
  • check.phpλΌλŠ” νŒŒμΌμ„ λ‹€μŒμ˜ λ‚΄μš©μœΌλ‘œ μƒμ„±ν•œλ‹€.
    <?php
    if ( function_exists ('mysqli_connect') ) echo "Yes\n";
    else echo "No\n";
    ?>
  • λ§Œλ“  λ¬Έμ„œλ₯Ό μ›Ήμ—μ„œ ν˜ΈμΆœμ„ ν–ˆμ„ 경우, Noκ°€ 좜λ ₯이 되면 PHP μ—μ„œ MySQLi extension을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” 것이닀. PHP κ°€ MySQL을 μ§€μ›ν•˜λ„λ‘ λΉŒλ“œκ°€ λ˜μ—ˆλŠ”μ§€ 확인을 ν•˜λ„λ‘ ν•œλ‹€.
  • Web server의 Directory Index 확인
  • Apache의 경우 μ„€μ • νŒŒμΌμ—μ„œ DirectoryIndex μ§€μ‹œμžμ— index.phpκ°€ 등둝이 λ˜μ–΄ μžˆλŠ”μ§€ 확인을 ν•œλ‹€.
  • Shell ν™˜κ²½ 확인
  • SunOSλ‚˜ Solaris의 경우 μ„€μΉ˜ μ „ INSTALLER/script에 μ‘΄μž¬ν•˜λŠ” script의 첫 라인 #!/bin/shλ₯Ό λ‹€μŒκ³Ό 같이 μˆ˜μ •μ„ ν•œλ‹€.
    #!/bin/ksh
    PATH=/usr/ucb:/usr/xpg4/bin:/usr/bin:/usr/sbin

##4. JSBoard μ„€μΉ˜

<!> JSBoardλŠ” μ›Ήμƒμ—μ„œ 관리λ₯Ό ν•˜λ„λ‘ λ˜μ–΄ 있기 λ•Œλ¬Έμ— μ›Ήμ„œλ²„κ°€ μž‘λ™ν•˜λŠ” nobody group의 κΆŒν•œμœΌλ‘œ μ“°κΈ° κΆŒν•œμ„ κ°€μ§€κ³  μžˆμ–΄μ•Όλ§Œ ν•œλ‹€λŠ” 것을 λͺ…심해야 ν•œλ‹€. 즉 permission 섀정에 주의λ₯Ό κΈ°ν•΄μ•Ό ν•œλ‹€λŠ” 것이닀! (κΌ­ nobody λΌλŠ” 보μž₯은 μ—†λ‹€. μ΄λŠ” apache의 μ„€μ • 파일인 httpd.conf μ—μ„œμ˜ Groupμ§€μ‹œμžμ˜ 값에 따라 달라진닀. 확인을 ν•΄ 보도둝 ν•œλ‹€.)

###4.1. MySQL Setting

MySQL의 처음 μ…‹νŒ… ν•˜λŠ” μ‚¬λžŒμ„ κΈ°μ€€μœΌλ‘œ μ„€λͺ…을 ν•œλ‹€. 이미 μ…‹νŒ…μ΄ λ˜μ–΄ μžˆλŠ” μ‚¬λžŒλ“€μ€ μ λ‹Ήνžˆ 보고선 μžμ‹ μ΄ 이미 λ˜μ–΄ μžˆλŠ” 뢀뢄은 λ›°μ–΄ λ„˜λ„λ‘ ν•œλ‹€.

계정 μ‚¬μš©μžλ“€μ˜ κ²½μš°μ—λŠ” 이 과정을 μƒλž΅ν•˜λ©°, μ„œλ²„ κ΄€λ¦¬μžμ—κ²Œ MySQL 의 계정과 Database만 생성해 달라고 μš”μ²­μ„ ν•˜λ©΄λœλ‹€. 즉 DB username,DB name,DB passwordλ₯Ό μ•Œλ € 달라고 ν•΄μ•Ό ν•œλ‹€.

  1. 일단 MySQL을 μ„€μΉ˜λ₯Ό ν•˜λ„λ‘ ν•œλ‹€. 일반적으둜 λ°°ν¬λ³Έμ—μ„œ μ œκ³΅ν•˜λŠ” νŒ¨ν‚€μ§€ κ΄€λ¦¬μžλ‘œ μ„€μΉ˜λ₯Ό ν•˜λ“ μ§€ λ˜λŠ” http://mysql.org/ μ—μ„œ binary version을 λ°›μ•„μ„œ μ‚¬μš©μ„ ν•˜λ„λ‘ ν•œλ‹€.

  2. μ„€μΉ˜λ₯Ό 마쳀으면 rootκ³„μ •μ˜ νŒ¨μŠ€μ›Œλ“œλ₯Ό μ§€μ •ν•œλ‹€.

    [root@home /public_html]# mysql mysql 

    Reading table information for completion of table and column names You can
    turn off this feature to get a quicker startup with -A 

    Welcome to the MySQL monitor. Commands end with; or \g. 
    Your MySQL connection id is 1961 to server version: 3.22.32-log 

    Type 'help' for help. 
    mysql> use mysql;
    mysql> update user set password = password('λ£¨νŠΈνŒ¨μŠ€μ›Œλ“œ')
         > where user = 'root';
    Query OK, 1 row affected (0.00 sec) 

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

root password λ₯Ό μ§€μ •ν•œ 후에 JSBoard μ—μ„œ μ‚¬μš©ν•  database 와 μ‚¬μš©μž 섀정을 ν•˜λ„λ‘ ν•œλ‹€. 등둝을 ν•˜λ €λŠ” USER이름을 "μ‚¬μš©μž", DB이름을 "λ””λΉ„", νŒ¨μŠ€μ›Œλ“œλ₯Ό "νŒ¨μŠ€μ›Œλ“œ" 둜 가정을 ν•œλ‹€. 적절히 λŒ€μž…μ„ ν•΄ 쀘라. 단 μ€‘μš”ν•œ 것은 이것듀을 ν•œκΈ€λ‘œ ν•˜μ§€λŠ” 마라. 먼일이 λ²Œμ–΄μ§€κΈ°λ₯Ό κΈ°λŒ€ν•œλ‹€λ©΄ ν•œκΈ€λ‘œ 해도 상관이 μ—†λ‹€. μ—¬κΈ°μ„œλŠ” 단지 보기 μ‰½κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ ν•œκΈ€λ‘œ ν•˜λŠ” 것 뿐이닀.

    mysql> CREATE database λ””λΉ„; 
    Query OK, 0 rows affected (0.00 sec)

    mysql> GRANT all privileges on λ””λΉ„.* TO μ‚¬μš©μž@localhost
         > IDENTIFIED BY 'νŒ¨μŠ€μ›Œλ“œ';
    Query OK, 0 rows affected (0.00 sec)

    mysql> quit
    Bye

이미 섀정이 λ˜μ–΄ μžˆλŠ” μ‚¬λžŒλ“€μ€ 이 λ‹¨κ³„λŠ” κ·Έλƒ₯ κ±΄λ„ˆ λ›°λ©΄ λœλ‹€.

###4.2. μ„€μ • file 및 μ…‹νŒ… ν•˜κΈ°

λ¨Όμ € λ‹€μš΄λ‘œλ“œ 받은 file의 압좕을 μ„€μΉ˜λ₯Ό μ›ν•˜λŠ” λ””λ ‰ν† λ¦¬μ—μ„œ 압좕을 풀도둝 ν•œλ‹€.

[root@host ~]$ tar xvfpz jsboard-version.tar.gz

압좕을 ν’€λ©΄ jsboard-version μ΄λΌλŠ” 디렉토리가 생성이 λœλ‹€. jsboard/INSTALLER/SQL 둜 이동을 ν•˜μ—¬ λ‹€μŒ λͺ…령을 싀행을 ν•˜μ—¬ jsboard μ—μ„œ μ‚¬μš©μ„ ν•  table ꡬ쑰체λ₯Ό λ§Œλ“€λ„λ‘ ν•œλ‹€. μœ„μ—μ„œ λ“±λ‘ν•œ MySQL 정보듀을 μ•Œμ•„μ•Ό ν•œ λ‹€.

[root@host ~]$ cd jsboard-version/INSTALLER/SQL
[root@host SQL]$ mysql -u μ‚¬μš©μž -p λ””λΉ„ < board-$ostype.sql
Enter password: νŒ¨μŠ€μ›Œλ“œ 

[root@host SQL]$ mysql -u μ‚¬μš©μž -p λ””λΉ„ < userdb-$ostype.sql  
Enter password: νŒ¨μŠ€μ›Œλ“œ 

table ꡬ쑰체λ₯Ό λ§Œλ“€μ—ˆμœΌλ©΄, λ‹€μŒ μ„€μ • file 듀을 μœ„μΉ˜ μ‹œν‚€κ³  κ·Έ file λ“€μ˜ νΌλ―Έμ…˜μ„ μ‘°μ •ν•˜λ„λ‘ ν•œλ‹€.

  1. Root κΆŒν•œμ΄ μžˆμ„ 경우

jsboard/INSTALLER/script μ—μ„œ root 의 κΆŒν•œμ„ κ°€μ§€κ³  μ„€μΉ˜λ₯Ό ν• μˆ˜ μžˆλ‹€λ©΄ root λ₯Ό μ‹€ν–‰ν•˜λ„λ‘ ν•œλ‹€. Root κΆŒν•œμ΄ 없을 경우 2. Root κΆŒν•œμ΄ 없을 경우λ₯Ό 보도둝 ν•œλ‹€.

```bash

[root@host script]$ ./root ########################################################

JSBoard Config File Installer v2.0

Scripted By JoungKyun Kim < http://www.oops.org >

########################################################

STEP 1 Language Check

Can you enable to use KOREAN in this console? [Y/N](default Y) : y <--Enter

########################################################

μ‹œμŠ€ν…œ 정보

########################################################

μ‹œμŠ€ν…œ μ–Έμ–΄ : ν•œκ΅­μ–΄

μ‹œμŠ€ν…œ νƒ€μž… : Linux

μ•„νŒŒμΉ˜ μœ μ €κΆŒν•œ : nobody

μ•„νŒŒμΉ˜ κ·Έλ£ΉκΆŒν•œ : nobody

########################################################

μœ„μ˜ 정보가 틀리면 N 을 μ„ νƒν•΄μ„œ μž¬μ‘°μ • ν•΄ μ£Όμ‹­μ‹œμ˜€. μœ„μ˜ 정보가 λ§žμŠ΅λ‹ˆκΉŒ? [Y/N](default Y) :


   > μœ„μ—μ„œ μ•„νŒŒμΉ˜ μœ μ €κΆŒν•œ κ³Ό μ•„νŒŒμΉ˜ κ·Έλ£ΉκΆŒν•œμ΄ λ§žλŠ”μ§€λ₯Ό 확인을 ν•΄μ•Ό ν•œλ‹€. 이 값듀은 httpd.conf 의 USER, GROUP μ§€μ‹œμžμ˜ κ°’κ³Ό 동일해야 ν•œλ‹€. κ°™μœΌλ©΄ y λ₯Ό 틀리면 n 을 μ„ νƒν•˜λ„λ‘ ν•œλ‹€. n 을 μ„ νƒν•˜λ©΄ λ‹€μŒμ˜ 과정을 κ±°μΉœλ‹€

   ```bash
1. Webserver user configuration
httpd.conf 의 User μ§€μ‹œμžμ˜ 값을 적어 μ£Όμ‹­μ‹œμ˜€ : apache

2. Webserver group configuration
httpd.conf 의 Group μ§€μ‹œμžμ˜ 값을 적어 μ£Όμ‹­μ‹œμ˜€ : apache

μ„€μ • μ™„λ£Œ!!!
[root@host script]$

보톡 FreeBSD λŠ” nobody 일 것이며, Redhat 계열은 nobody λ˜λŠ” apache, Debian 은 www-data 일 κ²½μš°κ°€ λ§Žλ‹€.

  1. Root κΆŒν•œμ΄ 없을 경우

계정 μ‚¬μš©μžμ˜ κ²½μš°μ—λŠ” account λ₯Ό μ‹€ν–‰ν•˜λ„λ‘ ν•œλ‹€.

$ ./account
########################################################
# JSBoard Config File Installer v2.0                   #
# Scripted By JoungKyun Kim < http://oops.org >        #
########################################################

STEP 1 Language Check
---------------------
Can you enable to use KOREAN in this console? [Y/N](default Y) : Y 

config/global.php config/spam_list.txt file 의 group μ†Œμœ κΆŒμ΄ nobody
μ—κ²Œ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. λ§Œμ•½ μœ„μ˜ νŒŒμΌλ“€μ˜ κ·Έλ£Ή μ†Œμœ κΆŒμ„ λ³€κ²½ν•  수 μ—†λ‹€
λ©΄ permission 을 606으둜 맞좰 μ£Όμ‹­μ‹œμ˜€

account λ₯Ό μ‹€ν–‰ ν•˜λ©΄ λ‹€μŒκ³Ό 같이 λ‚˜μ˜¨λ‹€. μœ„μ˜ κ²½μš°λŠ” ν•œκΈ€μ„ μ‚¬μš©ν• μˆ˜ μžˆλ‹€κ³  μ„ νƒν•œ κ²½μš°μ΄λ‹€. μ—†λ‹€λ©΄ 영문 λ©”μ„Έμ§€λ‘œ μœ„μ˜ λ‚΄μš©μ΄ λ‚˜μ˜€κ²Œλœλ‹€. μœ„μ˜ λ‚΄μš©μ€ db의 passwordλ₯Ό κ°€μ§€κ³  μžˆλŠ” file을 λ³΄ν˜Έν•˜κΈ° μœ„ν•œ 것을 μ„€λͺ…ν•œλ‹€. 즉 λ‹€λ₯Έ μœ μ €κ°€ db 의 νŒ¨μŠ€μ›Œλ“œλ₯Ό 볼수 없도둝 ν•˜κΈ° μœ„ν•œ κ²ƒμœΌλ‘œ 이 뢀뢄은 root(μ„œλ²„ κ΄€λ¦¬μž) κ°€ ν•΄ μ£Όμ–΄μ•Ό ν•  뢀뢄이닀. λ§Œμ•½ 이것이 λΆˆκ°€λŠ₯ ν•˜λ‹€λ©΄ 이 νŒŒμΌλ“€μ˜ κΆŒν•œμ„ 606 으둜 섀정을 ν•˜λΌλŠ” μ˜λ―Έμ΄λ‹€. 즉

jsbaord/config/global.php,
jsboard/config/spma_list.php,

에 λŒ€ν•œ group μ†Œμœ κΆŒμ„ nobody 둜 μ§€μ •ν•΄ 달라고 ν•΄μ•Ό ν•œλ‹€ (Debian μ‚¬μš©μž 라면 www-data둜 ν•΄μ•Ό 할것이고 λ‹€λ₯Έ OSλŠ” λͺ¨λ₯΄κ² λ‹€. httpd.conf 의 Group μ§€μ‹œμžμ— μ„€μ •λ˜μ–΄ μžˆλŠ” 값을 확인을 ν•΄μ„œ ν•΄ 달라고 ν•œλ‹€) 즉

[root@host jsboard]$ chgrp nobody config/global.php (rootκ°€ μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” λͺ…λ Ή)
[root@host jsboard]$ chgrp nobody config/spam_list.txt (rootκ°€ μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” λͺ…λ Ή)

λͺ…령을 μ‹€ν–‰ν•΄ 달라고 ν•΄μ•Ό ν•œλ‹€. 이λ₯Ό μ‹œν–‰ν•˜λ©΄ μ•„λž˜μ™€ 같이 μ†Œμœ κΆŒμ„ κ°€μ§€κ²Œ λœλ‹€. 이것은 account λ₯Ό μ‹€ν–‰ν•œ 후에 ν–‰ν•  일듀이닀. (Debian의 κ²½μš°μ—λŠ” nobodyκ°€ μ•„λ‹ˆλΌ www-dataκ°€ λ˜μ–΄μ•Ό ν•œλ‹€. RH 7.x 의 κ²½μš°μ—λŠ” apache 이닀.)

-rw-rw----    accountname    nobody     config/global.php
-rw-rw----    accountname    nobody     config/spam_list.txt

λ§Œμ•½ root κ°€ 이λ₯Ό μ‘ν•˜μ§€ μ•Šκ±°λ‚˜ λ˜λŠ” λΆˆμ„±μ‹€ν•œ root 라면 λ‹€μŒκ³Ό 같이

$ chmod 606 config/global.php
$ chmod 606 config/spam_list.txt

을 μ‹€ν–‰ν•˜κ³ , νΌλ―Έμ…˜μ€ λ‹€μŒκ³Ό 같이 λœλ‹€.

-rw----rw-    accountname    accountname    config/global.php
-rw----rw-    accountname    accountname    config/spam_list.txt

ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ ν–ˆμ„ 경우 μš΄μ˜μ€ κ°€λŠ₯ν•˜λ‚˜ λ³΄μ•ˆμƒ μ’‹μ§€λŠ” μ•Šλ‹€. 그리고 주의 할것은 account user 의 κΆŒν•œμœΌλ‘œ μ„€μΉ˜ μ‹œμ—λŠ” λ³΄μ•ˆμ˜ λ¬Έμ œμ„±μ΄ λŒ€λ‘ 될수 μžˆμœΌλ‹ˆ home directory의 κΆŒν•œμ„ κΌ­ 711둜 ν•΄μ•Όν•œλ‹€.

μœ„μ˜ 두 script file은 κ°„λ‹¨ν•˜κ²Œ mv, chown, chmod λ“±μ˜ shell λͺ…λ Ήμ–΄λ‘œ 이루어져 μžˆμœΌλ‹ˆ file 을 νŽΈμ§‘κΈ°λ‘œ μ—΄μ–΄μ„œ 보면 μ–΄λŠ 곳에 μ–΄λ– ν•œ μ†Œμœ κΆŒκ³Ό κΆŒν•œ 으둜 μ„€μ • file 듀이 μœ„μΉ˜ν•΄μ•Ό ν•˜λŠ”μ§€ μ‰½κ²Œ νŒŒμ•…ν• μˆ˜ μžˆμ„ 것이닀.

μœ„μ˜ λͺ…령을 싀행을 ν•˜λ©΄ μ„€μ • file듀이 각각의 μœ„μΉ˜λ‘œ 자리λ₯Ό 작게 λœλ‹€.

##5. JSBoard μ„€μ •

jsboard/config/ 둜 이동을 ν•˜μ—¬ global.php μ—μ„œ DB의 정보와 λͺ‡κ°€μ§€ 기본정보듀을 μˆ˜μ •μ„ ν•œλ‹€. global.php 의 섀정에 λŒ€ν•΄μ„œλŠ” README.CONFIG νŒŒμΌμ—μ„œ μžμ„Έ ν•˜κ²Œ μ„€λͺ…을 ν•œλ‹€.

############################################################################
#  DATABASE Configuration
############################################################################
$db[server] = ":/var/lib/mysql/mysql.sock"; # DB address
$db[user]   = "";               # DB login user
$db[pass]   = "";               # DB login pass
$db[name]   = "";               # DB name

μœ„μ˜ 뢀뢄을 μ μ ˆν•˜κ²Œ μˆ˜μ •μ„ν•΄ μ£Όλ©΄ λœλ‹€. DB μ„œλ²„κ°€ 외뢀에 쑴재λ₯Ό ν•  κ²½μš°μ—λŠ” ":/var/lib/mysql/mysql.sock" 뢀뢄을 DB μ„œλ²„μ˜ ip address 둜 λŒ€μ²΄λ₯Ό ν•˜λ©΄ 될 것이닀. 그리고 mysql을 source compileν•œ μ‚¬λžŒλ“€λ„ mysql.sock file의 경둜λ₯Ό μ λ‹Ήνžˆ μˆ˜μ •ν•΄ μ£Όλ©΄ λœλ‹€.

socket file 의 κ²½λ‘œλŠ” mysql_config --socket 으둜 μ•Œμˆ˜κ°€ μžˆλ‹€.

##############################################################################
#  BASIC Configuration
##############################################################################
.........

# web path of installed jsboard
$board[path]     = "http://domain.com/jsboard/";

$board[path] 의 값은 jsboardκ°€ μ„€μΉ˜ λ˜μ–΄ μžˆλŠ” μ›Ή 경둜λ₯Ό μ§€μ •ν•΄ μ£Όλ©΄ λœλ‹€. 제일 λ§ˆμ§€λ§‰μ€ / 둜 λ§‰ν˜€ μžˆμ–΄μ•Ό ν•œλ‹€.

##############################################################################
#  login mode Configuration
##############################################################################
# login variation name (This value must be modified as security problem)
$jsboard         = "login";

이 값은 jsboard의 login λ³€μˆ˜λͺ…을 μ§€μ •ν•œλ‹€. λ³΄μ•ˆμƒ λ‹€λ₯Έ κ°’μœΌλ‘œ λ³€κ²½ν•΄ μ£ΌλŠ” 것이 μ’‹λ‹€. μž„μ˜μ˜ μ•ŒνŒŒλ²³μœΌλ‘œ 된 ν•œλ‹¨μ–΄ λ˜λŠ” λ¬΄μž‘μœ„ 단어λ₯Ό μ§€μ •ν•˜λ©΄ λœλ‹€.

# Don't touch this line.
$jsboard         = "jsboard".$jsboard;

이 값은 κ±΄λ“œλ¦¬μ§€ μ•Šλ„λ‘ ν•œλ‹€. 이 값은 μœ„μ—μ„œ μ§€μ •ν•œκ°’μ΄ λ‹€λ₯Έλ³€μˆ˜μ™€ 좩돌이 될까봐 λ°©μ§€ν•˜κΈ° μœ„ν•œ 값이닀.

# location of default page after login
$print[dpage] = "http://domain.com/jsboard/list.php?table=test";

이 값은 둜그인 후에 μœ„μΉ˜ν•  νŽ˜μ΄μ§€λ₯Ό μ§€μ •ν•˜λ„λ‘ ν•œλ‹€.

##############################################################################
#  Theme Configuration
##############################################################################
# Theme Name
$print[theme]    = "@THEME@";

이 값은 영문 νŽ˜μ΄μ§€λ‘œ μš΄μ˜ν•˜λ €λ©΄ EN-default λ₯Ό μ§€μ •ν•˜κ³  ν•œκΈ€ νŽ˜μ΄μ§€λ‘œ μš΄μ˜ν•˜λ €λ©΄ KO-default 둜 지정을 ν•˜λ„λ‘ ν•œλ‹€.

μ΄μƒμ˜ 값듀은 기본적으둜 μˆ˜μ •μ΄ λ˜μ–΄ μ Έμ•Ό 운영이 κ°€λŠ₯ν•˜λ‹€. κ·Έ μ™Έμ—λŠ” JSBoard의 README.OPERATE 에 κ΄€ν•œ λ¬Έμ„œλ₯Ό 읽어 보도둝 ν•œλ‹€.

##6. JSBoard 전체 κ΄€λ¦¬μž νŒ¨μŠ€μ›Œλ“œ λ³€κ²½

JSBoard μ—λŠ” κ΄€λ¦¬μž κΈ°λŠ₯이 쑴재λ₯Ό ν•œλ‹€. μ„€μΉ˜κ°€ μ™„λ£Œ λ˜μ—ˆλ‹€λ©΄ 이제 μ›ΉλΈŒλΌμš°μ Έμ—μ„œ 접속을 ν•΄ 보도둝 ν•œλ‹€. μš°μ„  전체 μ„€μ •λΆ€ν„° μ‚΄νŽ΄ 보도둝 ν•œλ‹€.

http://domain.com/jsboard/login.php?type=admin

μœ„μ˜ URL으둜 접속을 ν•˜λ„λ‘ ν•œλ‹€. JSBoard의 κ΄€λ¦¬μžμ˜ κΈ°λ³Έ ID 와 νŒ¨μŠ€μ›Œλ“œλŠ” μ΄ˆκΈ°κ°’μœΌλ‘œλŠ” admin κ³Ό 0000 으둜 λ˜μ–΄ μžˆμœΌλ‹ˆ 이 ID 와 νŒ¨μŠ€μ›Œλ“œλ‘œ 접속을 ν•˜λ„λ‘ ν•œλ‹€. 가끔 μ΄λ ‡κ²Œ 접근을 ν•  경우 IE 의 경우

http://domain.com/jsboard/admin/admin.php 인터넷 μ‚¬μ΄νŠΈλ₯Ό μ—΄ 수 μ—†μŠ΅λ‹ˆλ‹€. μ§€μ •λœ νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

λΌλŠ” λ©”μ„Έμ§€λ₯Ό 보이면 접근이 μ•ˆλ λ•Œκ°€ μžˆλ‹€. 이 κ²½μš°λŠ” λ‹Ήν™©ν•˜μ§€ 말고 λ¦¬λ‘œλ“œλ₯Ό ν•˜λ©΄ 접근이 κ°€λŠ₯ν•˜λ‹€. 이 λ¬Έμ œκ°€ ν•„μžμ˜ PC의 λ¬Έμ œμΈμ§€ IE 의 문제 μΈμ§€λŠ” 아직 λ°ν˜€μ§„ λ°”κ°€ μ—†λ‹€.

OOPS Administration Center v4.0 μ—μ„œ 달라진 κΈ°λŠ₯은 일단 쒅전에 JSBoard 에 λΉ„ν•΄ μ‚¬μš©μž 관리 툴이 μΆ”κ°€ λ˜μ–΄μ‘Œλ‹€. μ΄λŠ” JSBoard 2.0 버젼 λΆ€ν„° μ§€μ›ν•˜λŠ” login κΈ°λŠ₯을 μ§€μ›ν•˜κΈ° μœ„ν•΄μ„œ 이닀. μ‚¬μš©μž 관리기λŠ₯으둜 λ“€μ–΄κ°€μ„œ 일단 admin 의 νŒ¨μŠ€μ›Œλ“œλ₯Ό λ³€κ²½ν•˜λ„λ‘ ν•œλ‹€. μœ μ €κ΄€λ¦¬ κΈ°λŠ₯μ—μ„œλŠ” 이름, email, url, password 만 변경이 κ°€λŠ₯ν•˜λ‹€. id 의 κ²½μš°μ—λŠ” db μ—μ„œ 직접 변경을 ν•΄μ•Όν•œλ‹€. λ˜ν•œ μ „μ²΄κ΄€λ¦¬μžλŠ” μ‚­μ œκ°€ λΆˆκ°€λŠ₯ ν•˜λ‹€.

##7. JSBoard λ³΄μ•ˆ

보톡 CGI방식을 ν†΅ν•œ upload에 κ΄€λ ¨ν•˜μ—¬ λ³΄μ•ˆλ¬Έμ œκ°€ 많이 λ°œμƒμ„ ν•˜κ³  μžˆλ‹€. ν•˜μ§€λ§Œ λ‹¨μˆœνžˆ CGI 의 μ½”λ“œλ§Œ 의쑴 ν•˜μ—¬ λ³΄μ•ˆ 문제λ₯Ό λ°©μ§€ ν•œλ‹€λŠ” 것은 무리라고 생각이 λ˜μ–΄ apache의 μ„€μ • file μ—μ„œ μ›μ²œμ μœΌλ‘œ μ—…λ‘œλ“œ file 에 λŒ€ν•΄μ„œ 싀행이 λ˜μ§€ μ•Šλ„λ‘ ν•˜λŠ” 섀정을 μ μš©μ‹œμΌœ λ³΄μ•˜λ‹€. ν˜„μž¬ ν•„μžμ˜ 개인 μ„œλ²„μ™€ kldp serverμ—μ„œ 적용이 λ˜μ–΄ 있으며 특히 ν˜ΈμŠ€νŒ…μ„œλ²„μ™€ 같이 μ—¬λŸ¬ 계정듀이 μ‚¬μš©μ„ ν•˜λŠ” κ²½μš°μ— JSBoardλ₯Ό μ‚¬μš©ν• μˆ˜λ„ 있기 λ•Œλ¬Έμ— 이 μ…‹νŒ…μ„ ν•΄ λ†“λŠ” 것을 ꢌμž₯ ν•œλ‹€.

섀정은 λ‹€μŒκ³Ό 같이 ν• μˆ˜ μžˆλ‹€.

각 jsboard μ—μ„œ μ‚¬μš©ν•˜λŠ” data λ””λ ‰ν† λ¦¬μ—μ„œλŠ” php κ°€ ꡬ동이 λ˜μ§€ μ•Šλ„λ‘ ν•΄ 주도둝 ν•œλ‹€.

<DirectoryMatch "^/.*/jsboard/data">
  AddType application/x-httpd-php3-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins
  AddType application/x-httpd-php-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins

  ErrorDocument 403 http://domain.com/ErrorMSG/error_msg.php?l=ko&c=403

  <Files ~ ".*\.ph$">
    Order allow,deny
    Deny from all
  </Files>
</DirectoryMatch>

이 μ„€μ •μ˜ μ˜λ―ΈλŠ” jsboard/data λΌλŠ” 디렉토리 μ•„λž˜μ— μžˆλŠ” μ–΄λ– ν•œ 경둜의 dataλΌλŠ” μ΄λ¦„μ˜ λ””λ ‰ν† λ¦¬μ—μ„œλŠ” .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins의 ν™•μž₯자λ₯Ό κ°€μ§€κ³  있으면 sourceλ₯Ό 좜λ ₯ν•˜λΌλŠ” 의미이며 주의 할것은 여기에 νŒ¨μŠ€μ›Œλ“œ 같은 것이 λ“€μ–΄κ°€ μžˆλŠ” sourceλ₯Ό 올렀 λ†“μœΌλ©΄ μ•ˆλœλ‹€λŠ” μ£Όμ˜ν•΄μ•Ό ν•œλ‹€. μœ„ 의 κ²½λ‘œλŠ” κ²Œμ‹œνŒ 디렉토리 이름을 μ–΄λ–»κ²Œ ν•˜λŠλƒμ— 따라 μˆ˜μ •μ„ ν•΄ μ€˜μ•Ό ν•œλ‹€.

λ˜ν•œ data λΌλŠ” μ΄λ¦„μ˜ 디렉토리 μ•„λž˜λ‘œ .ph둜 직접 μ ‘κ·Όν•  κ²½μš°μ—λŠ” http://domain.com/ErrorMSG/error_msg.php?l=ko&c=403 νŽ˜μ΄μ§€λ₯Ό 좜λ ₯ ν•˜λΌλŠ” μ˜λ―Έμ΄λ‹€.

이 섀정은 root 의 κΆŒν•œλ§Œ κ°€μ§€κ³  있으면 λˆ„κ΅¬λ‚˜ λ‹€ 섀정을 ν•΄ μ£ΌλŠ” 것이 μ’‹μœΌλ©° λ§Œμ•½ 계정 μœ μ €λ“€μ΄λΌκ³  해도 μ„œλ²„ κ΄€λ¦¬μžμ—κ²Œ 이 섀정을 ν•΄ 달라고 ν•˜λŠ”κ²ƒμ΄ μ’‹λ‹€. 이 섀정을 μ•ˆν•΄μ„œ 쒋을것이 ν•˜λ‚˜λ„ μ—†μ„ν…Œλ‹ˆ μ•„λ§ˆ λ‹€ 해쀄 것이닀. :-)

##8. Bug report

버그λ₯Ό λ°œκ²¬ν•  경우 https://github.com/Joungkyun/JSBoard/issues 에 λ¦¬ν¬νŒ…μ„ ν•΄ μ£Όλ©΄ κ°μ‚¬ν•˜κ² λ‹€.

⚠️ **GitHub.com Fallback** ⚠️