Server & OS

레드햇9.0 apm 설치

페이지 정보

본문

만약 DSO로 설치되어 있다면, PHP 4.3.X버젼을 설치하려할때, 아파치를 설치하던 디렉토리가 있어야 합니다. 그러니까..설치했던 분이 아파치가 설치된 곳 말고, 설치를 시작했던 소스가 있던 디렉토리가 필요한 건데.. 만약 그분한테, 여쭈어서 DSO로 설치했다면, APACHE는 그대로 두고, PHP 4.3.X를 추가로 설치할 수 있습니다. 그런데.. 문제는 지금 님의 질문내용으로 보아서는 앞전 설치자가 어떻게 설치했는지 알 수 없는거 같군요. 이경우로 미루어서 설치하는 방법을 알려드리겠습니다.
(PHP를 중심으로 설명해드리겠습니다. PHP를 설치할 때, MYSQL이 설치된 곳이 필요하므로..MYSQL부터 설치하십시오.)

1. 먼저 기존에 설치된 mysql,apache,php를 삭제합니다.
#rpm -e --nodeps mysql* httpd* php*
(주의: apache를 지우시기 전에 httpd.conf파일을 찾아서 웹호스팅정보가 있는지 살펴보십시오.Virtual ..라고 정의된 부분이 파일내에 있으면 그부분을 따로 기록해 놓으시던가 httpd.conf파일을 백업해두어야 합니다. 웹호스팅을 하지 않는 경우라면 괜찮습니다.)
-e : 지우는 옵션
--nodeps (no dependents 패키지의 의존성에 상관없이라는 의미입니다.)

2. mysql을 설치하십시오.
mysql은 주로 3.23.58버전이나, 4.0.16 또는 4.0.17버젼이 많이 설치됩니다. 개발업체에 의뢰해서 어느 버젼의 mysql이면 무난한지 알아보시구요. 위의 mysql들은 www.byungsoo.net(병수넷, 국내 mysql 미러사이트)에서 모두 구하실 수 있습니다.
mysql을 구하셔서 /usr/local/src방에 넣고서 압축을 푼다음.. 설치하십시오. 그런데, 설치하시기 전에 한가지 해야될 일이 있습니다. 위에서 mysql이 설치된 걸로 봐서 mysql유저가 있을 겁니다. 그 유저는 미리 삭제하십시오.
#userdel mysql <--mysql 유저 삭제 (이 유저를 삭제한 이유는 mysql db가 저장되는 디렉토리를 이 유저의 사용디렉토리로 하게 되는데..그 디렉토리가 지금 설치하려는 디렉토리와 다를 수 있습니다. 이때 mysql데몬이 떴다가 죽어버리는 경우가 있기 때문입니다.)

*mysql 소스가 풀어진 디렉토리 안으로 들어가서
#./configure --prefix=/usr/local/mysql --with-charset=euc_kr --with-language=korean --with-localstatedir=/usr/local/mysql/data
('--prefix='는 설치될 디렉토리, 그리고 마지막에 보이는 '--with-localstatedir='은 mysql db들이 들어가는 디렉토리 입니다. 이 옵션을 생략했을 경우에 db들의 기본위치는 /usr/local/mysql/var이 됩니다. 그리고, mysql 실행시에 발생하는 로그파일들이 위치하는 곳이기도 합니다.)
#make;make install (make는 설치에 필요한 binary파일을 컴파일해서 생성하는 것이고 , make install은 지정된 장소에 파일들을 설치해줍니다.)

설치가 되고나면,,
#cd /usr/local/mysql/bin
#./mysql_install_db (1번만 실행해주면, /usr/local/mysql/data 디렉토리 안에 mysql과 test라는 두개의 db가 생깁니다.)

3. mysql 그룹과 mysql 유저를 추가해줍니다.

#groupadd mysql
#useradd -g mysql -d /usr/local/mysql/data -s /bin/false mysql

(-g mysql은 그룹이 mysql그룹이라는 뜻이고, 명령줄 맨뒤에 보이는 mysql은 user명 mysql입니다. -d /usr/rlocal/mysql/data라고 한 부분에선, -d는 mysql이 관장할 디렉토리로서, 흔히 홈디렉토리라고 합니다. 위에서 mysql data들이 위치할 곳을 /usr/local/mysql/data라고 했기 때문에..여기서도 맞춰줘야 합니다. 위에서 mysql설치하실 때, --with-localstatedir옵션이 없이 설치했다면, 기본값이 /usr/local/mysql/var이라는 디렉토리에 data들이 저장된다고 했기에 여기서도 -d /usr/local/mysq/var이라고 적어주시면 됩니다. -s /bin/false는 사용자 mysql의 쉘을 기록해주는 것입니다. 쉘-shell은 명령어처리기로서 /bin/false라고 해주면 telnet이나 ssh접속이 불가합니다. 보안을 위해 추가해주는 것이라고 생각해주면 되겠네요.)

그 다음, /usr/local/mysql/data의 소유권을 mysql에게 줍니다.

#chown mysql.mysql -R /usr/local/mysql/data
(mysql.mysql에서 앞에 mysql은 유저명이고 점(.)뒤의 mysql은 그룹명입니다. 이 과정을 처리 안해줄 경우에 mysql 데몬이 떴다가 죽는 경우가 ..자주(?)발생합니다.)

이제, mysql 데몬을 실행합니다.
#cd /usr/local/mysql/bin
#./mysqld_safe & (mysql 3.23.*버젼에서는 safe_mysqld &로 시작하구요, 4.x대의 mysql에서는 mysqld_safe로 명령어가 바뀌었습니다.)

*mysql의 관리자 암호를 바꾸어보십시오.
#mysqladmin -uroot password '1234'
*mysql에 접속해보십시오.
#mysql -uroot -p1234 mysql 엔터!
mysql> <--이 프롬프트가 나오면 정상입니다. 여기서 빠져나오려면 quit를 입력하시거나 '\\q'를 입력하시면 됩니다.

여기까지 대강 mysql설치하는 과정이었습니다.

4. Apache의 설치
Apache 버젼 - httpd-2.0.48입니다. (www.apache.kr.net에서 구하세요.)
압축을 푼 디렉토리로 들어가셔서
#./configure --prefix=/usr/local/apache2 --enable-rule=SHARED_CORE --enable-so --enable-shared=max
(--enable-shared=max가 DSO설치를 위한 부분입니다. 동적으로 설치해주면, php설치가 추가 되더라도 Apache를 다시 컴파일 하실 필요가 없습니다.그리고 설치옵션에 --sysconfdir=/etc/httpd/conf가 사용되기도 하는데.. 이는httpd.conf파일의 위치를 지정해주는 옵션입니다)

#make; make install (컴파일 및 설치)

5. PHP의 설치

php 4.3.4버젼-www.php.net에서 구하십시오.(현재 PHP 5.0 beta4까지 출시되어 있습니다.)

#tar xvfz php-4.3.4.tar.gz
#cd php-4.3.4
#./configure --with-mysql= /usr/local/mysql
--with-apache-install=/usr/local/src/httpd-2.4.08 (아파치 소스가 위치한 곳)
--enable-modules=so (DSO설치를 위하여)
--with-apxs2=/usr/local/apache2/bin/apxs
--with-gd
--with-mod-charset
--with-charset=euc_kr
--with-language=korean
--with-calendar
--with-config-file-path=/usr/local/apache2/conf
--with-exec-dir=/usr/local/apache2/bin
--enable-xml
--enable-ftp
--enable-track-vars
--disable-debug
--enable-trans-sid

(지금 제가 편의상 --with 들을 한줄씩 썼는데..위의 명령어는 이어서 쓰거나 한칸씩 띄우고 계속 쓰십시오. PHP의 설치옵션은 수십여가지에 이르며 ./configure --help라는 명령어로 모든 설치옵션의 설명을 보실 수 있습니다.)

#make; make install (컴파일 및 설치)
#cp php.ini-dist /usr/local/apache2/conf/php.ini
(**php-4.3.4 소스 안에 php.ini-dist파일이 있습니다.)

php.ini의 파일을 열어서 upload용량을 수정하든가 적당한 옵션을 수정하십시오.

PHP 설치가 끝났습니다. 그러나..다시 수정해줘야할 부분이 몇가지 남았습니다.

httpd.conf파일에서 PHP관련부분에 몇가지를 수정해야 합니다.

#cd /usr/local/apache2/conf

#vi httpd.conf
-httpd.conf파일을 열고 '/php4'라고 php4가 제대로 모듈로 들어갔는지 확인 하시고요 없다면 다시 php를 컴파일 해야 합니다. php4모듈이 어쩌구 저쩌구 붙어있으면 성공한 것입니다. 바로 아래라인입니다.

LoadModule php4_module modules/libphp4.so

이 라인이 httpd.conf파일 내에 있으면 PHP컴파일이 성공한 겁니다.
이제 그 라인 바로 아래에 다음 줄을 추가해주십시오.
SetOutputFilter PHP
SetInputFilter PHP

그리고
AddType application/x-httpd-php .php .php3 .html .htm .inc
AddType application/x-httpd-php-source .phps
(웹에 있는 파일 들중에서 확장자를 어떤걸 달고 있는 것들을 PHP파일로 간주할거냐 또는 PHP 소스 파일로 간주할거냐를 정의하는 부분입니다. 웹에서 어떤 경우 php가 실행되는 대신 소스가 쫘악~나와버리는 경우에 이 라인을 검토해보십시오.)

이제 httpd.conf파일에 들어와 있으므로 몇가지를 더 수정하고 나갑니다.

'AddDefaultCharset ISO-8858-1' 이부분을 찾아서 ISO-8859-1을 ISO-2022-KR로 수정하십시오.(아파치웹서버를 2.X대로 업그레이드했을 때, 웹페이지가 깨어져 보이는 경우의 원인이 바로 이곳입니다.)

Language Priority en... 부분을 찾아서 en앞에 kr을 넣어주십시오.

그리고, Apache웹서버 최초 설정시에
httpd.conf파일에서
ServerName www.yourdomain.com:80
(yourdomain대신에 가지고 계신 도메인이름을 적어주시면 되겠죠.)
DocumentRoot "/usr/local/apache2/htdocs"
(웹서비스 되는 디렉토리 지정해주는 곳)

그리고, CGI실행을 위해서는.

#AddHandler .cgi라고 적어진 부분에서 앞에 붙은 주석표시(#)를 제거하십시오.

Options Indexes라고 적어진 부분을 찾아서 Indexes를 제거해주십시오.(아파치 웹서버가 해당디렉토리를 뒤졌을 경우, index.html index.htm..등의 파일이 없을 경우 해당디렉토리의 목록을 출력해버리는 것을 막아줍니다. Indexes가 있을 경우 목록 출력)

httpd.conf파일 설정을 마쳤으면, test.php파일을 만들어서 테스트해보십시오.
#vi test.php
<? phpinfo(); ?>

웹브라우저를 열고 http://.........../test.php파일을 열어서 정보가 제대로 출력이 되면 성공한 것입니다.

*Zend Optimizer에 대해서
phpinfo();내용을 출력해서 보면..아래쪽에
"This program makes use of the Zend Scripting Language Engine:
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies with Zend Extension Manager v1.0.0, Copyright (c) 2003"라고 보이는데..이건 Zend Engine을 사용한다는 의미이고 Zend Optimizer는 설치하셔야 합니다. 왜 Zend Optimizer를 설치해야 하냐면, 하나는 PHP 실행속도를 높히기 위해서이고 두번째는 국내의 많은 쇼핑몰 소스들이 Zend Optimizer가 설치되어 있지 않는 서버에서는 실행조차 되지 않기 때문입니다.

PHP 4.3.4에 맞는 Zend Optimizer는 2.1.0b버젼 이상입니다. 압축을 푸시고 해당디렉토리에 들어가셔서...설치하십시오.
#sh ./install.sh를 실행하시면 php.ini파일을 자동으로 찾으면서 설치해줍니다.(설치가 편리하게 되어 있어요.)

레드헷 9.0환경에서 mysql,apache,php를 반복 설치하면서 나름대로 정리해둔 것을 올려봤습니다. 도움이 되셨으면 좋겠군요. (목포넷 웹마스터 김광진)

관련자료

등록된 댓글이 없습니다.
Today's proverb
사랑의 계산 방법은 독특하다. 절반과 합쳐 하나가 되는 것이 아니라, 오직 두 개가 모여 완전한 하나를 만들기 때문이다. (조 코데르트)