Apache가 RPM으로 설치되지 않고 직접 컴파일 되어 설치되어 있는 경우가 있다.
게다가, Module 지원하는 apx 스타일로 만들지 않고 Apache에 한덩어리로 움직이게 만든 경우라면
PHP 업그레이드에 상당히 난색을 표명할 수 밖에 없다.

이 작업을 수행하고 난뒤의 내 스스로의 기록을 남겨 추후 이와 유사작업을 할때 도움을 가지려 한다.

먼저 각 버젼은 Apache는 1.3.34 버젼이고 PHP는 4.0.3 이다.
이것을 PHP를 요즘 나온 4.3.6 버젼으로 업그레이드를 실행해 보겠다.

먼저 PHP의 최신 버젼을 다운 받아 압축을 푼다. 그리고 일단 컴파일을 위해 Configure를 잡는다.
여기서 중요한 점은 Apache의 위치를 잡아주는 부분을 꼭 넣어 주어야 한다.
일단 내가 사용한 Configure는 아래와 같다.
./configure  --prefix=/usr/local/php --with-apache=/usr/local/apache --with-mysql=/usr/local/mysql --with-language=korean --with-charset=euc_kr --enable-track-vars --enable-versioning
여기서 가장 중요한 부분이 --with-apache=/usr/local/apache 이다. 이 부분은 꼭 있어야 한다.

그리고 Configure를 잡아서 문제 없으면 make하고 make install 을 해준다.
Configure에서 문제가 없다면 make와 make install은 아무런 문제 없이 수행이 된다.

그리고 난뒤 Apache 폴더로 간다. 보통 컴파일 버젼에 Prefix를 잡지 않는다면
/usr/local/apache에 설치된다. 내가 실습한 서버 내에서도 그 위치에 Apache가 설치 되어 있었다.

그런데, 신기한것은 Apache를 컴파일 설치하면 소스가 전부 그 안에 있다는 사실이다. 아니 모듈 버젼이 아니여서 인지도
모르겠지만, 모든 소스가 그 안에 있는 것이였다. 그래서 Apache의 컴파일을 Apache가 설치된 곳에서 하면 컴파일을 한다.
먼저 컴파일 전에 Configure를 잡아 준다. 내 같은 경우 아래와 같이 잡아 주었다.

./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a

여기서 잘 살펴보면 -activate-module 이라는 옵션이 있는데, 바로 모듈을 바로 Apache내에 실을 때 사용되는 것이다.
PHP를 정상적으로 잘 설치되었다면 /usr/local/apache/src/modules/php4/ 라는것이 설치되었을것이다.
그것이 없다면 PHP 의 Configure 부터 차근 차근 다시 살펴 보도록 해야 한다.

위와 같이 Configure를 잡아주고 make 한다. 그리고 반드시 apache를 중지시켜주고  make install 을 수행한다. 그리고 난 뒤
bin/apachectl 이라는 프로그램을 이용해서 start 를 해준다. ( 컴파일 방식으로 하면 서비스 스크립트가 없다.)
그러면 정상적으로 PHP가 뜬다.

자... 여기서 내가 애먹었던 부분을 몇가지 언급하겠다.
1. php를 컴파일 해서 make install 했는데도 버젼업이 안되었다.
- apache의 apx 버젼인 경우 php의 모듈을 변경해주고 restart 한번만 해주면 되었다. 그러나 spx 버젼으로 컴파일 하지 않았다면 그것은 apache를 다시 컴파일하라는 하늘(?)의 계시다  -_-;

2. php의 php.ini 를 변경해도 php가 아무런 변화가 없다.
- php.ini를 변경해도 apache를 restart 하지 않으면 아무런 소용이 없다. apache를 restart 해도 변화가 없다면 phpinfo() 페이지를 열어봐서 정확히 php.ini 위치가 어디인지를 다시 파악해서 해당 위치의 php.ini 를 수정하고 apache를 restart 해본다.
혹시 이래도 안되는 것 같으면 현재 php.ini 위치 적힌 부분에 디렉토리만 나열되어 있는지 확인한다.(즉 디렉토리명 끝자락에 php.ini라고 정확히 적혀 있는지 확인한다.) 혹시 없으면 해당 위치에 꼭.. php.ini를 복사해주고 적용한다.

3. php 설치에 apache 설치를 완료했는데, php가 작동하지 않거나 아무런 변화가 없는 경우
- 나같은 경우에도 이 때문에 상당히 애먹었는데, apache를 컴파일 하고 난뒤 설치할때 반드시 apache를 중지 시키고 설치해야 한다. make 한 뒤 아파치를 중지 시켜 놓고 make install 하는 것이다. 이렇게 안되니까, 이상하게 php 만 실행이 안되는 것이다. 소스가 바로 보여지는 문제가 발생하는 것이다. 그랬다가 stop 시키고 설치한뒤 start 하니까 정상 작동한다.



728x90

+ Recent posts