2012. 11. 21. 11:19

APM 설치옵션(메모)

mysql -------------------------------------------
mysql은 설치 편의성이나 성능면에서도 바이너리가 좋다
되도록이면 소스컴파일 하지 말고 바이너리로 설치해라
5.1 까지 옵션
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--with-unix-socket-path=/tmp/mysql.sock \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--without-debug \
--enable-assembler \
--with-mysqld-user=mysql \
--with-plugins=max 또는 max-no-ndb -->모든 플러그인(엔진)사용, 또는 ndb 제외하고 다른 모든 엔진

my.cnf 관련 내용은 [여기] 참고

mysql(클라이언트만 설치) -------------------------------------------
prefix를 지정하지 않고 클라이언트만 설치할 경우 /usr/local/lib/mysql 에 라이브러리가 설치되며
/usr/local/bin 에 실행스크립트등의 파일이 설치됨
5.1 버젼까지
./configure \
--enable-thread-safe-client \
--with-charset=euckr \
--without-server \
--without-query-cache \
--without-docs \
--without-man \
--without-bench \
--without-readline \
--without-libedit
make && make install

5.5 부터(configure 가 없어지고 cmake로 바뀜)
cmake .
make mysqlclient libmysql



apache -------------------------------------------
./configure \
--prefix=/usr/local/apache \
--enable-modules=so \
--enable-rewrite \
--enable-ssl \
--enable-deflate \
--enable-expires \
--enable-headers \
--enable-info \
--enable-so \
--enable-unique-id  //mod_security 설치시 필요함

아파치 2.4 버젼에서는 apr, apr-util 이 포함되 있지 않아 별도로 다운받아 아파치 소스폴더에 추가한 후 컨피그해야 하니깐 http://mirror.apache-kr.org/apr/ 여기 있으니 다운 받도록 하자.
다운받은 소스를 압축 풀어서 /아파치소스/srclib 밑에 apr  ,apr-util 디렉토리를 만들고 집어 넣어 준다.
apr을 사용하기 위해 configure 에 
--with-included-apr 이라는 옵션을 추가 하면 srclib 밑에 소스를 찾아서 사용하고 apr, apr-util을 다른 디렉토리에 넣어 놓았다면 --with-apr=경로 이런식으로 configure 옵션을 추가한다.
그 후에 buildconf 를 실행하여 conf를 변경한 후에 configure 해야 하니 주의하자

아파치 2.4 버젼에서는 DSO 를 위하 옵션이 살짝 바뀌었다.
--enable-modules=so 가 아니라 --enable-module=so 이다. 머가 바뀌었냐고? modules 에서 s 가 빠졌다.
아파치 2.4 버젼은 옵션을 주지 않으면 prepork 로 설치 되지 않는다(ZendLoader 실행안됨)
--with-mpm=prefork 옵션을 줘서 prefork 로 설치하자

mod_defalate 오류가 나는 경우 zlib-develop 설치

modsecurity -------------------------------------------  
http://www.modsecurity.org/download/ 다운 후 압축해제.
./configure --with-apr=/usr/local/apache --with-apu=/usr/local/apache --with-apxs=/usr/local/apache/bin/apxs
make && make install 

아파치 설치시 unique-id 를 설치하지 않았다면
아파치소스폴더/modules/metadata/mod_unique_id.c 모듈을 올려줘야함

/usr/local/apache/bin/apxs -cia ./mod_unique_id.c
 
php -------------------------------------------
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-libdir=lib64 \  
--with-mysqli \
--with-pdo-mysql \
--with-apxs2=/usr/local/apache/bin/apxs \  
--with-zlib \
--with-gd \
--enable-gd-native-ttf \  
--with-jpeg-dir \  
--with-png-dir \  
--with-iconv \   
--disable-posix \
--disable-rpath \
--enable-magic-quotes \
--disable-dmalloc \
--enable-inline-optimization \
--enable-mbstring \
--enable-mbregex \   
--disable-debug \
--with-curl \
--with-ttf \  
--with-freetype-dir \
--with-mcrypt 

//필요한거 있으면 추가
--with-libexpat-dir \ 
--with-libxml-dir \ 
--enable-xml \ 
--enable-bcmath \  
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-pic \ 
--enable-ftp \  
--with-kerberos \
--with-openssl \  
--enable-wddx \  
--enable-calendar \
--enable-soap \
--enable-exif \  
--enable-shmop 
--enable-sockets \ 
--with-gmp \  

주의
--with-libdir=lib64 옵션을 지정한 경우 mysql/lib 가 아닌 mysql/lib64 에서 so 파일을 찾으므로 
잊지말고 ln -s lib lib64 소프트 링크를 생성해둬야 함

주의
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
이런 오류가 발생 할 경우 공유라이브러리 경로 설정이 잘못 되었을 경우가 있다.
/etc/ld.so.conf.d/mysql-x86_64.conf 파일이 있는데 정작 mysql lib 경로가 /usr/lib64/mysql 로 잡혀있는데 이 경로는 yum으로 설치되었을 경우 사용되는 경로 이므로 /usr/local/mysql/lib 를 추가 하고 ldconfig 를 실행 한후에 다시 해보자

주의
mysql을 소스 설치한 후에 --with-pdo-mysql 를 할경우 mysql_config 를 찾을수 없다는 오류가 나올 수 있는데 이것은 mysql 버그로  mysql_config를 설치경로에서 찾지 않고 /usr/bin에서 찾기 때문에 발생한다
임시적으로 ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config 링크를 만들어주면 된다.

https://bugs.php.net/bug.php?id=46975  

참고
윈도우나 여타의 이유로 php.ini 파일을 엉뚱한 곳에서 찾을 경우
httpd.conf 에 아래 설정을 추가하면 됨
PHPIniDir "php.ini 파일 경로"

eaccelerator -------------------------------------------
php확장 모듈들은 처음에는 configure가 없음
phpize를 실행하면 php에 맞는 configure 파일이 생성됨
 
./configure \
--enable-eaccelerator=shared \
--with-php-config=/usr/local/php/bin/php-config
make && make install

geoip -------------------------------------------
http://pecl.php.net/package/geoip 에서 파일 다운로드
phpize 실행 ->configure 생성
./configure  --with-php-config=/usr/local/bin/php-config --with-geoip=/usr/local/GeoIP
make && make install 

suhosin -------------------------------------------

http://www.hardened-php.net/suhosin/ 에서 다운로드
phpize 실행 ->configure 생성
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

수호신 설정(나머지는 document 참고)

[Suhosin]
extension=suhosin.so
suhosin.executor.disable_eval = ON