처음깔고서부터 pure-ftpd + apache 2.0 + mysql 5.0 + php4 까지

Category :: 운영체제/FreeBSD


 산적님의 요청으로 끄적거려봅니다.

 cvsup을 이용하여 ports tree를 다운로드 받기위해 cvsup-without-gui를 pkg_add로 설치합니다.
# pkg_add -r cvsup-without-gui


 설치된 패키지를 사용하기 위해..
# rehash


 설치된 패키지를 이용하여 ports tree를 check out 합니다.
# cvsup -g -L 2 -h cvsup.oper.or.kr /usr/share/examples/cvsup/ports-supfile


처음으로 pure-ftpd를 설치합니다.
# cd /usr/ports/ftp/pure-ftpd
# make install clean


 이제 apache 2.0 을 설치합니다. (apache 설정을 위한 httpd.conf 파일은 이따가 설정합니다.)
# cd /usr/ports/www/apache20
# make install clean


 mysql 5.0 을 설치합니다.
# cd /usr/ports/databases/mysql50-server
# make install clean WITH_CHARSET=euckr


 이제 PHP4 ! 먼저 apache에서 모듈로 로딩해서 사용하기 위해 mod_php4를 설치하도록 설정합니다.
# cd /usr/ports/lang/php4
# make config
사용자 삽입 이미지

 갖가지 extension들을 설치하기 위해 다음 디렉토리로 이동하여 설치하되 설정값은 기본값으로 두는 것을 권장하며 추가로 필요로 하는 것들을 체크하시면 됩니다. (mysql 등)
# cd /usr/ports/lang/php4-extensions
# make config install clean


  이까지 별다른 문제 없이 따라왔다면 이제 갖가지 설정을 합니다.
  pure-ftpd의 경우 sample 파일을 복사하는 것만으로도 충분합니다. 더 자세한 설명이 필요한 경우 이곳을 참고하세요.
# cd /usr/local/etc
# cp pure-ftpd.conf.sample pure-ftpd.conf


  다음은 php.ini를 설정합니다. php.ini-dist와 php.ini-recommended 두가지 중 편하신 것을 사용하면 됩니다만, 어느 것을 사용하든 열고 수정해주긴 해야되지 않을까 합니다.
# cp php.ini-recommended php.ini


  apache의 경우 httpd.conf를 설정해야되고.. 우선 설정파일에서 ServerAdmin과 ServerName 수정합니다.
# cd /usr/local/etc/apache2


>>> httpd.conf <<<
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin account@email.net

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work.  See also the UseCanonicalName directive.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make~
# redirections work in a sensible way.
#
ServerName oper.or.kr:80


그리고 약 900번째 줄 부근에 다음 내용을 추가합니다.
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType application/x-httpd-php .php .inc .html
AddType application/x-httpd-php-source .phps

#
# AddHandler allows you to map certain file extensions to "handlers":


 이제 시작 스크립트의 동작을 위해 /etc/rc.conf 파일에 다음 내용들을 추가합니다.
linux_enable="YES"

apache2_enable="YES"
mysql_enable="YES"
pureftpd_enable="YES"


 추가했으면 시작 스크립트를 이용하여 서버를 실행합니다. (물론 중지, 재시작할 때는 stop, restart 입니다.)
# /usr/local/etc/rc.d/pure-ftpd start
# /usr/local/etc/rc.d/mysql-server start
# /usr/local/etc/rc.d/apache2.sh start


 이것으로 pure-ftpd , apache2 , php4의 설정이 끝났습니다. 추가로 mysql 설정파일인 my.cnf를 설정하실 분은 /usr/local/share/mysql/my-*.cnf 파일들을 참고하시기 바랍니다.
2007/05/03 09:14 2007/05/03 09:14

MySQL 4.0 > MySQL 4.1 > MySQL 5.0 [on FreeBSD]

Category :: 운영체제/FreeBSD


  Oper.or.kr 서버에는 FreeBSD 6.1-Release 와 MySQL 4.0 을 사용하고 있었습니다. 그런데 가끔 이것저것 설치할 때마다 MySQL 4.1 이상을 요구하는 것들이 많아지고 해서 이 기회에 MySQL 4.1 로의 업데이트를 예정하고 있었습니다. 그런데 5.0 까지는 괜찮다고 하는 소리가 있어 MySQL 5.0 으로 업데이트 하기로 하고 날짜를 잡고 오늘 새벽 1시 30분 작업을 시작했습니다.
  혹시 이 문서를 참고하여 MySQL 을 업데이트 하고자 하시는 분은 먼저 끝까지 훑어보신 뒤 참고하시기 바랍니다.

  우선 아래 명령어를 이용하여 각각의 데이터 베이스를 백업 받습니다.
# mysqldump --add-drop-table --flush-logs -pROOT_PASSWORD --quote-names EACH_DB > EACH_DB.sql

  그리고 혹시 모르니 데이터 디렉터리를 째로 복사해서 백업하고, 서비스를 종료합니다.
# cp -R /var/db/mysql /var/db/mysql_backup
# /usr/local/etc/rc.d/mysql-server stop

  자 우선 MySQL 4.0 을 삭제하고 MySQL 4.1 을 설치합니다. 혹시 /etc/my.cnf 가 있다면 삭제해 줍니다.
# cd /usr/ports/databases/mysql40-client
# make deinstall
# cd /usr/ports/databases/mysql40-server
# make deinstall
# rm -f /etc/my.cnf
# cd /usr/ports/databases/mysql41-server
# make install WITH_CHARSET=euckr WITH_LINUXTHREADS=yes

  설치를 정상적으로 마쳤다면 아래 명령어로 MySQLd 를 safe 모드로 실행시키고, 무언가(?)를 fix 합니다. 그 다음 데몬을 사알짝 종료시킵니다.
# mysqld_safe --skip-grant-tables --user=mysql &
[1] 1234
# mysql_fix_privilege_tables --password=ROOT_PASSWORD
# kill -9 1234

  자 이제 MySQL 을 시작하고, 백업한 데이터를 각각의 디비에 복원합니다.
# /usr/local/etc/rc.d/mysql-server start
# mysql -pROOT_PASSWORD EACH_DB < EACH_DB.sql

  복원을 마쳤으면 MySQL 4.0 에서 MySQL 4.1 로의 업데이트가 끝났습니다. MySQL 4.1 까지 업데이트 하고자 한다면 이까지의 작업만 행하면 됩니다.

  이제 MySQL 5.0 으로의 업데이트를 시작합니다. MySQL 4.1 로의 업데이트와는 달리 가볍게 컴파일과 설치만 해주면 됩니다.
# /usr/local/etc/rc.d/mysql-server stop

# cd /usr/ports/databases/mysql41-server
# make deinstall
# cd /usr/ports/databases/mysql41-client
# make deinstall

# cd /usr/ports/databases/mysql50-server
# make install WITH_CHARSET=euckr WITH_LINUXTHREADS=yes

# /usr/local/etc/rc.d/mysql-server start

  처음 해보는 업데이트인지라 여러 시행착오도 많았고, 난관도 많았지만 우여곡절 끝에 마무리를 다 지었습니다. 사실 위에 기술한 것 외에 세부적으로 한 것들이 많지만, 시시각각으로 달라지는 것들이라 전부 적지는 않았습니다.
  그 중 한가지를 말하자면, 저는 인코딩을 euckr 로 사용하고 있습니다만, 태터툴즈 등을 사용하기 때문에 디비 안의 일부 테이블에는 utf8 자료가 꽤나 들어있습니다. 이렇게 하나의 디비에 euckr 과 utf8 데이터가 모두 들어있다면 백업을 테이블 단위로 하는 것이 현명한 방법입니다. 대신 백업을 하면서 어떤 테이블에 euckr 가 있고 어떤 테이블에 utf8 가 있는지 정도는 미리 알아야 합니다. 복원할 때 --default-character-set=utf8 과 같은 옵션을 주어야 된다는 점을 잊지 마시고요.
  전 백업을 잘못해서 MySQL 4.0 만 세번을 다시 깔았는데요. 역시 그 중 한가지를 들어보자면 mysqldump 옵션 중에 --quote-names 옵션을 빼먹어서 나중 복원할때 필드명이 예약어인 것들이 걸리면 에러를 수억개 발생시키곤 했습니다.

  처음부터 계획(?)을 확실하게 세워 저처럼 3시간 동안 고생하는 일이 없도록 합시다;

참고 문서 :
http://annyung.oops.org/?m=white&p=mysql41 (AnNyung Official Homepage)
http://krug.or.kr/forums/viewtopic.php?pid=121 (한국 레드햇 사용자 모임 포럼)

2007/03/09 05:10 2007/03/09 05:10

 이전  1   다음