블로그정리중 글 옮김(2009년 3월 26일 글)

 

Apahche + PHP + MySQL을 같이 잘 맞물리게 해서 홈페이지나 사이트를 구축할때 게시판이나 각종 데이터 베이스 처리가 필요 할때, 보다 수월하게 사용할 수 있습니다.

Apache라는 것은 웹서버를 말하는 것인데, 지금 우리가 접할 수 있는 거의 대부분의 웹서버에서는 아파치를 사용하고 있습니다. 아파치는 1.X버전과 2.X버전 두가지 부류로 나뉘어 지는데, 그 설치 방법과 운영방법이 크게 다르기 때문에 설치 방법이나 운영방법에 대해서 잘 익힌 다음에 설치 하도록 해야 됩니다.
http://www.apache.org

PHP는 펄이나 CGI 프로그램 처럼 서버에서 정해진 작업을 한 다음에 클라인언트로 그 결과를 보내주는 언어 입니다. 그 사용방법이나 구조등이 C언어와 유사하기 때문에 많은 CGI프로그래머들이 PHP로 방향을 전환하게 되었고, 지금은 아주 많은 분야에서 사용되고 있습니다. 쇼핑몰의 구축이나 데이터 베이스등의 관리 여러가지 작업을 할 수 있는 반면 사용법이 아주 쉽기 때문에 널리 확산되었습니다.
http://www.php.net

MySQL은 데이터 베이스를 처리하는 프로그램입니다. 
http://www.mysql.com

그러면 위의 세가지 프로그램을 연동 시켜 보기로 합시다.
첫번째는 Apache 1.3.XX + PHP + MySQL 방법에 대해서 이야기 해보겠습니다.

MySQL은 아파치의 버전에 상관없이 그냥 설치 해도 됩니다.

MySQL의 설치 방법

1.다운로드
MySQL 사이트에서 Stable Version 소스 코드를 다운로드 합니다.(예:mysql-4.0.13.tar.gz)

2.Linux Box의 적당한 디렉토리에 저장해둡니다.(예;/var/tmp)

3.tar과 gunzip로 패키징 되어 있는 파일이므로 압축을 해제합니다.
  어떤 파일인지 확실히 확인해 보시기 위해서는 "file 파일명" 명령으로 확인해보시면 됩니다.
  [root @linux]#pwd   --> 현재 디렉토리 확인
  /var/tmp

  [root @linux]#ls    --> 어떤 파일이 있는 지 확인
  mysql-4.0.13.tar.gz

  [root @linux]#tar xvfz mysql-4.0.13.tar.gz --> 압축해제
  ..................
  ..................
  ..................

  [root @linux]#ls
  mysql-4.0.13      mysql-4.0.13.tar.gz  ---> 새로운 디렉토리가 생겼음

  [root @linux]#cd mysql-4.0.13 --> MySQL의 소스파일이 있는 디렉토리로 이동.

4. 컴파일을 하기 위한 환경파일 Makefile들을 생성합니다.
  [root @linux]#./configure --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/DB
  make라는 유틸리티를 이용해서 컴파일 하기 때문에 make환경설정을 해주어야 됩니다.
  --prefix= 은 컴파일 후에 설치할 디렉토리를 지정하는 것입니다.(/usr/local/mysql이라는 디렉토리에 설치)
  --with-charset=euc_kr 어떤 문자셋으로 설정 할 것인지 지정합니다.(euc_kr :한국어)
  --localstatedir=/DB   데이터 베이스 파일들을 어디에 저장할 것인지를 지정합니다.(/DB라는 디렉토리에 저장.)
  이것은 일반적인 방법이고 좀더 다양한 옵션들을 지정해 줄 수도 있습니다.
  그것들에 대한 설명은 MySQL 문서들을 참고 하시면 됩니다.
  프렌존 서버는 다음과 같은 옵션으로 컴파일 되어있습니다.
  --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/DB

  성공적으로 작업이 끝나면 감사 메세지가 나옵니다. 안나오면 비정상이므로 다시 한번 확인해주시길 바랍니다.

5.make를 이용한 컴파일 및 설치
  [root @linux]#make --> 컴파일 합니다.
  [root @linux]#make install --> 설치 합니다.
  [root @linux]#cd /usr/local/mysql 
  파일이 다 만들어 져 있으면 일단 컴파일 및 설치는 끝난것입니다.

6.mysql 사용자 추가
  MySQL은 root권한으로 돌아가지 않고 mysql user의 권한으로 돌아가게 됩니다. 그렇기 때문에 시스템에 mysql이라는 사용자를 추가하고 패스워드를 설정해야 됩니다.
  최대한 어려운 패스워드를 설정해두면 나중에 보안상의 문제를 조금이나마 막을 수 있습니다.
  [root @linux]#useradd mysql -->사용자 추가(로그인 쉘등을 지정해서 로그인이 안되도록 설정해두는것도 좋습니다.)
  [root @linux]#pass mysql -->패스워드 설정.
  New password:
  
7.데이터 베이스가 저장되는 디렉토리의 소유자 및 그룹을 mysql로 변경.
  [root @linux]#chown -R mysql:mysql /DB --> /DB에 파일을 저장하기로 했으므로, 그 소유자와 그룹을 mysql로 설정합니다.

8.MySQL기본 권한 테이블을 설정
(스크립트가 제공 되기 때문에 한번 만 실행 시켜 주면 됩니다.)
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysql_install_db --> 때로는 scripts라는 디렉토리 밑에 있는 경우도 있습니다.

9.데이터 베이스 데몬을 실행
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysqld_safe & --> 백그라운드로 데몬을 실행 시킵니다.
  [root @linux]#ps -ef | grep mysqld --> 실행이 잘 되고 있는 지 확인.
  mysql      768   738  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      770   768  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      771   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      772   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      773   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      774   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      779   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      780   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      781   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  mysql      782   770  0 Jul10 ?        00:00:00 /usr/local/mysql/libexec/mysqld
  
  만약에 실행이 되지 않고 에러가 나온다면 /DB 디렉토리로 이동해서 error 로그 파일을 열어보시면, 그 원인이 적혀 있습니다.
  읽어보신 후에 적절한 조치를 취해주시면 됩니다.

10.MySQL 관리가 패스워드 설정
  [root @linux]#cd /usr/local/mysql
  [root @linux]#./bin/mysql -u root
  mysql>SET PASSWORD for root=password('password');
  mysql>exit


PHP 설치
다음 단계는 Apache 1.3.XX 버전을 사용하기로 했기때문에 PHP와 연동을 위해서 Apache의 환경 설정을 먼저 한번 해주어야 됩니다.

[root @linux]#cd /var/tmp/apache-1.3.XX
[root @linux]#./configure --prefix=/usr/local/apache


이제는 PHP의 소스코드가 있는 디렉토리로 이동하여 컴파일을 해주면 됩니다.

[root @linux]#cd /var/tmp/php-4.3.2
[root @linux]#./configure --prefix=/usr/local/php --with-apache=/var/tmp/apache-1.3.XX --with-mysql=/usr/local/mysql --with-language=korean --with-charset=euc_kr --with-config-file-path=/usr/local/apache/conf --enable-track-vars=yes
[root @linux]#make
[root @linux]#make install 

 PHP설치 끝입니다.(PHP는 모듈로 아파치에 같이 들어 가게 되므로, 실행 할 필요가 없습니다.)

APACHE 설치

[root @linux]#cd /var/tmp/apache-1.3.XX
[root @linux]#./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --> php 연동을 위한 것입니다.
 [root @linux]#make
 [root @linux]#make install

Apache 설치 끝입니다.

환경설정 및 실행
PHP 소스 디렉토리에 보면 php.ini-XXXXX라는 파일들이 있습니다. 이중에서 php.ini-recommended 라는 파일을 apache의 conf라는 디렉토리에 php.ini라는 파일로 복사합니다.Apache의 conf 디렉토리를 보면 httpd.conf라는 파일이 있습니다. 그 파일을 자신의 환경에 맞게 설정해주면 됩니다.

AddType application/x-httpd-php .php .php3 .php4 .phtml .html
AddType application/x-httpd-php-source .phs .phps

이 부분을 httpd.conf에 추가 해줍니다. (Add for PHP라는 부분이 있을 것입니다.)

이제 모든 준비가 끝났습니다.
아파치만 실행 시키면 여러분의 박스에는 APM연동이 끝난 웹서버가 돌아가게 될것입니다.
실행은 다음과 같은 명령으로 할 수 있습니다

[root @linux]#/usr/local/apache/bin/apachectl start --> 시작
[root @linux]#/usr/local/apache/bin/apachectl stop --> 정지
[root @linux]#/usr/local/apache/bin/apachectl restart --> 새로 시작.


서버가 부팅 될때마다 Mysql과 Apache를 실행 시킬 수 있게 하시려면, /etc/rc.d/rc.local이라는 파일에 실행 명령을 추가 해주면 됩니다.

[root @linux]#vi /etc/rc.d/rc.local
#MySQL Start
cd /usr/local/mysql
./bin/mysqld_safe &
#Apache Start
/usr/local/apache/bin/apachectl start &




APACHE 2.0.XX 버전사용시
MySQL은 설치 해둔 상태에서 위의 방법과는 다르게 Apache를 설치 합니다.(PHP를 수동으로 적재)

[root @linux]#cd /var/tmp/apache-2.0.XX
[root @linux]#./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=all --enable-modules=shared --with-mpm=threadpool
[root @linux]#make
[root @linux]#make install

이제는 PHP를 설치 합니다.

[root @linux]#cd /var/tmp/php-4.3.2
[root @linux]#CFLAGS="-L/usr/local/mysql/lib/mysql -lmysqlclient"
[root @linux]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --enable-track-vars=yes --with-language=korean --disable-debug --with-charset=euc_kr --enable-modules=so --enable-trans-sid --with-config-file-path=/usr/local/apache2/conf 
[root @linux]#make
[root @linux]#make install

PHP의 컴파일 방법이 조금 달라 진것이 보이 실 것입니다.
이렇게 해두면 수동으로 모듈을 적재 시킬 수 있게 됩니다.

환경 파일은 apache의 httpd.conf만 수정해주면 됩니다. 위에서 한 작업과 동일합니다.
물론 php.ini파일은 conf디렉토리로 복사해 주셔야 됩니다.

httpd.conf 수정

LoadModule php4_module        modules/libphp4.so 
AddType application/x-httpd-php .php .php3 .php4 .phtml .html
AddType application/x-httpd-php-source .phs .phps



 

저작자 표시
신고

+ Recent posts

티스토리 툴바