MySQL + Apache + PHP4 + Zend Optimizer + gd + im - php 글쓴이 : 김정현 (2000년 12월 12일 오후 04:12) 읽은수:1238 < MySQL + Apache + PHP4 + Zend Optimizer + gd + imap + Tomcat + mysql용JDBC + JDK1.3 설치하기 > <*****설치환경******> CPU : Intel Pentium II 450Mhz RAM: 128M OS: WOW Linux 6.2 Kernel: 2.2.14 <*****설치에 필요한 파일******> mysql-3.22.25.tar.gz (http://www.mysql.com/downloads/) apache_1.3.12.tar.gz (http://www.apache.org/mirrors/) php-4.0.1.tar.gz (http://www.php.net/downloads.php) ZendOptimizer-RC1-Linux-glibc2.1.tar.gz (http://www.zend.com/download.php) jakarta-tomcat.tar.gz (http://jakarta.apache.org/builds/tomcat/release/v3.1/bin/jakarta-tomcat.tar.gz) mod_jserv.so (http://jakarta.apache.org/builds/tomcat/release/v3.1/bin/linux/i386/mod_jserv.so) JDK 1.1 이상 mm.mysql-2.0.2-bin.jar : mysql용 jdbc gd, imap 이 문서는 제가 서버를 셋팅할때 한것이기 때문에 안될 가능성도 있습니다. 그러나 따라만 하면 거의 다 될것입니다. 밑에 내용은 여기저기의 내용을 제가 서버를 셋팅할때 정리한것이기 때문에 안될 가능성도 있습니다. ------------------------------------------------------------------- 1. 설치에 필요한 파일 다운받기 ------------------------------------------------------------------- 해당 사이트 또는 미러사이트 등을 이용하여 파일을 다운로드 받는다. root 권한으로 /tmp 에 저장 -------------------------------------------------------------------- 2. RPM으로 설치된 패키지 제거하기 -------------------------------------------------------------------- 지금부터의 작업은 반드시 root의 권한으로 해야 한다. 배포본 리눅스에 기본적으로 설치되어 있는 RPM 패키지를 제거한다. [root@sjsilk /root]#/etc/rc.d/init.d/httpd stop 아파치 데몬을 종료시킨다. [root@sjsilk /root]#rpm -e apache 다음과 같은 메시지가 뜨면, [root@sjsilk /root]#rpm -e apache error: removing these packages would break defendencies: webserver is needed by mod_perl-1.21-10 webserver is needed by php-3.0.15-2 이는 의존성을 나타내며, 의존성이 있는 패키지를 먼저 제거 후 아파치를 위와 같이 제거한다. [root@sjsilk /root]#rpm -e mod_perl [root@sjsilk /root]#rpm -e php ------------------------------------------------------------------ 3. MySQL, Apache, PHP4 바이너리 파일 압축풀기 ------------------------------------------------------------------ tmp 디렉토리에 있는 tar.gz 소스 파일들을 푼다. [root@sjsilk /tmp]#tar zxvf mysql-3.22.25.tar.gz [root@sjsilk /tmp]#tar zxvf apache_1.3.12.tar.gz [root@sjsilk /tmp]#tar zxvf php-4.0.1.tar.gz [root@sjsilk /tmp]#tar zxvf ZendOptimizer-RC1-Linux-glibc2.1.tar.gz [root@sjsilk /tmp]#tar zxvf jakarta-tomcat.tar.gz [root@sjsilk /tmp]#tar zxvf imap-4.7b-patch.tar.gz [root@sjsilk /tmp]#tar zxvf gd1_5.tar.gz [root@sjsilk /tmp]#tar zxvf jsdk20-solaris2-sparc.tar.Z 주: mod_jserv.so (풀지 않고 그대로 사용합니다.) mm.mysql-2.0.2-bin.jar ------------------------------------------------------------------ 4. Jdk 1.2.2 ------------------------------------------------------------------ 참고) jdk가 설치되어 있어야. 톰캣에서 서블릿을 가동할수 있슴. > tar xvfz jdk1_2_2-linux-i386.tar.gz > mv jdk1_2_2 /usr/local/ > ln -s /usr/local/jdk1_2_2 java > vi /etc/profile 하시고.. PATH="$PATH:/usr/local/java/bin" export JAVA_HOME="/usr/local/java" export CLASSPATH="." (저장후 종료) 여기까지.. jdk 설치가 끝난겁니다.. 잘 되었는지 확인방법은 다시 로그인 하신후에.. java -version 해보세요.. 잘되죠?? 그럼 ok!!!!!!!!! ---------------------------------------------------------------------- 5. Jsdk 2.0 ---------------------------------------------------------------------- > tar xvfz jsdk20-solaris2-sparc.tar.Z > mv JSDK20 /usr/local/ > ln -s /usr/local/JSDK20 JSDK > vi /etc/profile PATH="$PATH:/usr/local/JSDK" export CLASSPATH=".:/usr/local/JSDK/lib/jsdk.jar" (저장후 종료) ------------------------------------------------------------------- 6. MySQL 설치 ------------------------------------------------------------------- [root@sjsilk /tmp]#cd mysql-3.23.25 [root@sjsilk /mysql-3.23.25]#./configure -- prefix=/usr/local/mysql \ --with-charset=euc_kr 위 옵션은 한글로 메시지를 출 력하도록 하는 옵션이다. DB 데이터를 저장할 디렉토리를 지정을 하려면 -- localstatedir/usr/local/mysql/data 와 같이 해 준다. 혹시 실수로 환경설정을 다시 해야할 경우 make distclean 명령을 한다. Thank you for choosing MySQL! 이라는 메시지가 뜰것이다. [root@sjsilk /mysql-3.23.25]#make 컴파일을 한다. 시스템 사양에 따라 시간 차이가 있으므로 사양이 낮은 컴퓨터는 조금 기다리세요. [root@sjsilk /mysql-3.23.25]#make install MySQL을 설치한다. [root@sjsilk /mysql-3.23.25]#cd /usr/local/mysql/bin MySQL이 설치된 디렉토리로 이동한다. [root@sjsilk /bin]#./mysql_install_db MySQL의 데이터를 관리할 기초정보인 테이블 6개를 생성시킨다. 주의할 점은 mysql_install_db은 반드시 한번만 실행시켜야 한다. [root@sjsilk /bin]safe_mysqld --language=korean & [root@sjsilk /bin]mysqladmin -u root password 'new-pass'[enter] * 팁) root 패스워드 분실시 방법: (1) ./killall mysqld (데몬을 모조리 죽임) (2) ./bin/safe_mysqld --skip-grant & (3) mysql> UPDATE user SET Password=PASSWORD('newpasswd') WHERE user='root'; (4) mysql> FLUSH PRIVILEGES; ----------------------------------------------------------------------------------- 7. IMAP 소스디텍토리를 /usr/local/imap으로 바꾸고 아래와 같이 컴파일한다. ----------------------------------------------------------------------------------- [root@sjsilk imap]# telnet localhost 143 Trying 127.0.0.1... telnet: Unable to connect to remote host: 연결이 거부됨 a 먼저 자신의 시스템에 IMAP이 설치되어있나 확인해본다. 위와 같이 나오면 IMAP이 설치되어 있지 않는 것이다. [root@sjsilk imap]# make slx a 리눅스에 맞게 컴파일하기 위해 make 뒤에 slx 옵션을 붙여준다. [root@sjsilk imap]# cp ipopd/ipop[23]d /usr/sbin/ [root@sjsilk imap]# cp imapd/imapd /usr/sbin/ [root@sjsilk imap]# vi /etc/inetd.conf pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d imap stream tcp nowait root /usr/sbin/tcpd imapd a inetd.conf 파일을 열어서 위와 같이 문구에 주석을 풀어 준다. [root@sjsilik imap]# killall -HUP inetd [root@sjsilk imap]# telnet localhost 143 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. * OK localhost.localdomain IMAP4rev1 v12.264 server ready a 위 같은 화면이 나오면 IMAP 설치는 성공입니다. [root@sjsilk imap]# cp /usr/local/imap/c-client/c-client.a /usr/lib/libc-client.a [root@sjsilk imap]# mkdir /usr/local/include [root@sjsilk imap]# cp /usr/local/imap/c-client/mail.h /usr/local/include [root@sjsilk imap]# cp /usr/local/imap/c-client/rfc822.h /usr/local/include [root@sjsilk imap]# cp /usr/local/imap/c-client/linkage.h /usr/local/include a 위의 파일들을 카피하는 것은 아파치 컴파일시 아파치가 IMAP을 인식하여 사용할 수 있도록 하기 위한 파일입니다. 위의 파일들을 카피하지 않은면 아파치 컴파일시 에러가 납니다. a IMAP 설치 끝. ----------------------------------------------------------------------------------------- 8. GD 소스디텍토리를 /usr/local/gd로 바꾸고 아래와 같이 컴파일한다. ----------------------------------------------------------------------------------------- [root@sjsilk gd]# make a GD 설치 끝. ------------------------------------------------------------------------------------------ 9. Apache Configure(1) ------------------------------------------------------------------------------------------ [root@www /mysql]#cd /tmp/apache_1.3.12 초기에 아파치소스 압축을 풀어놓은 곳으로 이동. [root@www /apache_1.3.12]#./configure --prefix=/usr/local/apache ------------------------------------------------------------------------------------------- 10. PHP4설치 ------------------------------------------------------------------------------------------- [root@sjsilk /tmp]#cd php-4.0.1 [root@sjsilk /php-4.0.1]#./configure --prefix=/usr/local/php\ --with-apache=../apache_1.3.12\ --with-mysql=/usr/local/mysql\ --with-imap=/usr/local/imap\ --with-gd=/usr/local/gd\ --enable-track-vars\ --with-language=korean\ --with-charset=euc_k\ --disable-debug \ --with-xml --enable-magic-quotes 옵션에 대한 추가 설명은 PHP메뉴얼을 참고하기 바랍니다. 만약 PostgeSQL이나 mSQL을 사용한다면 --with-pgsql=디렉토리경로 -- with-msql=디렉토리 경로와 같이 옵션을 사용하면 된다. --enable-track-vars 옵션은 HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어 있는 GET, POST, cookie 변수들이 어디서 왔는지 기억하도록 합니다. 꼭 설정해 두세요. [root@sjsilk /php-4.0.1]#make 컴파일을 하고, [root@sjsilk /php-4.0.1]#make install 인스톨을 한다. --------------------------------------------------------------------------------------------- 11. Apache Configure(2), 컴파일 --------------------------------------------------------------------------------------------- [root@www /apache_1.3.14]#./configure --prefix=/usr/local/apache \ -- enable-module=so \ --activate-module=src/modules/php4/libphp4.a [root@www /apache_1.3.14]#make 아파치를 컴파일한다. [root@www /apache_1.3.14]#make install 아파치 인스톨 ---------------------------------------------------------------------------------------------- 12. Tomcat 설치하기 ---------------------------------------------------------------------------------------------- [root@sjsilk /tmp]#mv jarkarta-tomcat-3.2-b7 /usr/local/jakarta [root@www /tmp]#cd /usr/local/apache/conf # tomcat을 httpd 가 인식하게 하는 작업 [root@www /apache]#vi ./conf/httpd.conf http.conf 제일 밑줄에 다음의 문장을 덧부친다. Include /usr/local/jakarta/conf/tomcat.conf TOMCAT에는 두 개의 CONFIG 파일이 있는데, tomcat.conf는 httpd 를 위한 것이고, server.xml은 자체를 위한 것이다. 둘다. Port 번호가 있는데 디폴트는 8007로 조정되어 있다. 만약, 8007을 사용치 않는다면, 그냥 넘어가도 되고, 사용한다면, 각 파일을 열어 포트번호를 고쳐야 한다. 이외에도 server.xml에는 또 다른 Port 번호가 있는데 디폴트가 8080 이 다. 이 또한 조정이 필요하면 조정하되, 대부분의 사람들은 그대로 사용한다. [root@sjsilk /jakarta]#vi ./bin/startup.sh 다음 2개의 라인을 입력한다. TOMCAT_HOME=`/usr/local/jakarta` JAVA_HOME=`/usr/local/jdk1.2.2` --------------------------------------------------------------------------------------------- 13. Zend Optimizer 설치 --------------------------------------------------------------------------------------------- [root@sjsilk /apache_1.3.12]#cd /tmp [root@sjsilk /tmp]#tar zvxf ZendOptimizer-RC1-Linux-glibc2.1.tar.gz [root@sjsilk /tmp]#mkdir /usr/local/Zend [root@sjsilk /tmp]#mv ZendOptimizer-RC1-Linux-glibc2.1 /usr/local/Zend/lib --------------------------------------------------------------------------------------------- 14. 환경설정 파일 편집 --------------------------------------------------------------------------------------------- [root@sjsilk /tmp]# cp /tmp/php-4.0.3pl1/php.ini-dist /usr/local/apache/conf/php.ini [root@sjsilk /tmp]#cd /usr/local/apache/conf [root@sjsilk /conf]#vi php.ini php.ini 파일을 열어서 맨 마지막에 다음 과 같이 Optimizer를 위한 설정을 추가한다. zend_optimizer.optimization_level=7 zend_extension="/usr/local/Zend/lib/ZendOptimizer.so" [root@www /conf]#vi httpd.conf 아파치의 환경설정 파일을 열어서 다 음과 같은 설정을 한다. 360라인쯤에 Default 시작페이지 설정을 해 준다 DirectoryIndex index.php index.php3 index.html 720라인 정도에서 다음 내용의 주석을 풀고 원하는 환경으로 설정을 한다. AddType application/x-httpd-php .php .php3 .php4 .html .htm AddType application/x-httpd-php-source .phps apache 데몬의 시작, 종료, 재시작을 편하게 하기 위하여 다음 작업을 한다. [root@sjsilk /conf]#cd /usr/local/apache/bin [root@sjsilk /conf]#cp -p * /usr/bin/ [root@sjsilk bin]httpd -t 엔터를 두드리고 아무런 에러메세지가 없으면 아파치 환경이 잘 설정되었다. [root@sjsilk bin]# apachectl start /usr/bin/apachectl start: httpd started 이런 메세지가 보인다면 아파치가 정상적인 실행이 된 것이다. --------------------------------------------------------------------------------------------- 15. Test 하기 --------------------------------------------------------------------------------------------- - php 연동 확인 [root@sjsilk /conf]#vi /usr/local/apache/htdocs/test.php 에디터 창에서 다음내용을 입력한다. 저장을 하고 브라우저에서 http://localhost/test.php 를 입력하여 어떤 내용이 출력되는지 본다. 다음과 같은 내용이 출력된다면 정상적으로 설치가 잘 되었다. PHP Version 4.0.1 System Linux www.rotaract.or.kr 2.2.16-3 #1 Mon Jun 19 19:11:44 EDT 2000 i686 unknown Build Date Aug 20 2000 Configure Command './configure' '--with-mysql=/usr/local/mysql' '-- with-apache=../apache_1.3.14' '--enable-track-vars' '--with-config- file-path=/usr/local/apache/conf' '--with-mod-charset' '--with- language=korean' '--with-charset=euc_kr' '--disable-debug' '--with- xml' '--enable-magic-quotes' Server API Apache Virtual Directory Support disabled Configuration File (php.ini) Path /usr/local/apache/conf ZEND_DEBUG disabled Thread Safety disabled This program makes use of the Zend scripting language engine: Zend Engine v1.0.1, Copyright (c) 1998-2000 Zend Technologies 출력화면 내용은 아래로도 계속 있다. mysql과 정상적인 연동이 되면 다음화면을 볼 수 있을 것이다. mysql MySQL Support enabled Active Persistent Links 0 Active Links 0 Client API version 3.22.32 MYSQL_INCLUDE MYSQL_LFLAGS MYSQL_LIBS - tomcat 연동 확인 브라우저에서 http://localhost:8080 를 입력하여 tomcat 화면이 뜨고, 각종 예제 파일이 작동하면, 정상적인 것이다. ------------------------------------------------------------------------------------------ 16. 시스템 부팅시 자동 데몬화 ------------------------------------------------------------------------------------------ /etc/rc.d/rc.local 파일을 열어서 마지막 줄에 다음 명령을 입력한다. /usr/local/apache/bin/apachectl start /usr/local/mysql/share/mysql/mysql.server & /usr/local/jakarta/bin/startup.sh ->제가 해보니까 잘 안되더군요 안되면 다시 프로프트에서 실행 하면 됩니다. 또는 다음과 같이 할 수도 있다. [root@www2 rc3.d]#reboot 리부팅을 시켜 잘 실행이 되는지 확인하자. ----------------------------------------------------------------------------------------- 17. JDBC의 설정과 테스트 ----------------------------------------------------------------------------------------- 1.jdbc driver설치&설정 http://www.worldserver.com/mm.mysql/에 가서 mm.mysql-2.0.2-bin.jar을 받는다 파일명이 정확해야한다 반드시 또는 http://juntack.xto.co.kr/repository/mm.mysql-2.0.2-bin.jar 에서 다운받으세요 #주의# 위의 파일을 win98에서 받으니깐 파일명이 변형을 일으킬수도~이러면 절대 안됨 리눅스의 /usr/local/jdk1.3/jdbc/에 복사해 놓는다 #주의# "."을 잊지말것 /etc/profile에 클래스패스설정 export CLASSPATH="$CLASSPATH:.:/usr/local/pgsql/jdbc/postgresql.jar:/usr/local/jdk1.3/jdbc/mm.mysql-2.0.2-bin.jar" [root@junatck mysql]# source /etc/profile 로 설정을 컴에 알린다 2.mysql에 user설정 다음과 같이 했습니다 database name:java id:jdbc password:1234 여기서 수퍼관리계정을 만들어야죠 이미한분은 바로밑에 줄은 생략! [root@juntack mysql]# mysqladmin -u root password abcdefg 자 이제 권한설정입니다 [root@juntack mysql]# mysql -u root -p mysql password:******* .. .. . mysql>use mysql; mysql>create database java; #참고# 아래의 MySQL은 소스설치이므로 바이너리나 rpm설치시는 N,Y의 개수가 틀릴수도 있어요 mysql>desc user; mysql>desc db; 위와 같이 하여 필드개수를 확인할것! mysql>insert into user values("%","jdbc",password("1234"),"N"......."N"); N이 14개입니다 mysql>insert into user values("166.104.90.135","jdbc",password("1234"),"N"......."N"); mysql>insert into user values("localhost","jdbc",password("1234"),"N"......."N"); mysql>insert into db values("%","java","jdbc","Y","Y",.......,"Y"); Y가 10개 입니다 mysql>flush privileges; 이상으로 끝 3. win98에 jdbc driver 설정 autoexec.bat에 set classpath=.;c:jdk1.3jdbcpostgresql.jar;c:jdk1.3jdbcmysqlmm.mysql-2.0.2-bin.jar 로 설정 4.연결을 확인합니다 소스는 다음입니다 import java.sql.*; public class test{ public static void main(String args[]){ Connection con; try{ Class.forName("org.gjt.mm.mysql.Driver"); } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } try{ String url = "jdbc:mysql://166.104.90.135:3306/java"; con = DriverManager.getConnection(url,"jdbc","1234"); System.out.println("OK"); con.close(); } catch(SQLException e){ System.out.println(e.getMessage()); } } } 5. c:>java test OK c:> 짜잔........ 성공입니다 위의 과정으로 win98과 리눅스서버의 원격연결이 되었습니다 위대로 하시면 100%(?) 됩니다 --------------------------------------------------------------------------------------------------------- 수고많으셨습니다. 꼭 성공하세요!!