<pre>
Apache 2.0.39의 환경설정은
./configure --prefix=/usr/local/DSO/apache
--enable-mods-shared=all
--enable-so
--with-port=8080
위와 같고요.
PHP 4.2.2의 환경설정은
./configure --prefix=/usr/local/DSO/php
--with-apxs2=/usr/local/DSO/apache2/bin/apxs
--disable-debug
--with-config-file-path=/usr/local/DSO/apache2/conf
--enable-magic-quotes
--with-zlib
--with-gd=/usr
--enable-gd-native-ttf
--with-jpeg-dir=/usr/lib
--with-png-dir=/usr/lib
--with-tiff-dir=/usr/lib
--with-freetype-dir=/usr/local
--with-mysql=/usr/local/mysql
--with-imap=/usr/local/imap
--enable-sockets
--enable-modules=so
</pre>
와 같습니다.
Apache는 이미 DSO로 설치된 상태고요.
/usr/local/DSO/apache2/bin/httpd -t 와 -l 로 이미 확인된 상태입니다.
DSO이므로 PHP를 나중에 추가로 설치한다고 생각하고 진행하였습니다.
위와 같이 환경설정 한후에 make 하는 중에
<pre>
php_functions.c:93: parse error
make[3]: *** [php_functions.lo] Error 1
make[3]: Leaving directory `/usr/local/src/web/php-4.2.2/sapi/apache2filter'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/web/php-4.2.2/sapi/apache2filter'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/web/php-4.2.2/sapi'
make: *** [all-recursive] Error 1
</pre>
와 같은 에러가 나옵니다.
그래서 php 소스에 이상이 있구나 생각하고 php.net에서 한참을 찾았습니다..
http://www.php.net/manual/en/install.linux.php 위 페이지에서 잘 찾아보시면 볼 수가 있습니다.
해결책은 에러난 파일인 php_4.2.2/sapi/apache2filter/php_functions.c 을 수정하시면 됩니다.
93번째 줄:#if !MODULE_MAGIC_AT_LEAST(20020506,0)
을 #if !AP_MODULE_MAGIC_AT_LEAST(20020506,0)로 해주시면 됩니다.
변경사항은 앞에 AP_를 붙여주는 것이죠.
고친 후에 make && make install 까지 잘 됩니다.
/usr/local/DSO/apache2/bin/httpd -t 에서 php 모듈에 대한 에러가 날 수가 있습니다.
mysql에 대한 라이브러리 에러가 날 경우가 있습니다. 안날 수도 있고요.
만약에 난다면 조금의 해결방법이 있습니다.
php 환경 설정 부분에서 --enable-shared 을 빼시거나 필요하다는 라이브러리를
mysql 설치 디렉토리에서의 lib/mysql/ 내에 있는 모든 파일을
/usr/local/DSO/apache2/lib로 복사하시면 됩니다.
이상 저의 삽질기였습니다. __; 설마 이미 있는 글 아니겠죠?..
찾아도 없던데..
;;
--
L!nux 사랑, 세벌식 사랑, 나라 사랑
<img src="http://www.gelug.pe.kr/gelug.gif">