[팁] Freebsd : Proftpd_mod_mysql + 제로보드 연동하기

2006. 12. 11. 04:44살아가는 이야기

본인의 귀차니즘으로 인해 한번해보게 되었습니다.

유져관리의 귀잖음과 회원관리툴짜기가 귀잖아서 --;

일단 제환경은

대충 굴러다니는(?) 컴터에 Freebsd 6.2-PRERELEASE입니다.

일단 Proftpd+mod_mysql 을 설치 합니다.
당연히 mysql이랑 아파치, php는 설치되어 있어야겠죠 --;

#cd /usr/ports/ftp/proftpd-mysql

#make install clean

이걸로 설치 끝입니다.
제가 이래서 프비를 사랑(!)합니다. ㅎㅎ

이제 환경을 설정합니다.

일단 /etc/rc.conf에 다음을 추가합니다.

proftpd_enable='YES'

proftpd를 구동시켜봅니다.

#/usr/local/etc/rc.d/proftpd start

잘돌아가는지 확인을 합니다.

#ps aux | grep proftpd
nobody 29789  0.0  0.2  3324  2104  ??  Is   10:54AM   0:00.75 proftpd: (accepting connections) (proftpd)

잘돌아 가네요.

환경을 편집합니다.

#vi /usr/local/etc/proftpd.conf

아래의 구문을 추가합니다.
아 먼저 ftp용으로쓸 계정을 추가해 두세요.. ㅎㅎ

########################################################################
SQLConnectInfo                  제로보드DB:서버포트(보통3306) Mysql계정 비밀번호 PERSESSION

#패스워드가 mysql의 password('xxx') 이런걸로 되어 있으면 Backend를 사용합니다.
#걍 텍스트면 Plaintext
# 제로보드는 비밀번호를 password('xxx')이런식으로 저장합니다.
SQLAuthTypes                    Backend


SQLAuthenticate                 users
#테이블 아이디 패스워드 uid gid homedir shell 이런순으로 적어 주시면 됩니다.
SQLUserInfo                     zetyx_member_table user_id password uid gid homedir shell

SQLDefaultGID 1004
SQLDefaultUID 1002
SQLMinUserGID 100
SQLMinUserUID 500

# 제로보드에 적용된 레벨에 따라 접근권한을 줄려고 설정했습니다.
#이부분은 디버그 모드로 해보시면 이래가실껍니다 물론 SQL도 조금은 알아야 겠죠.
#이설정에서는 회원레벨이 7이상이면 FTP로그인 되도록설정했습니다.
SQLUserWhereClause              'level < 8'
SQLDefaultHomeDir               /mnt/disk01/ftp

# For debugging enable sql logging
SQLLOGFILE /var/log/proftpd.sql.log

RequireValidShell               off
#################################################################################################

제로보드를 설치합니다. (zb41pl8)
제로보드의 schema.sql을 조금만 손보시면 됩니다.
아래의 빨간색 부분을 추가해 주세요.

////////////////////////////////////////////////////////////////////////////
// 회원관리 테이블
///////////////////////////////////////////////////////////////////////////
$member_table_schema ='
  create table $member_table (
  no int(20) not null auto_increment primary key ,
  group_no int(20) not null,
  user_id char(20) not null ,
  password char(41) not null,
  board_name char(255) null default '',
  name char(20) not null,
  level int(2) not null default 10,
  email char(255),
  homepage char(255),
  icq char(20),
  aol char(20),
  msn char(20),
  jumin char(18),
  comment text,
  point1 int(20) default 0,
  point2 int(20) default 0,
  job char(50),
  hobby char(50),
  home_address char(255),
  home_tel char(20),
  office_address char(255),
  office_tel char(20),
  handphone char(20),
  mailing char(1) default 0,
  birth int(13),
  picture char(255),
  reg_date int(13),
  openinfo char(1) default 1,
  is_admin char(1) default 3,
  new_memo char(1) default 0,
  open_email char(1) default 1,
  open_homepage char(1) default 1,
  open_icq char(1) default 1,
  open_aol char(1) default 1,
  open_msn char(1) default 1,
  open_comment char(1) default 1,
  open_job char(1) default 1,
  open_hobby char(1) default 1,
  open_home_address char(1) default 1,
  open_home_tel char(1) default 1,
  open_office_address char(1) default 1,
  open_office_tel char(1) default 1,
  open_handphone char(1) default 1,
  open_birth char(1) default 1,
  open_picture char(1) default 1,

  uid int(10) unsigned DEFAULT FTP User용의 계정 UID,
  gid int(10) unsigned DEFAULT FTP User용의 계정 GID,
  shell char(255) DEFAULT '/usr/sbin/nologin', <- 이부분은 시스템에 맞춰서 바꾸시면 됩니다.
  homedir char(255) DEFAULT '접속할디렉토리',


  KEY group_no (group_no),
  KEY user_id (user_id),
  KEY password (password),
  KEY name (name)
  )

  ';

이미설치되어 있으면 맞춰서 추가만해주시면됩니다.

제로보드 설치야뭐 쉬우니까 --;

이제 proftpd를 디버그모드로 구동시켜서 정상동작여부 테스트를 해보시면 됩니다.

#/usr/local/sbin/proftpd -d 5 -n -c /usr/local/etc/proftpd.conf

생각보다는 쉽습니다. 역시 포트의 힘이겠죠.

반응형