2009년 12월 30일 수요일

XE 설치

ftp.sayclub.com
/pub/linux/centos/5.2/os/i386

useradd 만들id
(-D옵션을 통해 루트 디렉토리를 정할 수 있다)
passwd 만들id
groupadd 그룹이름


  1. apache 2.2.11
    다운로드 : http://httpd.apache.org/
  2. php 5.2.9
    다운로드 : http://php.net/
  3. mysql 5.0.77
    다운로드 : http://mysql.com/ mysql-5.0.77-linux-i686-icc-glibc23.tar.gz
    단, mysql은 성능 향상을 위해서 직접 컴파일 하지 않고 Intel C/C++ compiled 를 사용하였습니다.
  4. Zend Optimizer 3.3.3
    다운로드 : http://zend.com
  5. xCache 1.2.2 (공식사이트 적용 결과 eAccelerator로 채택)
    다운로드 : http://xcache.lighttpd.net/
  6. eAccelerator 0.9.5.3
    다운로드 : http://bart.eaccelerator.net/source/0.9.5.3/

 

MySQL 5.0.77 설치

  1. 다운 받은 mysql-5.0.77-linux-i686-icc-glibc23.tar.gz 를 /usr/local/msyql-5.0.77-linux-i686-icc-glibc23.tar.gz 로 복사합니다.
    파일 이름은 버전, glibc 버전에 따라 다를 수 있습니다.
    /bin/cp msyql-5.0.77-linux-i686-icc-glibc23.tar.gz /usr/local
  2. /usr/local 디렉토리로 이동합니다.
    cd /usr/local
  3. 압축 해제를 합니다.
    tar xvfz msyql-5.0.77-linux-i686-icc-glibc23.tar.gz
  4. mysql 버전 업그레이드시마다 디렉토리 명을 재지정하지 않기 위해 심볼릭 링크를 겁니다.
    ln -s msyql-5.0.77-linux-i686-icc-glibc23 mysql
    위와 같이 하면 차후부터 /usr/local/mysql 을 mysql의 경로로 지정하면 됩니다.
    다만 /usr/local/mysql/data 디렉토리의 경우 잘 관리를 해주어야 합니다.
  5. mysql에서 권장하는 데로 mysql 계정과 그룹을 생성하여 줍니다.
    groupadd mysql
    useradd -g mysql mysql
  6. mysql디렉토리에 권한을 부여합니다.
    cd /usr/local/mysql
    chown -R mysql .
    chgrp -R mysql .
  7. DB 인스톨을 합니다. (Intel C/C++ 컴파일 버전은 따로 컴파일 할 필요 없이 DB 생성을 하면 됩니다.
    ./scripts/mysql_install_db --user=mysql
    chown -R root .
    chown -R mysql data
  8. mysql 대몬을 시작합니다.
    ./bin/mysqld_safe --user=mysql &
  9. 새롭게 MySQL을 설치한 경우 MySQL ROOT 비밀번호를 지정해주어야 합니다.
    ./bin/mysqladmin -u root password '비밀번호'

이제 mysql 설치는 끝났고 /usr/local/mysql/bin/mysql -u root -p 명령을 통해서 root 계정으로 접속 테스트를 하면 됩니다.

*주의: XE를 설치하기전에 시스템을 재부팅하면 mysql 을 시작할 수 없다.

mysql 이 시작되지 않으면 다시 설치하여야 한다.

 

Error


Apache, PHP 컴파일 설치

PHP는 Apache의 모듈로 탑재되어 동작을 하기에 Apache과 PHP는 같이 설치를 하는 것이 일반적입니다.

여기 사용된 Apache, PHP파일은 다음과 같습니다.

  • Apache : httpd-2.2.11.tar.gz
  • PHP : php-5.2.9.tar

프로그램 버전에 따라 다른 이름을 가질 수 있습니다만 각 압축을 해제한 파일을 아래와 같은 위치에 두도록 합니다.

  • Apache : /root/httpd
  • PHP : /root/php

아래와 같은 순서로 컴파일 하시면 됩니다.

  1. 아파치
    [root@localhost apache]# ./configure --prefix=/usr/local/apache --enable-so --enable-modules=so --with-mpm=worker --enable-rewrite
    [root@localhost apache]# make
    [root@localhost apache]# make install
    다양한 옵션을 줄 수 있지만 최소한의 설치만을 위해서 위와 같이 enable so, enable rewrite 만 옵션으로 두고 컴파일을 합니다.
    설치되는 경로는 /usr/local/apache 로 합니다.
    /usr/local/apache/bin/apachectl start
    위의 명령으로 웹서버를 실행하여 확인하실 수 있습니다.

    noacceptable C compiler found in $PATH 에러가 나오는 경우

  2. PHP
    PHP의 경우 다양한 연동 프로그램이 필요할 수 있습니다.
    예를 들어 XE에서 썸네일을 만들기 위해 GD Library가 필요하기도 하고 png, gif등을 다루기 위한 라이브러리가 필요하기도 합니다.
    소개하고 있는 CentOS에서는 yum을 이용하여 관련 라이브러리들을 먼저 설치할 수 있고 다른 리눅스 OS도 비슷한 라이브러리 설치 도구를 제공할 것입니다.
    1. 필요한 라이브러리 설치 (CentOS)
      yum -y install libxml2 libjpeg libpng freetype
    2. PHP 컴파일

      에러 나는 경우


      펼쳐두기..

      # tar xvfj php-5.2.9.tar.bz2
      # mv php-5.2.9 /root/php
      # cd /root/php
      # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --enable-magic-quotes --disable-dmalloc --enable-bcmath --enable-gd-native-ttf --enable-sysvsem --enable-sysvshm --enable-inline-optimization --enable-mbstring --enable-mbregex --enable-gd-native-ttf --enable-ftp --with-jpeg-dir --with-freetype-dir --with-curl --with-zlib --with-gd  --with-ttf --with-iconv --disable-debug
      make
      make install
    3. PHP의 make install 시에 libmysqlclient.so.15 를 찾을 수 없다는 에러가 나오면 다음과 같이 해당 파일을 symbolic link로 처리할 수 있습니다.
      ln -s /usr/local/mysql/lib/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
      다시 make install 하면 됩니다.
    4. php.ini 파일 복사/ 설정
      php 구동시 기본 설정을 읽는 php.ini 파일을 여기서는 /usr/local/php/lib/php.ini로 복사 합니다.
      cp php.ini-dist /usr/local/php/lib/php.ini
      위 파일을 열고 아래 부분을 수정합니다.
      register_globals = Off
      post_max_size = 200M
      file_uploads = On
      upload_tmp_dir = /tmp
      uplaod_max_filesize = 200M
      allow_url_fopen = Off
      allow_url_include = Off
      위의 설정중 이미 동일하게 설정된 것도 있을 수 있습니다.
      post_max_size는 post되는 정보의 사이즈를 설정하는 것이고 upload_max_filesize는 업로드 가능한 최고용량이니 서비스에 맞게 적절히 수정하시면 됩니다.
  3. Zend Optimizer 설치
    PHP의 기본 상태로 사용시 성능이 매우 저조한데 이를 위해 Zend Optimizer를 설치합니다.
    다운로드 받은 Zend Optimizer 압축 해제후 아래와 같이 실행하면 자동으로 설치 됩니다.
    ./install
    위 스크립트를 실행하면 설치 스크립트가 자동으로 위치를 읽어서 진행을 하게 됩니다.
    Zend Optimizer를 설치하면 /etc/php.ini 는 /usr/local/Zend/etc/php.ini 로 대체됩니다.
    관련문서1 관련문서2
  4. Apache에 PHP 설정하기
    아파치 설정파일에 PHP 실행을 연동하기 위한 설정을 합니다.
    /usr/local/apache/conf/httpd.conf 파일을 열어서 아래와 같은 부분을 변경합니다.
    LoadModule php5_module        modules/libphp5.so
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
    <IfModule mime_module>
        ...
        AddType application/x-httpd-php .php
        ...
    </ifModule>
  5. xCache 연동 (eAccelerator로 대체)

  6. eAccelerator 설치

    bash: phpize: command not found

    다운로드 받은 파일의 압축을 풀고 다음과 같이 설치하시면 됩니다.

    # tar xvfj eaccelerator-0.9.5.3.tar.bz2
    # cd eaccelerator-0.9.5.3
    # ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
    # make && make install
    그리고 /usr/local/Zend/etc/php.ini 파일을 열어서 Zend Optimizer 문 위에 아래와 같은 내용을 입력하세요.
    zend_extension_ts="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
    eaccelerator.shm_size="16"
    eaccelerator.cache_dir="/var/cache/eaccelerator"
    eaccelerator.enable="1"
    eaccelerator.optimizer="1"
    eaccelerator.check_mtime="1"
    eaccelerator.debug="0"
    eaccelerator.filter=""
    eaccelerator.shm_max="0"
    eaccelerator.shm_ttl="0"
    eaccelerator.shm_prune_period="0"
    eaccelerator.shm_only="0"
    eaccelerator.compress="1"
    eaccelerator.compress_level="9"
    eaccelerator.log_file="/var/log/eaccelerator.log"
    * /var/cache/eaccelerator 디렉토리를 생성하셔야 합니다.
    # mkdir /var/cache/eaccelerator
    # chown nobody
    /var/cache/eaccelerator
    # chmod 700 /var/cache/eaccelerator

    정상적으로 설치 되었다면 위와 같이 eAccelerator, Zend Optimizer 둘다 보여야 합니다.

  7. phpMyAdmin 설치

Memo
mysql 시작
/usr/local/mysql/bin/mysqld --user=mysql &
아파치 시작
/usr/local/apache/bin/apachectl restart

/usr/local/Zend/etc/php.ini
/usr/local/apache/htdocs
/usr/local/apache/conf/httpd.conf
/usr/lib/php/modules/eaccelerator.so
/etc/vsftpd/vsftpd.conf

펼쳐두기..



#vi /usr/local/apache/htdocs/conf/httpd.conf
#URL Rewrite 설정
<Directory "/usr/local/apache/htdocs">
...
AllowOverride All
...
</Directory>
비어있는 디렉토리 접근 불가
Options Indexes FollowSymLinks -> Options FollowSymLinks
ssh 설정
#vi /etc/ssh/sshd_config
#PermitRootLogin yes -> PermitRootLogin no
/* vsftpd 설정 */
/etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
anonymous_enable=NO
#vi /etc/vsftpd/chroot_list




리눅스 압축 명령어

Linux 에서 주로 사용되는 압축 명령들

1) tar
  home 라는 디렉토리를 압축 하는 예제

  압축 : tar cvfz home.tgz /home
  압축 해제  : tar xvfz home.tar

2) tar와 gz이 같이 있을 경우 압축 해제(tgz, tar.gz)

       gzip -dc 화일명.tgz | tar -xvf -
       tar -xvfz 화일명.tgz

3) gzip 명령
    압축하기 : gzip 화일명 =>  gzip file.tar
    압축해제 : gzip -d 화일명  ==>  gzip -d file.tar.gz
 
4) compress 압축 명령
  압축하기 : compress 화일명
  압축해제 : uncompress 화일명.z
 
5) zip : unzip 화일명.zip

6) compress와 tar의 경우 해제시(tar.z)

  uncompress -c 화일명 | tar xvf -

http://www.fduser.org/blog/73

2009년 12월 12일 토요일

SSH 설치부터 접속까지. - Linux CentOS

  1. ssh 설치 - 보통은 이미 설치되어 있다.

  2. 방화벽 허용
    ssh (23) 포트를 풀어준다.

  3. Root 계정 비허용
    #vi /etc/ssh/sshd_config
    #LoginGraceTime 2m
    PermitRootLogin no
    #StrictModes yes
    #MaxAuthTries 6
    #PermitRootLogin yes 되있는 것을 PermitRootLogin no 라고 고침.

  4. 접속
    putty 라는 프로그램을 사용한다. (무설치)
    필자는 22번 포트에 아이피 주소를 적고 접속하였다.



리눅스 계정 기본 사용법

리눅스 기본 명령어

 ls 명령어 :  ls 는 파일의 목록을 보는 명령어이다. 이 명령어에는 많은 옵션이 있으며 여기에서는 가장 많이 사용되는 몇 가지만 알아보도록 한다.

 $ ls <옵션>

 F : 파일 유형을 나타내는 기호를 파일명 끝에 표시한다
 l : 파일에 관한 상세 정보를 나타낸다.
 a : dot 파일(.access 등)을 포함한 모든 파일을 나타낸다.
 t : 파일이 생성된 시간별로 나타낸다.

cat 명령어 : 파일의 내용을 화면에 출력한다.

 $ cat 파일이름

 mv 명령어 : 파일의 위치를 옮기거나 이름을 바꿀 경우 사용된다.

 이름 변경 : $ mv old_name new_name
 파일의 위치변경 : $ mv file ../main/new_file

 cp 명령어 : 파일을 복사한다

 $ cp file_a file_b (file_a을 file_b이란 이름으로 복사한다)
 $ cp file_1 ../main/file_b (file_1을 ../main/file_b이란 이름으로 복사한다)

 more 명령어 cat 명령어는 실행을 시키면 한 화면을 넘기는 파일일 경우 그 내용을 모두 볼 수가 없다. 하지만 more 명령어를 사용하면 한 화면 단위로 보여줄 수 있어 유용하게 사용된다.

 Space bar : 다음 페이지
 Return(enter) key : 다음 줄
 v : vi 편집기로 전환
 /str : str 문자를 찾음
 b : 이전 페이지
 q : more 상태를 빠져나감
 h : 도움말
 = : 현재 line number를 보여줌

 chmod 명령어 : 사용자에 대한 파일의 접근을 제한하는데 사용된다.

$ chmod 755 file_name

 rm 명령어 : 파일을 삭제한다.

 $ rm <파일이름> (파일을 삭제한다)
 $ rm -r <디렉토리> (디렉토리 전체를 삭제한다)
 $ rm -i a.* (a로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제)

 mkdir 명령어 : 디렉토리를 만든다.

 $ mkdir <디렉토리이름>

 pwd 명령어 : 현재 자신의 작업 디렉토리를 보여준다.

 $ pwd    /home/hosting_users/jasko21/www/ec01

 who 명령어 : 현재 시스템에 login 하고 있는 사용자의 리스트를 보여준다.

 $ who

 whereis 명령어 : 소스, 실행파일, 메뉴얼 등의 위치를 알려줌

 $ whereis perl (perl의 위치를 알려준다)

 새로운 파일을 만드는 방법

 $ vi newfile (vi 편집기 상태로 들어감)
 $ touch newfile (빈 파일만 생성됨)
 $ cat > newfile (vi 편집기 상태로 들어감, 문서 작성후 Ctrl+D로 빠져나옴)

 파일 내용만 보기

 $ cat filename (파일의 내용을 모두 보여줌)
 $ head -n filename (n줄 만큼 위세서부터 보여줌)
 $ tail -n filename (n줄 만큼 아래에서부터 보여줌)

 파일 (디렉토리) 압축 하고 풀어보기

 압축파일풀기 : tar -xvf FILE_NAME.tar
 압축하기 : tar -cvf FILE_NAME.tar 압축할파일명 혹은 디렉토리명

VI 문서 편집기 사용하기

파일 열기 및 종료

 열기 : vi letter.txt
 :w ; 저장(write)
 :q ; 종료(quit)
 ZZ ; 종료
 :wq ; 저장 후 종료
 :w! ; 강제 저장
 :q! ; 강제 종료

편집모드

 i ; 커서앞에 텍스트 삽입
 a ; 커서뒤에 텍스트 삽입
 o ; 현재 행 아래에 텍스트 삽입

텍스트 교체

 r ; 한 글자만 교체
 R ; 커서가 있는 자리부터 여러문자 교체

커서이동

 ←, h, <del>
 ↓, j
 ↑, k
 →, l

신속이동

 w ; 오른쪽으로 특수문자 혹은 한단어의 처음으로 이동
 b ; 왼쪽으로 특수문자 혹은 한단어의 처음으로 이동
 W ; 오른쪽으로 한단어의 처음으로 이동
 B ; 왼쪽으로 한단어의 처음으로 이동

한 행 안에서의 이동

 0 (숫자) ; 행의 맨 처음으로 이동
 $ ; 행의 맨 마지막으로 이동

페이지 이동

 G ; 문서의 맨 끝 행으로 이동
 nG ; nqjsWo 행으로 이동
 C-f ; 한페이지 아래로 이동
 C-b ; 한페이지 위로 이동

삭제명령

 dw ; 한 단어 삭제
 dd ; 한 줄 삭제
 D ; 커서부터 행 끝까지 삭제
 x ; 한 글자 삭제

숫자와 명령의 조합 예제

 10j ; 10줄 위로 이동
 10x ; 10글자 삭제
 5dd ; 5줄 삭제

복사 & 붙여넣기

 x, dw, dd, D → p ; 커서 뒤에 임시 버퍼내용 추가
 x, dw, dd, D → P ; 커서 앞에 임시 버퍼내용 추가

텍스트 복사

 yw ; 한단어 복사
 y$ ; 커서부터 행끝까지 복사
 yy ; 한줄 모두 복사

2줄 붙이기 ; J

텍스트 탐색

 / ; 전방 탐색
 ? ; 후방 탐색
 n ; 같은방향으로 탐색 계속
 N ; 반대방향 탐색 계속
 /  ; 전방탐색 계속
 ?  ; 후방탐색 계속

행 번호 붙이기

 :set nu
 :set nonu ; 번호 없애기

특정 행 번호로 이동

 :1 ; 1번째 행으로 이동
 :$ ; 마지막 행으로 이동
 :$= ; 현재 문서의 총 줄(행)수
 :.= ; 현재위치의 행번호

범위 지정

 v

 :1,10d ; 1번행부터 10번행가지 삭제(d)
 :.,$d ; 현재부터 마지막 행까지 삭제
 :0,$-4d ; 파일의 맨처음(0;가상번호)부터 끝까지 삭제하되 4는 제외
 :.-1,.+1y(:.-,.+y)(:-,+y) ; 현재 행을 기준으로 아래위 3행을 복사
 :0,$y ; :%y ; 모든 행 복사

일부분 저장

 :1,.w part1.txt ; 1행부터 현재 행까지 part1.txt 라는 이름으로 저장
 :1,.w >>part.txt ; 1행부터 현재 행까지를 part.txt 파일에 추가

다른파일 내용 (읽기) 삽입

 :r insert.txt ; 커서위치 아래에 insert.txt  파일을 추가
 1r insert.txt ;
 0r insert.txt ;

텍스트 검색 및 교체

 :범위s/찾는문자열/교체할문자열/옵션
 :%s/girl/woman/g (※ g ; global)
 :0,.s/^/>> /g ; 맨 처음부터 현재행에 대하여 행의 맨 앞에 >>를 붙임 (※ ^ 는 가상의 맨 앞)
 :.-3,.+5s/$/<</g ; 주어진 범위의 각 행 끝에 << 문자 추가 (※ $는 가상의 맨 마지막)

※ . ; 현재 행 ^ ; 가상의 맨 처음 $ ; 가상의 맨 처음 % 현 문서 전체

특수문자가 들어간 문자열의 교체

 :%s/\/usr/\/usr/local/g ; /usr를 찾아서 /usr/local 로 교체
※ \ (역 슬래쉬) 특수문자(/)의 해석방지

외부 유닉스 명령어 실행

 :!명령
 :sh ;
 :r :ls ; 유닉스 명령의 실행 결과 화면을 현재 편집중인 내용에 불러들임

필터와 명령

 :%!tr [a-z][A-Z] ; 전체 텍스트의 영문자를 대문자로 치환
 :%!sort ; 정렬

 


http://www.jasko.co.kr/xe/?mid=extLinux

2009년 12월 11일 금요일

IE6 커닝 페이퍼: IE6 버그 25+ 해결하는 방법