2.0.39 에서는 php_function.c 만 패치하면 됩니다.
sapi_apache2.c 는 2.0.40 에서만 패치합니다. 이는 apache 의 API 가
자꾸 변동이 되서 그런거요.
API 의 안정화가 오기 전에는 third-party 모듈들이 지원하기가 힘들
겁니다. 버젼 업데이트 될때마다 변경이 되어야 하니까 말이죠. 아마
그래서 mod_bandwidth 와 mod_throttle 이 2.0 용으로 개발을 하지 않
고 있는듯 합니다. mod_gzip 도 변경사항 따라가는 것이 버겁더군요 :-)
결론은 아직은 apache 2 를 사용할 시기는 아니다 입니다. ^^;
: http://junghyun.pe.kr/php-apach2fileter.patch : 위 주소는 김정균님이 패치를 하셨더군요
: NULL 값을 줬는데 아파치2 , PHP 4.2.2 설치하고 나서 기존에 쓰던 펑션이 안되던데요 그래서
: 다시 다운그레이드 했죠
어떤 함수가 안되던가요? 제가 테스트 해 봤을 때, jsboard 2.0.1 을 사용
하는데는 아무런 지장이 없던데요 ^^; NULL 값을 추가해 준것은 단순하게
apache 의 API 의 변화 때문에 들어간 것 뿐입니다.
제가 겪은 가장 큰점은 php 에서 apache 환경 변수를 하나도 읽어올 수
없다는 것이 문제여서 사용하고 있지 않은데 ^^;
: : <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">