Apache2 + PHP5 + Mysql(4 & 5) (with MS SQL and Oracle)
- Posted at 2008/12/12 19:17
- Filed under Informations : 쓸만한정보
이 포스트는 수정되어 다시 작성되었습니다.
아래 포스트에서 새로 작성된 내용을 확인하세요.
Sulinux2.0 + Apache2 + PHP5 + DB
언젠가.. 다시 작업하게 되는날...
시간 절약을 위해.. 메모를 남겨 둠...
관련 정보를 찾으시는 분들에게 도움이 되기를 바랍니다.
# yum update
시간 오래 걸리니.. 식사라도 하고 오자..
그리고.. 필요한 library를 다운로드 하여 설치..
참고
선오공님꺼 수정판 -> 페도라 코어4 : 웹호스팅 서버 그대로 따라 만들기
APM + lib 설치... CentOS + Mysql5 + Apache2 + Php5 등등 ...
Centos5.2 + Mysql5.0.24 + apache2.0.63 + php5.2.6 설치
# cd zlib-1.2.3
# ./configure
# make
# make install
# cd bzip2-1.0.5
# make test
# make install
# cd zziplib-0.13.49
# ./configure
# make
# make install
# cd libpng-1.2.33
# cp scripts/makefile.linux makefile
# make test
# make install
# cd freetype-2.1.10
# ./configure
# make
# make install
# tar -xvzf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --enable-shared --enable-static
# make
# make test
# make install
# make install-lib
# make install-headers
# cd gd-2.0.35
# ./configure
# make (왜 마지막에 오류가 날까??)
# make install
# cd openssl-0.9.8i
# ./config
# make
# make install
# cd curl-7.19.2
# ./configure --with-ssl
# make
# make install
# cd libmcrypt-2.5.7
# ./configure
# make
# make install
# cd libxml2-2.7.2
# ./configure
# make
# make install
# cd libiconv-1.12
# ./configure --prefix=/usr/local
# make
# make install
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2 (PHP가 이상하게 /usr/lib 에서만 찾는다)
UTF-8을 이용하지 않는 4.0.27 버전과 최신버전을 각각 Port를 달리하여 설치.
우선 사용자 생성
# adduser mysql
# passwd mysql
(패스워드는 알아서 복잡하게 설정.. )
참고
mysql 2개이상 설치하기
# cd mysql-4.0.27
# ./configure \
--prefix=/usr/local/mysql_4.0.27 \
--localstatedir=/home/mysql/data4 \
--with-unix-socket-path=/home/mysql/mysql4.sock \
--with-tcp-port=3340 \
--with-charset=euc_kr \
--enable-thread-safe-client
# make
# make install
# /usr/local/mysql_4.0.27/bin/mysql_install_db
(DB 생성)
# ls -al /home/mysql/data4
(DB가 생성되었는지 확인)
# cd /etc
(my.cnf 파일이 있는지 확인.. 만약 있으면 삭제.. 없구나.. ^^)
(# rm -fr my.cnf)
# cd /usr/local/mysql_4.0.27/share/mysql
# cp my-medium.cnf /home/mysql/data4/my.cnf
(my.cnf 파일 복사)
# cd /home/mysql
# chown -R mysql:mysql data4
# cd data4
# vi my.cnf
(my.cnf 파일에서 아래 내용과 같이 되었는지 확인)
==========================================
[client]
port = 3340
socket = /home/mysql/mysql4.sock
[mysqld]
port = 3340
socket = /home/mysql/mysql4.sock
==========================================
# cd /usr/local/mysql_4.0.27/share/mysql
# vi mysql.server
(mysql.server 파일의 47~48 라인을 아래와 같이 변경)
==========================================
datadir=/home/mysql/data4
pid_file=/home/mysql/data4/mysql4.pid
==========================================
# cp mysql.server /etc/rc.d/init.d/mysqld4
# chkconfig --add mysqld4
(부팅시 자동실행을 위해 ntsysv에 등록)
# ntsysv
(정상등록 확인하고 체크...)
# /etc/rc.d/init.d/mysqld4 start
(실행해서 아래처럼 되는지 확인)
Starting MySQL. SUCCESS!
(나는 이런 말 안나오더라.. ㅡ.ㅡ;;)
# ls -al /home/mysql
(mysql4.sock 파일이 보이면 정상 실행된 것임)
# cd mysql-5.0.67
# ./configure \
--prefix=/usr/local/mysql_5.0.67 \
--localstatedir=/home/mysql/data5 \
--with-unix-socket-path=/home/mysql/mysql5.sock \
--with-tcp-port=3306 \
--with-charset=utf8 \
--enable-thread-safe-client
# make
# make install
# /usr/local/mysql_5.0.67/bin/mysql_install_db
(DB 생성)
# ls /home/mysql/data5
(DB가 생성되었는지 확인)
# cd /etc
(my.cnf 파일이 있는지 확인.. 만약 있으면 삭제.. 역시 없구나.. ^^)
(# rm -fr my.cnf)
# cd /usr/local/mysql_5.0.67/share/mysql
# cp my-medium.cnf /home/mysql/data5/my.cnf
# cd /home/mysql
# chown -R mysql:mysql data5
# cd data5
# vi my.cnf
(my.cnf 파일에서 아래 내용과 같이 되었는지 확인)
==========================================
[client]
port = 3306
socket = /home/mysql/mysql5.sock
[mysqld]
port = 3306
socket = /home/mysql/mysql5.sock
==========================================
# cd /usr/local/mysql_5.0.67/share/mysql
# vi mysql.server
(mysql.server 파일의 59 라인을 아래와 같이 변경)
==========================================
pid_file=/home/mysql/data5/mysql5.pid
server_pid_file=/home/mysql/data5/mysql5.pid # 4.1버전에는 없음
==========================================
# cp mysql.server /etc/rc.d/init.d/mysqld5
# chkconfig --add mysqld5
# ntsysv
(정상등록 확인하고 체크...)
# /etc/rc.d/init.d/mysqld5 start
Starting MySQL. SUCCESS!
(뜨는지 확인..)
# ls -al /home/mysql
(mysql4.sock 과 mysql5.sock 파일이 보이시면 정상적으로 모두 설치/실행 완료)
마지막으로 4.0.27 과 5.0.67 둘 중 대표로 사용할 것을 mysql로 심볼링크
# ln -s /usr/local/mysql_5.0.67 /usr/local/mysql
# cd httpd-2.2.9
(접속자 수 최대로 올리기)
# vi server/mpm/prefork/prefork.c
==============================================
[EDITOR]#define DEFAULT_SERVER_LIMIT 256 을
[EDITOR]#define DEFAULT_SERVER_LIMIT 1280 으로 수정 (77라인)
==============================================
# vi server/mpm/worker/worker.c
==============================================
[EDITOR]#define DEFAULT_SERVER_LIMIT 16 을
[EDITOR]#define DEFAULT_SERVER_LIMIT 20 으로 수정 (85라인)
==============================================
# ./configure \
--prefix=/usr/local/apache2 \
--enable-so \
--enable-modules=so \
--with-mpm=worker \
--enable-rewrite
# make
# make install
부팅시 자동실행이 안되더라..
아래를 파일에 추가..
# vi /etc/rc.d/rc.local
====================================
/usr/local/apache2/bin/apachectl start
====================================
재부팅 후 페이지가 열리는지 웹브라우저로 확인
# cd freetds-0.82
# ./configure \
--prefix=/usr/local/freetds \
--with-tdsver=8.0 \
--disable-odbc \
--disable-debug \
--enable-msdblib
# make
# make install
# cp include/tds.h /usr/local/freetds/include/
# cp src/tds/.libs/libtds.a /usr/local/freetds/lib/
(PHP 설치시 freeTDS를 못찾더라..)
참고
FreeTDS - PHP에서 MS-SQL에 접근하기
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
위 링크에서 Oracle Database Instant Client 를 다운로드
Basic와 SDK를 다운로드 하여야 함
oracle-instantclient-basic-10.2.0.4-1.i386.zip
oracle-instantclient-devel-10.2.0.4-1.i386.zip
각각의 압축을 다음 경로에 풀어준다..
/usr/lib/oracle
/usr/lib/oralce/sdk
# cd /usr/lib/oracle
# ln -s libclntsh.so.10.1 libclntsh.so
심볼릭 링크 생성..
오라클 환경변수를 셋팅
# vi /etc/profile
export NLS_LANG=.KO16KSC5601 <= 이 부분을 오라클의 NLS_LANG 값에 맞게 추가
:wq
# source /etc/profile
참고
오라클 Instant Client와 php 설치
====================================
/lib
/usr/lib
/usr/local/lib
/usr/local/mysql/lib/mysql
====================================
(라이브러리 인식을 위해.. 추가)
# ldconfig
# tar -xvzf php-5.2.6.tar.gz
# cd php-5.2.6
# ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-bz2= \
--with-curl \
--with-freetype-dir=/usr \
--with-gd \
--with-gdbm=/usr \
--with-gettext \
--with-iconv=/usr/local \
--with-imap=shared \
--with-imap-ssl=/usr/lib \
--with-jpeg-dir=/usr \
--with-kerberos \
--with-libxml-dir \
--with-mcrypt=/usr/local/lib \
--with-sybase=/usr/local/freetds \
--with-mssql=/usr/local/freetds \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-oci8=instantclient,/usr/lib/oracle \
--with-openssl \
--with-png-dir=/usr \
--with-ttf \
--with-xmlrpc \
--with-zlib \
--with-zlib-dir \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-mod-charset \
--enable-sockets \
--enable-spl \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-wddx \
--enable-zip \
--disable-debug
# make
(# make test 이건 생략해도 될 듯..)
# make install
# cp php.ini-dist /usr/local/lib/php.ini /// 이부분 이상하다.. 다시 확인하자.. /usr/local/php/lib 인듯...
# tar -xvzf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
# cd ZendOptimizer-3.3.3-linux-glibc23-i386
# ./install.sh
아래 포스트에서 새로 작성된 내용을 확인하세요.
Sulinux2.0 + Apache2 + PHP5 + DB
언젠가.. 다시 작업하게 되는날...
시간 절약을 위해.. 메모를 남겨 둠...
관련 정보를 찾으시는 분들에게 도움이 되기를 바랍니다.
SULinux 1.5 설치
기본 설치 후 업데이트..# yum update
시간 오래 걸리니.. 식사라도 하고 오자..
그리고.. 필요한 library를 다운로드 하여 설치..
참고
선오공님꺼 수정판 -> 페도라 코어4 : 웹호스팅 서버 그대로 따라 만들기
APM + lib 설치... CentOS + Mysql5 + Apache2 + Php5 등등 ...
Centos5.2 + Mysql5.0.24 + apache2.0.63 + php5.2.6 설치
zlib 설치
# tar -vxzf zlib-1.2.3.tar.gz# cd zlib-1.2.3
# ./configure
# make
# make install
bzip2 설치
# tar -xvzf bzip2-1.0.5# cd bzip2-1.0.5
# make test
# make install
zziplib 설치
# tar xvfpj zziplib-0.13.49.tar.bz2# cd zziplib-0.13.49
# ./configure
# make
# make install
libPNG 설치
# tar -xvzf libpng-1.2.33.tar.gz# cd libpng-1.2.33
# cp scripts/makefile.linux makefile
# make test
# make install
freeType 설치
# tar -xvzf freetype-2.1.10.tar.gz# cd freetype-2.1.10
# ./configure
# make
# make install
jpegsrc 설치
# mkdir /usr/local/man/man1# tar -xvzf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --enable-shared --enable-static
# make
# make test
# make install
# make install-lib
# make install-headers
GD 설치
# tar -xvzf gd-2.0.35.tar.gz# cd gd-2.0.35
# ./configure
# make (왜 마지막에 오류가 날까??)
# make install
OpenSSL 설치
# tar -xvzf openssl-0.9.8i.tar.gz# cd openssl-0.9.8i
# ./config
# make
# make install
curl 설치
# tar -xvzf curl-7.19.2.tar.gz# cd curl-7.19.2
# ./configure --with-ssl
# make
# make install
libMCrypt 설치
# tar -xvzf libmcrypt-2.5.7.tar.gz# cd libmcrypt-2.5.7
# ./configure
# make
# make install
libXML2 설치
# tar -xvzf libxml2-2.7.2.tar.gz# cd libxml2-2.7.2
# ./configure
# make
# make install
libiconv 설치
# tar -xvzf libiconv-1.12.tar.gz# cd libiconv-1.12
# ./configure --prefix=/usr/local
# make
# make install
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2 (PHP가 이상하게 /usr/lib 에서만 찾는다)
MySQL 설치
Legacy Program 들을 위해 구버전을 같이 설치하여 필요시 사용하도록 하자..UTF-8을 이용하지 않는 4.0.27 버전과 최신버전을 각각 Port를 달리하여 설치.
우선 사용자 생성
# adduser mysql
# passwd mysql
(패스워드는 알아서 복잡하게 설정.. )
참고
mysql 2개이상 설치하기
MySQL 4.0.27 설치
# tar -xvzf mysql-4.0.27.tar.gz# cd mysql-4.0.27
# ./configure \
--prefix=/usr/local/mysql_4.0.27 \
--localstatedir=/home/mysql/data4 \
--with-unix-socket-path=/home/mysql/mysql4.sock \
--with-tcp-port=3340 \
--with-charset=euc_kr \
--enable-thread-safe-client
# make
# make install
# /usr/local/mysql_4.0.27/bin/mysql_install_db
(DB 생성)
# ls -al /home/mysql/data4
(DB가 생성되었는지 확인)
# cd /etc
(my.cnf 파일이 있는지 확인.. 만약 있으면 삭제.. 없구나.. ^^)
(# rm -fr my.cnf)
# cd /usr/local/mysql_4.0.27/share/mysql
# cp my-medium.cnf /home/mysql/data4/my.cnf
(my.cnf 파일 복사)
# cd /home/mysql
# chown -R mysql:mysql data4
# cd data4
# vi my.cnf
(my.cnf 파일에서 아래 내용과 같이 되었는지 확인)
==========================================
[client]
port = 3340
socket = /home/mysql/mysql4.sock
[mysqld]
port = 3340
socket = /home/mysql/mysql4.sock
==========================================
# cd /usr/local/mysql_4.0.27/share/mysql
# vi mysql.server
(mysql.server 파일의 47~48 라인을 아래와 같이 변경)
==========================================
datadir=/home/mysql/data4
pid_file=/home/mysql/data4/mysql4.pid
==========================================
# cp mysql.server /etc/rc.d/init.d/mysqld4
# chkconfig --add mysqld4
(부팅시 자동실행을 위해 ntsysv에 등록)
# ntsysv
(정상등록 확인하고 체크...)
# /etc/rc.d/init.d/mysqld4 start
(실행해서 아래처럼 되는지 확인)
Starting MySQL. SUCCESS!
(나는 이런 말 안나오더라.. ㅡ.ㅡ;;)
# ls -al /home/mysql
(mysql4.sock 파일이 보이면 정상 실행된 것임)
MySQL 5.0.67 설치
# tar xvfz mysql-5.0.67.tar.gz# cd mysql-5.0.67
# ./configure \
--prefix=/usr/local/mysql_5.0.67 \
--localstatedir=/home/mysql/data5 \
--with-unix-socket-path=/home/mysql/mysql5.sock \
--with-tcp-port=3306 \
--with-charset=utf8 \
--enable-thread-safe-client
# make
# make install
# /usr/local/mysql_5.0.67/bin/mysql_install_db
(DB 생성)
# ls /home/mysql/data5
(DB가 생성되었는지 확인)
# cd /etc
(my.cnf 파일이 있는지 확인.. 만약 있으면 삭제.. 역시 없구나.. ^^)
(# rm -fr my.cnf)
# cd /usr/local/mysql_5.0.67/share/mysql
# cp my-medium.cnf /home/mysql/data5/my.cnf
# cd /home/mysql
# chown -R mysql:mysql data5
# cd data5
# vi my.cnf
(my.cnf 파일에서 아래 내용과 같이 되었는지 확인)
==========================================
[client]
port = 3306
socket = /home/mysql/mysql5.sock
[mysqld]
port = 3306
socket = /home/mysql/mysql5.sock
==========================================
# cd /usr/local/mysql_5.0.67/share/mysql
# vi mysql.server
(mysql.server 파일의 59 라인을 아래와 같이 변경)
==========================================
pid_file=/home/mysql/data5/mysql5.pid
server_pid_file=/home/mysql/data5/mysql5.pid # 4.1버전에는 없음
==========================================
# cp mysql.server /etc/rc.d/init.d/mysqld5
# chkconfig --add mysqld5
# ntsysv
(정상등록 확인하고 체크...)
# /etc/rc.d/init.d/mysqld5 start
Starting MySQL. SUCCESS!
(뜨는지 확인..)
# ls -al /home/mysql
(mysql4.sock 과 mysql5.sock 파일이 보이시면 정상적으로 모두 설치/실행 완료)
마지막으로 4.0.27 과 5.0.67 둘 중 대표로 사용할 것을 mysql로 심볼링크
# ln -s /usr/local/mysql_5.0.67 /usr/local/mysql
Apache 설치
# tar -xvzf httpd-2.2.9.tar.gz# cd httpd-2.2.9
(접속자 수 최대로 올리기)
# vi server/mpm/prefork/prefork.c
==============================================
[EDITOR]#define DEFAULT_SERVER_LIMIT 256 을
[EDITOR]#define DEFAULT_SERVER_LIMIT 1280 으로 수정 (77라인)
==============================================
# vi server/mpm/worker/worker.c
==============================================
[EDITOR]#define DEFAULT_SERVER_LIMIT 16 을
[EDITOR]#define DEFAULT_SERVER_LIMIT 20 으로 수정 (85라인)
==============================================
# ./configure \
--prefix=/usr/local/apache2 \
--enable-so \
--enable-modules=so \
--with-mpm=worker \
--enable-rewrite
# make
# make install
부팅시 자동실행이 안되더라..
아래를 파일에 추가..
# vi /etc/rc.d/rc.local
====================================
/usr/local/apache2/bin/apachectl start
====================================
재부팅 후 페이지가 열리는지 웹브라우저로 확인
freeTDS 설치
# tar -xvzf freetds-0.82.tar.gz# cd freetds-0.82
# ./configure \
--prefix=/usr/local/freetds \
--with-tdsver=8.0 \
--disable-odbc \
--disable-debug \
--enable-msdblib
# make
# make install
# cp include/tds.h /usr/local/freetds/include/
# cp src/tds/.libs/libtds.a /usr/local/freetds/lib/
(PHP 설치시 freeTDS를 못찾더라..)
참고
FreeTDS - PHP에서 MS-SQL에 접근하기
Oracle Instant Client 설치
http://www.oracle.com/technology/tech/oci/instantclient/index.htmlhttp://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
위 링크에서 Oracle Database Instant Client 를 다운로드
Basic와 SDK를 다운로드 하여야 함
oracle-instantclient-basic-10.2.0.4-1.i386.zip
oracle-instantclient-devel-10.2.0.4-1.i386.zip
각각의 압축을 다음 경로에 풀어준다..
/usr/lib/oracle
/usr/lib/oralce/sdk
# cd /usr/lib/oracle
# ln -s libclntsh.so.10.1 libclntsh.so
심볼릭 링크 생성..
오라클 환경변수를 셋팅
# vi /etc/profile
export NLS_LANG=.KO16KSC5601 <= 이 부분을 오라클의 NLS_LANG 값에 맞게 추가
:wq
# source /etc/profile
참고
오라클 Instant Client와 php 설치
PHP 설치
# vi /etc/ld.so.conf====================================
/lib
/usr/lib
/usr/local/lib
/usr/local/mysql/lib/mysql
====================================
(라이브러리 인식을 위해.. 추가)
# ldconfig
# tar -xvzf php-5.2.6.tar.gz
# cd php-5.2.6
# ./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-bz2= \
--with-curl \
--with-freetype-dir=/usr \
--with-gd \
--with-gdbm=/usr \
--with-gettext \
--with-iconv=/usr/local \
--with-imap=shared \
--with-imap-ssl=/usr/lib \
--with-jpeg-dir=/usr \
--with-kerberos \
--with-libxml-dir \
--with-mcrypt=/usr/local/lib \
--with-sybase=/usr/local/freetds \
--with-mssql=/usr/local/freetds \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-oci8=instantclient,/usr/lib/oracle \
--with-openssl \
--with-png-dir=/usr \
--with-ttf \
--with-xmlrpc \
--with-zlib \
--with-zlib-dir \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-mod-charset \
--enable-sockets \
--enable-spl \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-wddx \
--enable-zip \
--disable-debug
# make
(# make test 이건 생략해도 될 듯..)
# make install
# cp php.ini-dist /usr/local/lib/php.ini /// 이부분 이상하다.. 다시 확인하자.. /usr/local/php/lib 인듯...
ZendOptimizer 설치
http://www.zend.com 에서 다운로드 (회원 로그인 필요)# tar -xvzf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
# cd ZendOptimizer-3.3.3-linux-glibc23-i386
# ./install.sh
Posted by rose2her
Trackback URL : http://rose2her.com/trackback/71
Comments List
-
CURL설치를 위해 글을 잘 봤습니다. 혹시 "/usr/local/apache2/modules/libphp5.so: undefined symbol: curl_module_entry" 설치 완료 후 Apache Restart 시 이런 에러가 발생하는데 위에서 하신 작업외에 변경할 것이 있는지 여쭤 봅니다. 기존 설치된 Php에 컴파일과 CURL설치 만 했습니다.