Installation Installer - Joungkyun/JSBoard GitHub Wiki

JSBoard Installation

##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 ~]$ ./configure ... \
              --disable-debug \
              --with-regex=php \
              --with-mod_charset \
              --with-mysqli=shared \
              --enable-inline-optimization \
              --enable-magic-quotes \
              --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/INSTALLER/script ์—์„œ ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‹คํ–‰ ํ•œ๋‹ค. ์‹คํ–‰์ด ๋˜์ง€ ์•Š์œผ๋ฉด ํผ๋ฏธ์…˜ ์„ 755๋กœ ์ˆ˜์ •ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

[root@host script]$ ./preinstall
########################################################
# JSBoard Pre 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 ์ž…๋ ฅ

์•„ํŒŒ์น˜๊ฐ€ nobody ์˜ ๊ถŒํ•œ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋Š”๋“ฏ ์‹ถ์Šต๋‹ˆ๋‹ค. 
๋งž์Šต๋‹ˆ๊นŒ? (์ด ๊ฐ’์€ httpd.conf ์˜ Group ์ง€์‹œ์ž์— ์„ค์ •๋˜์–ด
์žˆ๋Š” ๊ฐ’๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. [Y/N](default Y) : Y # Enter ์ž…๋ ฅ

์œ„์—์„œ ์•„ํŒŒ์น˜ ๊ทธ๋ฃน๊ถŒํ•œ์ด ๋งž๋Š”์ง€ ํ™•์ธ์„ ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๊ฐ’์€ httpd.conf ์˜ GROUP ์ง€์‹œ์ž์˜ ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ™์œผ๋ฉด y ๋ฅผ ํ‹€๋ฆฌ๋ฉด n ์„ ์„ ํƒ ํ•˜๋„๋ก ํ•œ๋‹ค. n ์„ ์„ ํƒํ•˜๋ฉด ๋‹ค์Œ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

httpd.conf ์˜ Group ์ง€์‹œ์ž์˜ ๊ฐ’์„ ์ ์–ด ์ฃผ์‹ญ์‹œ์˜ค : apache

์ž‘์—…์ด ์™„๋ฃŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ ธ๋กœ jsboard/INSTALLER/ ๋กœ ์ ‘์†ํ•˜์—ฌ
์„ค์น˜๋ฅผ ๊ณ„์† ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
[root@host script]$

RH 7.x๋ถ€ํ„ฐ๋Š” httpd.conf ์˜ GROUP ๊ฐ’์ด nobody ์—์„œ apache ๋กœ ๋ณ€๊ฒฝ์ด ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ RH 7.x ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์œ„์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ์ œ๋Œ€๋กœ ์šด์˜์ด ๋œ๋‹ค. ๊ณ„์ • ์œ ์ €์˜ ๊ฒฝ์šฐ์—๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ, ๋‚˜์˜ค๋Š” ๋ฉ”์„ธ์ง€๋Œ€๋กœ ๋”ฐ๋ผ์„œ ํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ jsboard/INSTALLER/include/passwd.php ๋ฅผ ํŽธ์ง‘ํ•œ๋‹ค.

<?php
######################################################
# MySQL root ์˜ ๊ถŒํ•œ ์†Œ์ง€ ์—ฌ๋ถ€
# MySQL root ์˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์•Œ๋ฉด 1, ๋ชจ๋ฅด๋ฉด 0
#
# ๋งŒ์•ฝ MySQL ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ชฐ๋ผ 0 ์œผ๋กœ ์„ค์ •์„ ํ•˜๋ ค๋ฉด MySQL
# root ์˜ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด database ๋ฅผ ์ƒ์„ฑํ•˜๊ณ 
# ์œ ์ € ๋“ฑ๋ก๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋“ฑ๋กํ•ด ์ค€ ํ›„์— INSTALLER ๋ฅผ ์‚ฌ์šฉ
# ํ•  ์ˆ˜ ์žˆ์Œ. ์ด ๊ฐ’๋“ค์€ ์•„๋ž˜์— ๋“ฑ๋กํ•ด ์ค˜์•ผ ํ•จ.
# 
$mysqlroot = 1;

# Specify MySQL Root Password
# mysql์„ ๊ด€๋ฆฌํ•  root์˜ password ๋ฅผ ์ง€์ •
# ์œ„์—์„œ $mysqlroot ์˜ ๊ฐ’์„ 0 ์œผ๋กœ ์ง€์ •ํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” MySQL
# root ๊ฐ€ ์•Œ๋ ค์ค€ mysql ๊ณ„์ • ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ง€์ •ํ•จ.
#
$passwd = "MySQL_ROOT_PASSWORD";

# $mysqlroot = 0 ์ผ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜๋ฅผ ์„ค์ •ํ•จ
#
# mysql root ๊ฐ€ ์ƒ์„ฑํ•ด์ค€ database name ์„ ์ง€์ •
$mysqldatabasename = "";

# mysql root ๊ฐ€ ์ƒ์„ฑํ•ด์ค€ database user name ์„ ์ง€์ •
$mysqlusername = "";

# apache์˜ ์„ค์ •ํŒŒ์ผ(httpd.conf)์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •
# redhat rpm package์˜ ๊ฒฝ์šฐ /etc/httpd/conf/httpd.conf
# debian package์˜ ๊ฒฝ์šฐ /etc/apache/httpd.conf
# ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ–ˆ์„ ๊ฒฝ์šฐ /usr/local/apache/etc/httpd.conf
# ์— ์œ„์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.
#
$apache_config_file = "/etc/httpd/conf/httpd.conf";

# MySQL์˜ socket file ์œ„์น˜๋ฅผ ์ง€์ •. socket file์ด ๋ฌด์—‡์ธ์ง€
# ๋ชจ๋ฅด๊ฒ ์œผ๋ฉด localhost ๋‚˜ 127.0.0.1 ์„ ์ ๋„๋ก ํ•œ๋‹ค. DB ์„œ
# ๋ฒ„๊ฐ€ ์™ธ๋ถ€์— ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น DB์„œ๋ฒ„์˜ ip address๋‚˜ ๋„
# ๋ฉ”์ธ ์ด๋ฆ„์„ ์ ์–ด์ฃผ๋„๋ก ํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ์—๋Š” DB์„œ๋ฒ„์˜ mysql
# ์—์„œ ์„ค์ •ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์œผ๋กœ ์„ค์ •์„ ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ฆ‰
#  mysql -u USER_NAME -p DB_NAME -h DB_address
# ๋กœ ์‰˜์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
#
# socket file์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด mysql_config --socket
# ๋ช…๋ น์œผ๋กœ ์•Œ์ˆ˜๊ฐ€ ์žˆ๋‹ค.
#
$mysql_sock = ":/var/lib/mysql/mysql.sock";
######################################################
?>

์œ„๋Š” passwd.php ์˜ ๋‚ด์šฉ์ด๋ฉฐ, MySQL_ROOT_PASSWORD ๋ถ€๋ถ„์— MySQL ์˜ root password ๋ฅผ ๋„ฃ์–ด ์ค€๋‹ค.

๊ณ„์ • ์œ ์ € ์ฆ‰ MySQL ์˜ root ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ชจ๋ฅด๊ณ  ์‹œ์Šคํ…œ root ์˜ ๊ถŒํ•œ์ด ์—†์„๊ฒฝ์šฐ์—๋Š” ์œ„์˜ ๋ฉ”์„ธ์ง€๋ฅผ ์ž˜ ์ฝ์œผ๋ฉด์„œ ์ ๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ์•„๋ž˜์—๋Š” apache web server์˜ ์„ค์ • ํŒŒ์ผ์ธ httpd.conf๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ ์–ด ์ฃผ๋„๋ก ํ•œ๋‹ค. ๋งŒ์•ฝ DirectoryIndex ์ง€์‹œ์ž๋ฅผ srm.conf ์—์„œ ์ง€์ •์„ ํ•˜๋Š” ์œ ์ €๋“ค์€ srm.conf์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ mysql์˜ sockfile ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด ์ค€๋‹ค. DB ์„œ๋ฒ„๊ฐ€ ์™ธ๋ถ€์— ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” DB์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ด ์ฃผ๋ฉด ๋˜๋ฉฐ, ๋™์ผํ•œ ์„œ๋ฒ„์— ์กด์žฌํ•  ๊ฒฝ์šฐ์—๋Š” 127.0.0.1์„ ์ง€์ •ํ•˜๋„๋ก ํ•œ๋‹ค.

๋‹ค์Œ ์›น ๋ธŒ๋ผ์šฐ์ ธ๋กœ http://domain.com/jsboard/INSTALLER/ ๋กœ ์ ‘๊ทผ์„ ํ•œ๋‹ค.

------------------------------------------------------
                           JSBoard Installer
------------------------------------------------------

                        [ ] Korean [ ] English

------------------------------------------------------
                               [submit]
------------------------------------------------------

๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณผ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๋„๋ก ํ•œ๋‹ค. ํ˜„์žฌ๋Š” ๊ตญ๋ฌธ๊ณผ ์˜๋ฌธ๋งŒ์„ ์ง€์›ํ•œ๋‹ค. ์„ ํƒํ•˜๊ณ  submit ์„ click ํ•˜๋„๋ก ํ•œ๋‹ค.

------------------------------------------------------
                           JSBoard License
------------------------------------------------------

์ฃผ์ ˆ์ฃผ์ ˆ์ฃผ์ ˆ์ฃผ์ ˆ ...........................................
์ฃผ์ ˆ์ฃผ์ ˆ์ฃผ์ ˆ์ฃผ์ ˆ ...........................................
์ฃผ์ ˆ์ฃผ์ ˆ์ฃผ์ ˆ์ฃผ์ ˆ ...........................................

------------------------------------------------------
                                [AGREE]
------------------------------------------------------

์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‚˜๋ฉด ์œ„์˜ JSBoard๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ License๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ฝ์–ด๋ณด๊ณ  ๋™์˜๋ฅผ ํ•˜๋ฉด AGREE๋ฅผ click ํ•œ๋‹ค.

------------------------------------------------------
                       JSBoard Environment Check
------------------------------------------------------

        Jsboard๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค 
        5์ดˆ ํ›„์— ๊ฒฐ๊ณผ๋ฅผ ๋ณด์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

        ๋งŒ์•ฝ Linux์šฉ Browser๋ฅผ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๋ฉด ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ
        ์ž๋™์œผ๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š์„์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
        ์ด๋•Œ์—๋Š” INATALL.MANUALY ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์…”์„œ ์„ค์น˜๋ฅผ ํ•˜์‹ญ์‹œ์˜ค

------------------------------------------------------
                        [ 5์ดˆ๊ฐ„ ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š” ]
------------------------------------------------------

์ƒˆ๋กœ์ด ์ถ”๊ฐ€๋œ ๋ถ€๋ถ„์ด๋‹ค. ์ด ๋ถ€๋ถ„์—์„œ๋Š” ํŠน๋ณ„ํžˆ ํ• ๊ฒƒ์—†์ด 5์ดˆ๊ฐ„ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์ด ๋ถ€๋ถ„์—์„œ OS Type, MySQL ์—ฐ๋™ ์ฒดํฌ, exec() ํ•จ์ˆ˜ ์‚ฌ์šฉ์—ฌ๋ถ€, httpd.conf์˜ index file ์„ค์ • ์—ฌ๋ถ€, jsbaord ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ถŒํ•œ์„ค์ • ์—ฌ๋ถ€๋ฅผ ์ฒดํฌ๋ฅผ ํ•œ๋‹ค.

<!> ์ฃผ์˜ ํ• ๊ฒƒ์€ ์ด ๋ถ€๋ถ„์€ meta tag ๋กœ ์ฒดํฌํ›„์— ๊ฒฐ๊ณผ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด ๊ฐ€๊ฒŒ ๋˜์–ด ์žˆ๋Š”๋ฐ Linux์šฉ Netscape 4.x ๋Š” Meta tag ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™์„ ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” windows ์—์„œ install program์„ ๋‹ค์‹œ ์‹คํ–‰ ํ•˜๋˜์ง€ ๋˜๋Š” ์ˆ˜๋™ ์„ค์น˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•ด์„œ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜๋ฅผ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.

------------------------------------------------------
                    JSBoard Enviornment Check Reuslt
------------------------------------------------------

OS Type         : RedHat
MySQL check     : Failed 

MySQL login์— ์‹คํŒจ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค. jsboard/INSTALLER/include/passwd.php ์—
MySQL์˜ root password๊ฐ€ ์ •ํ™•ํ•œ์ง€ ํ™•์ธํ•ด ์ฃผ์‹œ๊ณ  ๋งž์œผ๋ฉด PHP์˜ ์„ค์น˜์‹œ์—
--with-mysqli ์˜ต์…˜์ด ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์‹ญ์‹œ์˜ค
๋งŒ์•ฝ DB server๊ฐ€ ๋…๋ฆฝ๋˜์–ด ์žˆ๋‹ค๋ฉด INSTALL.MANUALY ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์„ค์น˜
๋ฅผ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค  

index file check        : OK

์ด ๋ถ€๋ถ„์—์„œ ์ œ๋Œ€๋กœ ์„ค์ •์ด ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ์—๋„ ์—๋Ÿฌ๋ฅผ ๊ณ„์† ๋ฟŒ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€
์กด์žฌํ•œ๋‹ค. ์ด๋Ÿด๋•Œ์—๋Š” httpd.conf์˜ DirectoryIndex ์ง€์‹œ์ž์˜ ์•ž์— ๊ณต๋ฐฑ ๋ฌธ
์ž๊ฐ€ ์žˆ๋Š”์ง€ ์‚ดํŽด ๋ณด๊ณ  ๋งŒ์•ฝ ๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉด ์ด๋ฅผ ์‚ญ์ œํ•ด ์ฃผ๋ฉด ๋œ๋‹ค. 

Permission check        : OK


------------------------------------------------------

------------------------------------------------------

์œ„์˜ ํ™”๋ฉด์€ ํ™˜๊ฒฝ์ฒดํฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์œ„์—์„œ๋Š” ์—๋Ÿฌ๊ฐ€ ํ•˜๋‚˜ ๋œฌ๊ฒƒ์„ ๋ณด์—ฌ ์ฃผ๊ณ  ์žˆ๋Š”๋ฐ ์œ„์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ชจ๋‘ OK์ด๋ฉด ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์œ„์™€ ๊ฐ™์ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์‹œ ์ฒ˜์Œ ํ™”๋ฉด์œผ๋กœ ๊ฐ€๊ฒŒ ๋œ๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ์— ์œ„์™€๊ฐ™์ด ์ ๊ฒ€ ํ•  ์‚ฌํ•ญ๋“ค์„ ์ œ์‹œํ•ด ์ค€๋‹ค.

ํ˜น์‹œ ์œ„์™€ ๊ฐ™์ด MySQL login failed error ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ž„์˜์˜ php file ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์œผ๋กœ ๋งŒ๋“ค๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด ๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

>
>์œ„์™€๊ฐ™์ด ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰์„ ํ–ˆ์„๊ฒฝ์šฐ OK๊ฐ€ ๋–จ์–ด์ ธ์•ผ์ง€๋งŒ ๋œ๋‹ค. ์•„๋งˆ Installer ์—์„œ failed๊ฐ€ ๋‚˜์˜จ๋‹ค๋ฉด ์ด๊ฒƒ ์—ญ์‹œ failed๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ ๊ฒƒ์ด๋‹ค. 


                       JSBoard Installer

                        MySQL password
                       [              ]

                    Password ์ดˆ๊ธฐํ™” [reset]



>์ด ํ™”๋ฉด์—์„œ MySQL์˜ root password ๋ฅผ ๋„ฃ๊ณ ์„  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅธ๋‹ค. ์•„๋ž˜์˜ Password ์ดˆ๊ธฐํ™”์˜ ***reset*** ์„ ํด๋ฆญํ•˜๋ฉด session ์— ์žˆ๋Š” ๊ธฐ์กด์˜ password ๋ฅผ ์ง€์›Œ๋ฒ„๋ฆฌ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๊ณ„์ • ์œ ์ €๋Š” MySQL root password ๋Œ€์‹  system ๊ด€๋ฆฌ์ž๊ฐ€ ์ƒ์„ฑํ•ด์ค€ db ๋กœ๊ทธ์ธ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. 


                       JSBoard Installer

     DB value                    Admin value
     -------------------------------------------------
     DB name [               ]   ID    [               ]
     DB user [               ]   NAME  [               ]
     DB pass [               ]   EMAIL [               ]

                         [ E N T E R ] 

DB name๊ณผ DB user๋Š” MySQL์— ๋“ฑ๋ก์ด ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒƒ์„ ์ง€์ •ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.


>JSBoard ๊ฐ€ ์‚ฌ์šฉํ•  DB ์ •๋ณด๋“ค์„ ์ž…๋ ฅํ•œ๋‹ค. ์ฃผ์˜ ํ•  ๊ฒƒ์€ ์•„๋ž˜์— ์ ์–ด ๋†“์•˜๋“ฏ์ด MySQL์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด DB name, DB user๋ฅผ ๊ธฐ์ž…ํ•ด์•ผ ํ•œ๋‹ค. 
>
>Admin value ๋Š” 2.0 ๋ถ€ํ„ฐ ์ถ”๊ฐ€๋˜๋Š” ์ธ์ฆ ๋ชจ๋“ˆ์„ ์œ„ํ•ด ์„ค์ •์„ ํ•ด ์ฃผ๋„๋ก ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ง€์ •ํ•˜๋Š” id, name, email ์€ jsboard 2.0 ์˜ ์ „์ฒด ๊ด€๋ฆฌ์ž ์ •๋ณด๋ฅผ ๋ถ€์—ฌ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 
>
>๊ณ„์ • ์œ ์ €์˜ ๊ฒฝ์šฐ์—๋Š” DB value ์ชฝ์€ ์ˆ˜์ •์„ ๋ชปํ•˜๊ฒŒ ๊ณ ์ •์ด ๋œ๋‹ค. 
>
>๊ทธ๋ฆฌ๊ณ  Enter ๋ฅผ clickํ•˜๋ฉด, ๋ณ„๋‹ค๋ฅธ ์—๋Ÿฌ๊ฐ€ ์—†๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ ์ฐฝ์ด ๋œจ๋ฉด์„œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๊ฐ€๊ฒŒ ๋ ๊ฒƒ์ด๋‹ค. 

    ๋“ฑ๋ก์ด ์™„๋ฃŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    Admin Page๋กœ ์ด๋™์„ ํ•ฉ๋‹ˆ๋‹ค.
    Admin User์˜ ์ดˆ๊ธฐ Password๋Š”
    0000 ์ž…๋‹ˆ๋‹ค.

##5. JSBoard ์šด์˜

์„ค์น˜๊ฐ€ ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ ธ๋Š” ๋กœ๊ทธ์ธ ์ฐฝ์œผ๋กœ ์ด๋™์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ User์—๋Š” ์•„๊นŒ Admin value ์— ์ง€์ •ํ•ด ์ฃผ์—ˆ๋˜ id ๋ฅผ ์ ์–ด์ฃผ๊ณ , Password ์—๋Š” '0000'์„ ๋„ฃ์–ด์ฃผ๋„๋ก ํ•œ๋‹ค. 

๋กœ๊ทธ์ธ ํ›„์— ๊ฐ„ํ˜น๊ฐ€๋‹ค๊ฐ€ IE์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 

 <!> "http://domain.com/jsboard/admin/admin.php ์ธํ„ฐ๋„ท ์‚ฌ์ดํŠธ๋ฅผ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ง€์ •๋œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

์ด ๋ฉ”์„ธ์ง€๋ฅผ ๋งŒ๋‚˜๋”๋ผ๋„ ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  ํ™•์ธ์„ ๋ˆ„๋ฅธ ํ›„์— F5 ๋˜๋Š” reload ๋ฅผ ํ•ด์ฃผ๋ฉด admin page ์— ์ ‘์†์ด ๋œ๋‹ค. ์ด ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋Š” ๊ด€๋ฆฌ์ž์˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ  0000์—์„œ ๋ณ€๊ฒฝ์„ ํ•˜๊ณ  ๋‚˜๋ฉด ๋‹ค์‹œ๋Š” ๋‚˜์ง€ ์•Š๋Š”๋‹ค. 

์ผ๋‹จ admin ์— ๋กœ๊ทธ์ธ์„ ํ•œ ํ›„์— ์ œ์ผ ๋จผ์ € ํ•  ๊ฒƒ์€ "์œ ์ € ๊ด€๋ฆฌ" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  admin user ์˜ password ๋ฅผ 0000 ์—์„œ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๋„๋ก ํ•œ๋‹ค. ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” ๋กœ๊ทธ์•„์›ƒ์„ ํ•œ ํ›„์— ๋‹ค์‹œ ๋กœ๊ทธ์ธ์„ ํ•˜๋„๋ก ํ•œ๋‹ค. 

์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€๋Š” http://domain.com/jsboard/admin/ ์œผ๋กœ ์ ‘๊ทผ์„ ํ• ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ํŒจ์Šค์›Œ๋“œ ๋ณ€๊ฒฝํ›„ ๋‹ค์‹œ ๋กœ๊ทธ์ธ์„ ํ•˜์˜€์œผ๋ฉด "์ „์—ญ๋ณ€์ˆ˜ ์„ค์ •" ์„ ํด๋ฆญํ•˜์—ฌ ๋‹ค์Œ์˜ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•ด ์ค˜์•ผ ํ•œ๋‹ค. 

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

์ด ๊ฐ’์€ ๋กœ๊ทธ์ธ ๋ณ€์ˆ˜๋ช…์„ ๋ณ€๊ฒฝํ•œ๋‹ค. ์ฆ‰ ๋ณด์•ˆ ์œ„ํ—˜ ์š”์†Œ๊ฐ€ ๋ฐœ์ƒํ• ์ง€๋ผ๋„ ์ด ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด ์ ‘๊ทผ์ด ์–ด๋ ต๊ฒŒ ๋œ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‚˜๋‘์ง€ ๋ง๊ณ  ๊ผญ ๋ณ€๊ฒฝํ•˜๋„๋ก ํ•œ๋‹ค.

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

์ด ๊ฐ’์€ login ์„ ํ•œ ํ›„์— ๊ธฐ๋ณธ์œผ๋กœ ๊ฐˆ ์œ„์น˜๋ฅผ ์ง€์ •์„ ํ•˜๋„๋ก ํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์€ login ์ฐฝ ์„ค๋ช…์„ ํ•˜๋Š” README.OPERATE ๋ฌธ์„œ์—์„œ ๋”ฐ๋กœ ๋‹ค๋ฃจ๋„๋ก ํ•  ๊ฒƒ์ด๋‹ค.

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

์ด ๊ฐ’์€ jsboard ๊ฐ€ ์„ค์น˜ ๋˜์–ด ์žˆ๋Š” ์›น ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋ฉ”์ผ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฒŒ์‹œํŒ ์œ„์น˜๋ฅผ ๋งํฌ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ด ๋˜๋ฉฐ, ๋˜ํ•œ ๊ธ€ ๋“ฑ๋ก์„ ํ• ๋•Œ referrer ๋ฅผ ์ฒดํฌํ•˜์—ฌ, ๊ฒŒ์‹œํŒ์— ์ŠคํŒธ์„ ์˜ฌ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฒฝ๋กœ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์€ / ๋กœ ๋ง‰ํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

#################################################
#  If registed article as follow information, requried passwd of super user
#################################################
$compare[name]   = "์ฅ”์žฅ";
$compare[email]  = "[email protected]";

์ด ์„ค์ •์€ ์ „์ฒด ๊ด€๋ฆฌ์ž์˜ ํŒจ์Šค์›Œ๋“œ๋กœ๋งŒ ์ด๋ฆ„๊ณผ email ์„ ๋“ฑ๋กํ• ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œ์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๊ด€์‹ฌ์ด ์žˆ์œผ๋ฉด ์„ค์ •์„ ํ•˜๋„๋ก ํ•œ๋‹ค.

์ผ๋‹จ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ •๋„๋งŒ ์„ค์ •์„ ํ•˜๋ฉด ์ „์ฒด์ ์ธ ์šด์˜์— ๋ณ„ ์ง€์žฅ์€ ์—†๋‹ค. ๊ฐ๊ฐ ๊ฒŒ์‹œํŒ์— ๋Œ€ํ•œ ์„ค๋ช…์€ README.OPERATE์— ๊ด€ํ•œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ํ•œ๋‹ค.

##6. JSBoard ๋ณด์•ˆ

๋ณดํ†ต CGI ๋ฐฉ์‹์„ ํ†ตํ•œ upload ์— ๊ด€๋ จํ•˜์—ฌ ๋ณด์•ˆ๋ฌธ์ œ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹จ์ˆœํžˆ CGI ์˜ ์ฝ”๋“œ๋งŒ ์˜์กดํ•˜์—ฌ ๋ณด์•ˆ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ฌด๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋˜์–ด apache์˜ ์„ค์ • file ์—์„œ ์›์ฒœ์ ์œผ๋กœ ์—…๋กœ๋“œ file ์— ๋Œ€ํ•ด์„œ ์‹คํ–‰์ด ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์„ค์ •์„ ์ ์šฉ ์‹œ์ผœ ๋ณด์•˜๋‹ค. ํ˜„์žฌ ํ•„์ž์˜ ๊ฐœ์ธ ์„œ๋ฒ„์™€ kldp server์—์„œ ์ ์šฉ์ด ๋˜์–ด ์žˆ์œผ๋ฉฐ ํŠนํžˆ ํ˜ธ์ŠคํŒ…์„œ๋ฒ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ณ„์ •๋“ค์ด ์‚ฌ์šฉ์„ ํ•˜๋Š” ๊ฒฝ์šฐ์— JSBoard ๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์…‹ํŒ…์„ ํ•ด ๋†“๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ• ์ˆ˜ ์žˆ๋‹ค.

<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 .vbs .ins .sh .pl .htm .html .shtml ์˜ ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด source ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋ฉฐ ์ฃผ์˜ ํ•  ๊ฒƒ์€ ์—ฌ๊ธฐ์— ํŒจ์Šค์›Œ๋“œ ๊ฐ™์€ ๊ฒƒ์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š” source ๋ฅผ ์˜ฌ๋ ค ๋†“์œผ๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ์œ„์˜ ๊ฒฝ๋กœ๋Š” ๊ฒŒ์‹œํŒ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ์–ด๋–ป๊ฒŒ ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์ˆ˜์ •์„ ํ•ด ์ค˜์•ผ ํ•œ๋‹ค.

๋˜ํ•œ data ๋ผ๋Š” ์ด๋ฆ„์˜ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜๋กœ .ph๋กœ ์ง์ ‘ ์ ‘๊ทผํ•  ๊ฒฝ์šฐ์—๋Š” http://domain.com/ErrorMSG/error_msg.php?l=ko&c=403 ํŽ˜์ด์ง€๋ฅผ ์ถœ๋ ฅ ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

์ด ์„ค์ •์€ root ์˜ ๊ถŒํ•œ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋‹ค ์„ค์ •์„ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์œผ๋ฉฐ ๋งŒ์•ฝ ๊ณ„์ • ์œ ์ €๋“ค์ด๋ผ๊ณ  ํ•ด๋„ ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ด ์„ค์ •์„ ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค. ์ด ์„ค์ •์„ ์•ˆํ•ด์„œ ์ข‹์„๊ฒƒ์ด ํ•˜๋‚˜๋„ ์—†์„ํ…Œ๋‹ˆ ์•„๋งˆ ๋‹ค ํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

๊ณ„์ • ์œ ์ €๋“ค์˜ ๊ฒฝ์šฐ์—๋Š” db ์˜ password ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” file์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์„ ์„ค๋ช…ํ•œ๋‹ค. ์ฆ‰ ๋‹ค๋ฅธ ์œ ์ €๊ฐ€ db ์˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ณผ์ˆ˜ ์—†๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์ด ๋ถ€๋ถ„์€ root(์„œ๋ฒ„ ๊ด€๋ฆฌ์ž) ๊ฐ€ ํ•ด ์ฃผ์–ด์•ผ ํ•  ๋ถ€๋ถ„์ด๋‹ค. ๋งŒ์•ฝ ์ด๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค๋ฉด ์ด ํŒŒ์ผ๋“ค์˜ ๊ถŒํ•œ์„ 606 ์œผ๋กœ ๊ทธ๋ƒฅ ๋‘๋ฉด ๋œ๋‹ค. ์ฆ‰,

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

์— ๋Œ€ํ•œ group ์†Œ์œ ๊ถŒ์„ nobody ๋กœ ์ง€์ •ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•ด์•ผ ํ•œ๋‹ค (Debian ์‚ฌ์šฉ์ž ๋ผ๋ฉด www-data ๋กœ ํ•ด์•ผ ํ•  ๊ฒƒ์ด๊ณ , RH 7.x ์˜ ๊ฒฝ์šฐ์—๋Š” apache ์ด๋‹ค. ๋‹ค๋ฅธ OS๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค. httpd.conf ์˜ Group ์ง€์‹œ์ž์— ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ํ™•์ธ์„ ํ•ด์„œ ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•œ๋‹ค) ์ฆ‰

[root@host jsboard]$ # root๊ฐ€ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ น
[root@host jsboard]$ chgrp nobody config/global.php
[root@host jsboard]$ # root๊ฐ€ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ น
[root@host jsboard]$ chgrp nobody config/spam_list.txt

๋ช…๋ น์„ ์‹คํ–‰ํ•ด ๋‹ฌ๋ผ๊ณ  ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์‹œํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์ด๊ฒƒ์€ 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 ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด

[root@host jsboard]$ chmod 606 config/global.php
[root@host jsboard]$ 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๋กœ ํ•ด์•ผํ•œ๋‹ค.

##7. Bug report

๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•  ๊ฒฝ์šฐ https://github.com/Joungkyun/JSBoard/issues ์— ๋ฆฌํฌํŒ…์„ ํ•ด ์ฃผ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ