Apache 2.0.48 + tomcat4.1.29 + PHP

제목: Apache 2.0.48 + tomcat4.1.29 + PHP 5.0.0 + SSL + PERL (for linux)
글쓴이: 김일규
글쓴날: 2004년 01월 07일 오전 11:57
URL : http://kltp.kldp.org/?story=04/01/07/4266265



--------------------------------------------------------------------------------
Apache 2.0.48 Tomcat 4.1.29 mod_perl2 PHP 5.0.0 Beta2 For Redhat Linux9.0
이 자료는 KLTP에 신현진님이 올린 Solaris 설정자료를 Linux에서 설정할 때 톰캣 버전을 바꾸어 리눅스환경에 맞게 조금 업데이트한 문서입니다.

설치전 준비물
J2SE
Apache
Tomcat
Tomcat-Connector(mod_jk2)
mod_perl
openssl
PHP
zlib
ibxml

이외에도 GNUtar, libtool, autoconf, automake 등이 없다면 다운로드 받으시기 바랍니다.

설치에 필요한 파일 다운로드 사이트

J2SE
1.4.2-b28 j2sdk-1_4_2-nb-3_5_1-bin-linux.bin http://java.sun.com/j2se/
apache
2.0.48 httpd-2.0.48.tar.gz http://httpd.apache.org/
tomcat
4.1.29 jakarta-tomcat-4.1.29.tar.gz http://jakarta.apache.org/site/binindex.cgi
tomcat-connectors
jk-1.2 jakarta-tomcat-connectors-jk-1.2-src-current.tar.gz http://jakarta.apache.org/builds/
mod_perl
1.99_12 mod_perl-2.0-current.tar.gz http://perl.apache.org/
openssl
0.9.7c openssl-0.9.7c.tar.gz http://www.openssl.org/
PHP
5.0.0. Beta3 php-5.0.0b3.tar.gz http://www.php.net/
zlib
1.2.1 zlib-1.2.1.tar.gz http://www.gzip.org/zlib/
ibxml
2.6.4 libxml2-2.6.4.tar.gz http://xmlsoft.org/

위 사이트의 주소가 틀릴수도 있습니다. 대부분은 http://sunfreeware.com/ 에 가시면 다운로드 받을 수 있습니다. 참고하세요.
설치 중 에러가 나는 경우는 필요한 프로그램이 없는 경우 또는 버전이 맞지 않아서 일수도 있으며, 환경변수가 잡혀 있지 않거나, 퍼미션 설정이 잘 못 되었거나, 오타일 가능성을 살펴 봅니다. 에러 메시지를 잘 보시고 대처하시기 바랍니다.

J2SE Install
telnet console에서 인스톨하고자 하시는 분은 -console 혹은 -silent 옵션을 이용하세요.

# chmod 755 j2sdk-1_4_2-nb-3_5_1-bin-sol-sparc.bin
# ./j2sdk-1_4_2-nb-3_5_1-bin-sol-sparc.bin


저는 인스톨을 /usr/local/java 디렉토리에 하고, 패스를 잡아주었습니다.
설치후 버전을 확인하세요.

# cd /usr/local/java/bin
#./java -version





openssl 설치
# cd /tmp
# tar zxvf openssl-0.9.7c.tar.gz
# cd openssl-0.9.7c/
# ./config --prefix=/www/openssl
# make
# make install





zlib 설치
# cd /tmp/
# tar zxvf zlib-1.1.4.tar.gz
# cd zlib-1.1.4/
# ./configure --prefix=/www/zlib
# make
# mkdir -p \"/www/zlib/include\" \"/www/zlib/lib\"
# make install





apache 설치
# cd /tmp # tar zxvf httpd-2.0.48.tar.gz
# cd httpd-2.0.48/
# ./configure --prefix=/www/httpd --with-mpm=prefork --enable-ssl --with-ssl=/www/openssl --with-z=/www/zlib --enable-dav --enable-dav-fs --enable-auth-digest --enable-info --enable-rewrite --enable-vhost-alias --enable-expires --enable-mime-magic
# make
# make install


아파치의 conf/httpd.conf 파일 수정

# cd /www/httpd/conf
# vi ./httpd.confe Servername localhost:80 (여기 localhost는 자신의 도메인에 맞게 수정)
User nobody 라인 밑에 한줄 추가
-> Group nobody
# Group #-1
AddDefaultCharSet EUC-KR 로 수정

아파치가 제대로 작동하는지 확인합니다.
# cd /www/httpd/bin
# ./apachectl start
#
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 07 Jan 2004 01:41:21 GMT
Server: Apache/2.0.48 (Unix) mod_ssl/2.0.48 OpenSSL/0.9.7c DAV/2
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 04 May 2001 00:01:18 GMT
ETag: \"2801e-5b0-40446f80;28034-961-8562af00\"
Accept-Ranges: bytes
Content-Length: 1456
Connection: close
Content-Type: text/html; charset=EUC-KR
Content-Language: en
Expires: Wed, 07 Jan 2004 01:41:21 GMT

Connection closed by foreign host.
#
설정내용이 적용이안될수 있으므로 리부팅후 다시 로그인하는 것이 가장 확실하다.


ibxml 설치
# cd /tmp/
# tar zxvf libxml2-2.6.1.tar.gz
# cd libxml2-2.6.1/
# ./configure --prefix=/www/libxml
# make
# make install





PHP 설치
# cd /tmp/
# tar zxvf php-5.0.0b2.tar.gz
# cd php-5.0.0b2/

주의) --without-gd : gd 라이브러리를 사용하지 않도록 하는 옵션.
Solaris의 경우 gd 라이브러리가 설치되어 있지 않거나 설치되어 있다고 해도 자꾸 에러가 나서 저 옵션을 사용했습니다.
LINUX에서는 사용하지 않아도 에러 없이 컴파일 할 수 있습니다
# ./configure --prefix=/www/httpd/php --with-mysql=/usr/local/mysql \\
--with-apxs2=/www/httpd/bin/apxs --with-exec-dir=/www/httpd/php/bin \\
--enable-track-vars --with-config-file-path=/www/httpd/conf \\
--with-libxml-dir=/www/libxml --with-mod-charset --with-language=korean \\
--with-charset=euc_kr --enable-versioning

# make
# make install
# cp php.ini-dist /www/httpd/php/lib/php.ini



/www/httpd/conf/httpd.conf 를 vi로 열어 아래 부분을 추가합니다.

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


아파치를 실행시켜 PHP와 연동이 되었는지 확인합니다

# cd /www/httpd/bin
# ./apachectl start
#
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 07 Jan 2004 01:41:21 GMT
Server: Apache/2.0.48 (Unix) mod_ssl/2.0.48 OpenSSL/0.9.7c DAV/2 PHP/5.0.0b3
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 04 May 2001 00:01:18 GMT
ETag: \"2801e-5b0-40446f80;28034-961-8562af00\"
Accept-Ranges: bytes
Content-Length: 1456
Connection: close
Content-Type: text/html; charset=EUC-KR
Content-Language: en
Expires: Wed, 07 Jan 2004 01:41:21 GMT

Connection closed by foreign host.
#





mod_jk 연동( mod_jk.so 생성 )




# cd /tmp
# tar xzvf jakarta-tomcat-connectors-jk-1.2-src-current.tar.gz
# cd /tmp/jakarta-tomcat-connectors-jk-1.2-src/jk/native
# ./buildconf.sh
# ./configure --with-apxs=/www/httpd/bin/apxs
..... ....
# make
# make install
# ll /usr/local/apache/modules

mod_jk.so 이 있으면 성공!

이 부분에서 저는 소스를 컴파일 했습니다. 현재(2004/01/07)까지 linux용으로 만들어진
파일이 sun사이트에 없습니다. (Solaris용은 있음 )









Tomcat 설치

#cd /www
# tar xvfz jakarta-tomcat-4.1.29.tar.gz
# mv jakarta-tomcat-4.1.29 tomcat
# cd /www/tomcat/bin
# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat4
Using CATALINA_HOME: /usr/local/tomcat4
Using CATALINA_TMPDIR: /usr/local/tomcat4/temp
Using JAVA_HOME: usr/local/java
이렇게 나온후 웹브라우저에서 \"http://localhost:8080\" 입력후 화면에 고양이가 보이면 성공

server.xml 파일 수정

# cd /www/tomcat/conf
# vi server.xml
아래 내용을 찾아서..

밑줄에 다음을 입력한다.


아래 내용을 찾아서..

밑줄에 다음을 입력한다.


# cd /www/tomcat/bin
# ./shutdown.sh
# ./startup.sh
(/www/tomcat/conf 디렉토리 밑에 auto와 jk디렉토리가 생기면 성공)





workers.properties 파일 작성

# cd /www/tomcat/conf/jk
# vi workers.properties
밑의 내용을 전부 입력후 저장...
# Start setup file
#
workers.tomcat_home=/wwwl/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=ajp12, ajp13
# Definition for Ajp13 worker
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#
# End setup file


httpd.conf 수정

# cd /www/httpd/conf
# vi httpd.conf
제일 마지막 부분에 밑의 내용을 전부 입력후 저장...
LoadModule jk_module libexec/mod_jk.so

JkWorkersFile \"/usr/local/tomcat4/conf/jk/workers.properties\"
JkLogFile \"/usr/local/tomcat4/logs/mod_jk.log\"
JkLogLevel emerg

JkMount /*.jsp ajp13
JkMount /servlet/* ajp13

Include /usr/local/tomcat4/conf/auto/mod_jk.conf


실행 및 최종 확인

Apache 종료
# cd /www/httpd/bin
# ./apachectl stop


Tomcat 종료후 시작
# cd /www/tomcat/bin
# ./shutdown.sh
# ./startup.sh


Apache 시작
# cd /www/httpd/bin
# ./apachectl start


처음 시작시에는 tomcat 실행, Apache 실행


Tomcat 작동확인
http://localhost:8080
http://localhost:8080/examples


Apache + Tomcat 연동 작동확인
http://localhost
http://localhost/examples


tomcat 과 아파치를 실행해서 연동이 되었는지 다른 방법 확인

# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 07 Jan 2004 01:41:21 GMT
Server: Apache/2.0.48 (Unix) mod_ssl/2.0.48 OpenSSL/0.9.7c DAV/2 PHP/5.0.0b3
mod_jk/1.2.5
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 04 May 2001 00:01:18 GMT
ETag: \"2801e-5b0-40446f80;28034-961-8562af00\"
Accept-Ranges: bytes
Content-Length: 1456
Connection: close
Content-Type: text/html; charset=EUC-KR
Content-Language: en
Expires: Wed, 07 Jan 2004 01:41:21 GMT

Connection closed by foreign host.
#

적절히 연동이 되었는지 아래 주소로 확인해 봅니다
doc :
http://localhost/tomcat-docs/


JSP :
http://localhost/examples/jsp/


Servlet :
http://localhost/examples/servlets/

서비스를 멈춥니다

# cd /www/httpd/bin
# ./apachectl stop
#
# cd /www/tomcat/bin
# ./catalina.sh stop





mod_perl 설치

#cd /www/httpd
#mkdir libexec
#cp modules/mod_jk.so libexec

이렇게하는 것은 설치시 mod_jk.so파일을 /www/httpd/libexec에서 찾기 때문이다.
/www/httpd/modules 여기서 찾으면 좋을텐데 말이다. ^^;;

# cd /tmp/
# tar zxvf mod_perl-2.0-current.tar.gz
# cd mod_perl-1.99_12/
# perl Makefile.PL MP_AP_PREFIX=/www/httpd MP_INST_APACHE2=1
# make
# make install


conf/httpd.conf 를 수정하여 아파치 시작시 모듈이 올라오도록 수정합니다

LoadModule perl_module modules/mod_perl.so

아파치를 실행시켜 mod_perl 과 Perl 버전이 뜨는지 확인합니다

# cd /www/httpd/bin
# ./apachectl restart
#
# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is \'^]\'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 07 Jan 2004 01:41:21 GMT
Server: Apache/2.0.48 (Unix) mod_perl/1.99_12 Perl/v5.8.0 mod_ssl/2.0.48
OpenSSL/0.9.7c DAV/2 PHP/5.0.0b3 mod_jk/1.2.5
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Fri, 04 May 2001 00:01:18 GMT
ETag: \"2801e-5b0-40446f80;28034-961-8562af00\"
Accept-Ranges: bytes
Content-Length: 1456
Connection: close
Content-Type: text/html; charset=EUC-KR
Content-Language: en
Expires: Wed, 07 Jan 2004 01:41:21 GMT

Connection closed by foreign host.
#



SSL 설치 및 가동

# cd /www/openssl/bin
Random State생성
# openssl sha1 * > rand.dat or
cat file1 file2 file3 > rand.dat or
생성하지 않아도 됨



개인키 생성.

# openssl genrsa -rand rand.dat -des 1024 > key.pem
키를 생성하기위해서 rand.dat를 난수생성을 위해 로드하고, DES로 암호화하여 1024bit 의 RSA 알고리즘을 사용하여 생성된 결과값을 파일 key.pem에 출력합니다.
# openssl genrsa -rand rand.dat -des3 1024 > key.pem
( triple DES로 개인키를 암호화하길 원할 경우)
주의:passphase를 기억해야 합니다.Apache-SSL서버 시작시 passphase가 반드시 필요하기 때문입니다.



CSR 생성

#>openssl req -new -key key.pem -out csr.pem
인증서버에 보낼 파일을 생성했다.
위에서 생성한 전자서명키와 다음에 입력할 DN(distinguish name) 정보를 가지고 인증요청정보(CSR.PEM)을 생성합니다
1. C (country : 국가) 에 해당하는 값을 입력합니다.
(예) KR : Korea (mandatory)
2. ST (state : 지방) 에 해당하는 값을 입력합니다
(예) New South Wales = NSW
3. L (locality : ) 에 해당하는 값 (city, town 등) 을 입력합니다.
4. DN 에 해당하는 O(organization) 의 이름을 기입합니다. 이 NAME은 도메인 NAME의 일부로 사용하게 됩니다..
예) KICA : Korea Information Certificate Authority (mandatory)
5. DN에 해당하는 회사이름 OU(organization unit)을 입력합니다.
(예) KR, Dacom 등
6. Web Server의 FULL 도메인 name 또는 IP를 입력합니다.. 이것은 당신이 차후 사용하게 될 web site 의 https URL로 사용할 수 있도록 합니다.
(예) www. Bookstore.com or 128.134.254.166
7.남은 attribute 부분은 생략해도 됩니다.
8.위 과정을 거치면 다음과 같은 csr.pem 형식의 web server 인증요청 정보가 나오게 됩니다.




CSR 보기

# cat csr.pem
-----BEGIN CERTIFICATE REQUEST-----
MIIB3zCCAUgCAQAwgZ4xCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDEfMB0G
A1UEBxMWam9vbmdyaW0tZG9uZyxjaHVuZy1ndTENMAsGA1UEChMES0lDQTEUMBIG
A1UECxMLbGljZW5zZWRXZWIxFzAVBgNVBAMTDnd3dy5zaWducmEuY29tMSAwHgYJ
KoZIhvcNAQkBFhFraWNhQHNpZ25nYXRlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOB
jQAwgYkCgYEAwV7RJqGC9M0OGEiCRsszrXNa2uu1tJ+oqtIbmG5lzyLcpYPV0JOb
o6vQq27RP2EbEHoUNLL92oWNlKwo/kkUoR9r3TvjhZ221uFoGjBt/LSwn9ui3nY+
Ntef90l24ltNpc7eHPNnvTdWLWWmkO9EImJ90soc0VTqwSORfxGd4KVqzH17U5yQ
/m3W
-----END CERTIFICATE REQUEST-----


이 pem 형식의 인증요청정보(CSR)를 복사하여 웹서버 인증 발급요청에서 인증서 요청 정보란에cut & paste후 나머지 정보를 입력한 뒤 인증서 발급 요청을 하면 됩니다.
http://www.crosscert.com 에서 테스트 인증서를 받을 수 있습니다




인증서 설치

1. SSL 인증서 설정( SSLCertificateFile )
공인인증기관으로부터 cut&paste한 PEM 형식의 인증서를 웹서버에 파일로 저장한다. (인증서를 /www/httpd/conf 에 파일로 저장한 경우)

#vi httpd.conf
#Point SSLCertificateFile at a PEM encoded certificate.
# If the certificate is encrypted, then you will be prompted for a pass phrase.
# Note that a kill -1 will prompt again.
# A test certificate can be generated with \"make certificate\".
SSLCertificateFile /www/httpd/conf/cert.pem


2. SSL 전자서명 생성키 설정( SSLCertificateKeyFile )
# 개인키 생성시 생성했던 전저서명생성키를 설정하는 것으로 절대패스를 지정해주어야 하고 만약 암호화되어 있다면 웹서버 기동시 암호를 입력을 요구한다.


#vi httpd.conf
# If the key is not combined with the certificate, use this directive to
# point at the key file. If this starts with a \'/\' it specifies an absolute
# path, otherwise it is relative to the default certificate area. That is, it
# means \"/private/\".
SSLCertificateKeyFile /www/httpd/conf/key.pem





SSL 설치 완료 & 웹서버 시작

# cd /www/httpd/bin
# ./apachectl start ssl
Apache/2.0.48 mod_ssl/2.0.48 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.

Server localhost:443 (RSA)
Enter pass phrase: (password 입력)

Ok: Pass Phrase Dialog successful.




이 문서에 대한 저작권은 없습니다. 마음껏 활용하셔도 됩니다.
하지만, 이 문서에 대한 책임은 지지 않습니다. 문의나 메일은 사양합니다.
혹시 Ledhat 9.0환경에서 apache2.* + Tomcat 5.* 설치해보신분들은 kltp에 문서 자료 업로드 부탁드립니다. 저는 아파치2.* + 톰캣 5.* 연동 부분에서 실패를 봐서 4.*로 바꾸었습니다. 좋은 자료 부탁드립니다.
참고로 이 자료는 http://www.parupunte.com/minaken/apache2/httpdtomcat507modjk2.html 사이트의 자료를 토대로 작성 했습니다.


--------------------------------------------------------------------

문서 작성일 : 2004년 01월 07일
--------------------------------------------------------------------------------

KLTP - Korean Linux Tips Project
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/09/21 09:03 2004/09/21 09:03
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/286

mysql_Optimize 허접 팁~! ㅋㅋㅋ

$result = mysql_query($sql);
$num = mysql_affected_rows();
// echo " $sql -> $num
";
$o = 1;

for($d = 0 ; $d < $num; $d++){
$row_d = mysql_fetch_row($result);
// echo "$row_d[0]
";

$sql2 = " show tables from $row_d[0] ";
$result2 = mysql_query($sql2);
$num2 = mysql_affected_rows();

for($i =1 ; $i <= $num2 ; $i++){
$row = mysql_fetch_row($result2);
$no = sprintf("%03d",$o);
$o_sql = " OPTIMIZE TABLE $row_d[0].$row[0] ";
// echo "$o_sql
";

$o_result = mysql_query($o_sql);
$o_row = mysql_fetch_row($o_result);
//echo "$no   |   $o_sql => $o_row[0] ,
$o_row[1] , $o_row[2] , $o_row[3]
";
echo "$no   |      $o_row[0] ,
$o_row[1] , $o_row[2] , $o_row[3]
";
$o++;
}

}


?>
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/09/11 09:17 2004/09/11 09:17
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/54

간단한 실시간 시계



JASKO 샘플 페이지












크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/08/17 11:31 2004/08/17 11:31
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/310

오늘은 이미지를 원격으로 업로드를 하는 경우에 업로드를 하기 전에 미리보는 초간단 코드를 올립니다. 코드가 아니라 스크립트로 되어있는데요. 여기에 올라와 있는 미리보기라는 것들이 이것을 말하는 것인지는 모르겠지만 제가 만든 것에 비하면 엄청나게 복잡하더군요. 그래서 제가 언제나 그렇듯 저와 같은 초보님들을 위해서 올립니다.

---------------이미지 업로드전 미리보기 코드------------------







----------------------------------------

이상입니다....허접하죠? 그래도 잼나는 방법인것 같아서 올립니다. 저는 이거 하기 전까지 사실 안되는줄 알았던게 뭐냐하면 원격지에 올라가 있는 코드에서 업로드를 할 때 로컬로 경로지정이 안 될줄 알았거든요. 그런데 그냥 해봤는데 아무 무리없이 되는 것이었습니다.

이것이 무슨 말인고하니 이것이 있는 파일이 자신의 컴이 아닌 서버에 있는 파일인데도 로컬로의 경로지정이 된다는 말입니다. 이미 고수분들은 알고계셨겠지만...^^;
또 하나 안해봐서 몰랐던게 input 태그 타입이 파일일 때 이벤트를 먹여본 적이 없었기 때문에 정말로 긴가민가했습니다. 그런데 이것도 잘 되었습니다. 더구나 안에 있는 값까지 보낼 수 있었다니...^^;

결국 이리하여 스크립트로 미리보기가 만들어진 것입니다. 이 파일이 집에 있는 자신의 컴에서 돌리는 것이라면 엄청 평범한 것이지만 원격지에 있어도 된다는 것을 모르시는 분들을 위해서 알려드리고 싶었습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/08/17 09:22 2004/08/17 09:22
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/53


에디트 플러스를 애용하는데요..

한 파일내에 많은 함수가 있을 경우 찾기 힘들 때에는..
(다른 사람이 만들어 놓은 건 생소하니까..)
Ctrl + F11... (검색 메뉴에 위치..)

지금 까지 무식하게 스크롤바 움직이며 찾거나 검색해서 찾았는데..
한방에 다 나오네요=_=

테터툴즈 수정하다가 함수 찾는 도중에 우연히 발견하였습니다;
어찌나 반갑고 허탈하던지=_=



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/08/17 09:20 2004/08/17 09:20
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/52

순차 정렬




$nom = array(2,3,7,6,5,3,2,2);
$nom2 = array();

//-- 배열을 돌린다.

for($i =0 ; $i < count($nom); $i++){

$chk = 0;

//--- 배열을 다른 배열에 중복되지 않는 값만 담는다.
for($o = 0; $o < count($nom2); $o++){
if($nom2[$o] == $nom[$i]) $chk = 1;
}

if($chk == 0 ) $nom2[$i] = $nom[$i];
echo "$nom[$i]
";

}

echo "-----------------------------
";

//--- 중복값 삭제된 놈

for($i =0 ; $i < count($nom2); $i++){
echo "$nom2[$i]
";
}


echo "-----------------------------
";

//--- 순차정렬


for($i = 0; $i < count($nom2) -1 ; $i++){
$minindex = $i;
$min = $nom2[$i];
for($j = $i + 1; $j < count($nom2); $j++){
if($min > $nom2[$j]){
$min = $nom2[$j];
$minindex = $j;
}
}
$nom2[$minindex] = $nom2[$i];
$nom2[$i] = $min;
}

//--- 최종 정렬된 값

for($i =0 ; $i < count($nom2); $i++){
echo "$nom2[$i]
";
}

?>
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/08/16 10:59 2004/08/16 10:59
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/51

이미지 업로드전 미리보기

오늘은 이미지를 원격으로 업로드를 하는 경우에 업로드를 하기 전에 미리보는 초간단 코드를 올립니다. 코드가 아니라 스크립트로 되어있는데요. 여기에 올라와 있는 미리보기라는 것들이 이것을 말하는 것인지는 모르겠지만 제가 만든 것에 비하면 엄청나게 복잡하더군요. 그래서 제가 언제나 그렇듯 저와 같은 초보님들을 위해서 올립니다.

---------------이미지 업로드전 미리보기 코드------------------







----------------------------------------
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/08/04 14:26 2004/08/04 14:26
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/50

status 현재 DB의 정보를 종합적으로 출력한다.

현재 사용자와 서버 버전, socket 위치, 문자 셋 등을 보여주고, 마지막에는 퀴리 통계를 보여준다.

⊙ Uptime - Mysql 서버가 시작된 후 현재까지 시간(초)
⊙ Threads - 현재 Mysql 서버에 연결된 수
⊙ Questions - Mysql 서버 시작후 지금까지 요창된 퀴리수
⊙ Slow queries - long_query_time 시간보다 느린 퀴리 수
⊙ Opens - Mysql 서버가 시작된 후 현재까지 열었던 테이블 수
⊙ Flush tables - FLUSH 명령 실행수나 서버를 재시작한 횟수
⊙ Open tables - 현재 열려있는 테이블수
⊙ Queries per second avg - 1초 동안 평균 쿼리수( 쿼리당 평군시간이 아니다. )
⊙ Memory in use - 할당된 메모리
⊙ Max memory used - 할당된 최대 메모리

초당 Slow queries 수 = slow_queries / uptime
Slow queries% = slow_queries / questions * 100
테이블 당 연결 평균 = Open_tables / Max_used_connections
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/07/08 17:32 2004/07/08 17:32
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/49

show full processlist 문법


현재 실행중인 쓰래드의 정보를 보여준다.

이 명령은 " top many connections " 오류에 대한 해결책을 찾는데 유용하게 사용될 것이다.

mysqladmin processlist 명령과 동일하다.

모든 프로세스를 보기위해서는 FULL 옵션을 써야한다.
그렇치 않으면 100개의 퀴리 정보만 보여지게 된다.

-i 옵션을 이용하면 몇 초 마다 한번씩 정기적으로 확인할수 있다.
-r 옵션은 정보를 갱신하였을 경우 차이점만을 보여준다.

//--- 3초마다 한 번씩 보여준다.
mysqladmin -uonschoolnet -p -i3 processlist

오랜시간 sleep이 계속될경우 KILL 명령으로 쓰레드를 삭제하는것이 좋다.
kill thread_id;

mysql>kill 423493;



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/07/08 17:24 2004/07/08 17:24
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/48

아주 작은 스위스제 손목시계













































크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/07/08 13:59 2004/07/08 13:59
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/309

« Previous : 1 : ... 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : ... 33 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Statistics Graph

Site Stats

Total hits:
239683
Today:
335
Yesterday:
712