본문 바로가기

Computer Engineering/LINUX

LINUX#2 - Apache

apache php mysql 이용 설치도 중요하지만 연동이 되는 것이 중요하다

그래야 3가지를 합쳐서 웹프로그래밍을 할 수 있다. 설치할 때 연동이 잘 될수 있게 설치 순서를 지켜주어야한다. 1. DB 를 설치한다. 설치해서 보면 # find . -name *.c
많은 C언어 소스들을 볼 수 있다. C언어 공부시에도 많은 도움이 될 것같다.

우리의 최종목적은 mysqld 를 만드는 것이다. # find . -name mysqld 를 쳐보면 아무것도 안나온다. *.c 파일을 컴파일을 해서 mysqld 를 만들어야 하는 것이다.

# whereis gcc 를 확인해서 일단 컴파일러가 설치되어 있는지 확인을 한다.
설치가 되어있으면 컴파일러가 동작할 수 있는 것이다.

소스 한 두개면 직접 컴파일 할 수 있으나 mysql 안에는 엄청많은 소스파일이 있다. 그래서 make 라는 명령어를 이용해야 된다. 또는 Makefile 이 있어야 한다.

개발자가 makefile 을 만들 수 있는 configure 파일을 넣어 두었다. 개발자가 넣어둔 이 스크립트 파일을 확인해보자.

# ./configure --help
// 수 많은 옵션들이 보인다. 옵션을 자세히 볼 수는 없지만 기본적인 옵션을 이용해도 큰 문제는 없을 것이다. 복잡한 옵션은 나두고 기본적인 옵션을 이용해서 컴파일을 해보자.

./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=utf8 --with-readline
// 이러면 configure 파일이 시스템을 체크해서 최적화된 컴파일러 파일을 만들어준다. 지금 보는 것 처럼 소스를 가져와서 만들게 되면 자신의 시스템에 적합한 파일을 만들어주는 것이다.

DB는 속도가 빨라야한다. 정보를 찾거나 접근을 하기 위해서는 , 웹에 빠른 접근성을 갖기위해서

이제 # ls Makefile // Makefile 을 확인할 수 있다.

# make
// 우리가 직접적으로 컴파일하는 것이 아니라 make 가 컴파일러를 호출해서 어떤 파일을 컴파일하라고 지시하는 것이다. 컴파일 하기전 작업을 진행한다. 이 단계가 끝나면 gcc 가 호출되고 컴파일이 되는 것이다. 여기에서 10 분 정도의 시간이 소요된다.

컴파일 되는 동안 configure 에 대해 알아보자.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=utf8 --with-readline

// 최적화된 Makefile 을 만드는 단계
prefix => 소스코드와 바이너리가 섞이는 것을 막아주기 위해 컴파일이 다 끝난 파일을기로 옮겨주는 것이다. 컴파일이 다 되었을 때에 설치된 디렉토리이다. 디렉토리는 우리가 마음대로 정해줄수 있다. 대부분 /usr/local 에 설치해준다.

localstatedir  => DB 가 저장될 디렉토리

charset=utf8 => 한글이 지원되게 하는 것

# find . -name mysqld
// 이제 mysqld 가 생성이 된 것을 확인 할 수 있다. 컴파일한 결과가 소스코드와 섞여있다. 

# ls /usr/local/mysql 
// 아직까지 이 디렉토리가 생성이 안되어있다. make 가 소스를 컴파일해서 바이너리 파일이 만들어 진 것이다. 문제는 소스코드가 들어있는 것에 섞여있어서 분리를 할 작업이 필요하다 그것이 바로 # makeinstall 을 하면 이 때에 /usr/local/mysql 이 디렉토리가 생성된다.  즉 소스코드가 옮겨진 것을 확인 할 수 있다.

DB 를 구동하려면 몇 가지 설정이 더 남아있다.
원래 소스가 있는 디렉토리에서 find 로 *.cnf 를 찾아본다. 
# find -name *.cnf
// 설정파일을 볼 수 있다. 밑에 있는  여러 파일 중 어떤 파일을 사용해야 될까? 바로 크기가 나와 있다. small 소규모 운영시 적합 , medium 중간 급 ... 이런식으로 자신의 목적에 맞게 선택하면 최적화되어있다. 보통 medium 을 이용한다. 크지도 작지도 않은 중간크기를 이용한다는 것이다. 중간 정도라면 적당할 것이다. 

# cp support-files/my-medium.cnf /etc/my.cnf
// 중간 규모의 설정을 /etc 에 복사해준다.

그리고 컴파일이 끝난  # cd /usr/local/mysql/  디렉토리로 이동. 
여기 안에서 ./bin 으로 들어간다. # ls mysql_install_db 을 확인 할 수 있다.


 
etc 폴더로 이동 # vi ld.so.conf
// 여기에서 
/usr/local/mysql/lib 를 추가

# userdel -r mysql
# useradd -M -s /bin/nologin mysql
# chgrp -R mysql mysql
# chown -R root mysql
/bin 으로 이동해서 
./mysql -u root -h localhost

다음은 아파치 

&& and연산자 왼쪽에 있는 것을 성공했을 때에만 오른쪽게 동작한다. 

php는 서버가 아니다. 제대로 설치  

'Computer Engineering > LINUX' 카테고리의 다른 글

LINUX#2 - 방화벽  (0) 2011.07.28
LINUX#2 - Apache(2)  (0) 2011.07.28
LINUX#2 - Logrotate  (0) 2011.07.26
LINUX#2-Log Service  (0) 2011.07.25
LINUX#2 - DNS(Slave)  (0) 2011.07.21