PHP로 Xinetd 데몬 만들기

영완
http://cafe.naver.com/mangchiwebmail

———————————————————–
Reference By http://cafe.naver.com/mangchiwebmail
———————————————————–

일반적으로 .. 데몬을 만든다면.. 직접 소켓 프로그래밍을 합니다.

하지만, IMAP-2000.RPM 등의 .. 프로그램은 Xinetd 에 의존하여 작동합니다.

PHP로 작성된 스크립트도 Xinetd 에 의존하여 작동할 수 있습니다.

이 번 망치 웹메일 0.3 Preview 는 XInetd 의존 데몬으로 제작될 예정입니다.

아직 네트워크 프로그래밍에 대해서는 자신이 없는 관계로..

※ 설정 환경은 아래와 같습니다 – 글쓴이 환경.

OS : Fedora Core1
Xinetd : xinetd-2.3.12-4.10.0 ( RPM )
PHP : Compile

1. /etc/services 에 .. 오픈할려는 포트를 설정합니다.
테스트로 2048 번을 오픈하도록 하겠습니다.

$> vi /etc/services +2048

2. 다음 행을 추가합니다.
mangchi 2048/tcp # For PHP Script
mangchi 2048/udp # For PHP Script

3. /etc/xinetd.d/mangchi 파일을 아래와 같이 작성합니다.
service mangchi {
socket_type = stream
wait = no
user = root
server = /usr/local/bin/php
server_args = /home/mangchi/mangchi.php
log_on_success += HOST DURATION
log_on_failure += HOST
disable = no
}

4. 이제 Xinetd 환경 설정은 완료되었습니다. 혹 보완이 걱정된다면 /etc/xinetd.d/mangchi 파일에서 user 부분을 다른 사용자로 설정하시면 됩니다.
Xinetd 를 다시 시작하여 .. 환경설정이 로딩되도록 합니다.
$> service xinetd restart

5. PHP Test 소스를 만들도록 하겠습니다.
=> /home/mangchi/mangchi.php 파일을 다음과 같이 작성합니다.

6. 자 이제 접속 테스트를 하면 됩니다.

$> telnet localhost 2048

HTML Source 나오고 접속이 끊기게 되면 성공적으로 테스트가 완료된 것입니다.
더 자세한 정보가 필요하시면 http://cafe.naver.com/mangchiwebmail 에 방문하세요 ^^.

[자바스크립트 팁] Image – 동적인 크기조절

우정원

..팁이라고 하기엔 좀 부끄럽니다.
필요하신분 저처럼 삽질하지 마시라고 올려놓읍니다.
=================================================

익스플로러 전용이며 마우스 클릭한 후 나타나는 네모영역을
상,하,좌,우,대각선으로 잡아 당기거나 끌면 크기가 변경됩니다.



멀티 설문조사

리스트, 싱글텍스트, 멀티텍스트, 기타 형식등을 하나의 설문에서 동시에 사용할 수 있습니다.

http://www.shop-wiz.com
http://www.shop-wiz.com/util/multipoll/wizpoll_multi.php
http://www.shop-wiz.com/wizboard.php?BID=solution1&category=solution1&mode=view&UID=8&CURRENT_PAGE=

다중 투표 프로그램입니다.
샘플 URL : http://www.shop-wiz.com/util/multipoll/wizpoll_multi.php
배포처 : http://www.shop-wiz.com/wizboard.php?BID=solution1&category=solution1&mode=view&UID=8&CURRENT_PAGE=&BOARD_NO=

1. step1 : DB생성하기 아래의 DATA BASE를 만든다.

#
# 테이블 구조 `wizpoll_long_each`
#

CREATE TABLE wizpoll_long_each (
EUID int(11) NOT NULL auto_increment,
EPID varchar(200) NOT NULL default ”,
ECompName varchar(50) NOT NULL default ”,
EName varchar(50) NOT NULL default ”,
EEmail varchar(50) NOT NULL default ”,
EJumin1 int(6) NOT NULL default ‘0’,
EJumin2 int(7) NOT NULL default ‘0’,
EContents text,
EW_Day int(13) default NULL,
PRIMARY KEY (EUID)
) TYPE=MyISAM;

#테이블 설명
#EUID //일련번호
#EPID //투표아이디
#ECompName//회사명
#EName //성명
#EEmail //이메일
#EContents //답변 답번호^주관식|….
#EW_Day // 답변일
# ——————————————————–

#
# 테이블 구조 `wizpoll_long_schem`
#

CREATE TABLE wizpoll_long_schem (
SUID int(11) NOT NULL auto_increment,
SPID varchar(200) NOT NULL default ”,
STitle text NOT NULL,
SSubject text,
SCount int(3) NOT NULL default ‘0’,
SContents text,
SFromDay int(11) default NULL,
SToDay int(11) default NULL,
IsDisplay int(1) NOT NULL default ‘0’,
SW_Date int(13) NOT NULL default ‘0’,
PRIMARY KEY (SUID)
) TYPE=MyISAM;

#테이블 설명
#SUID //일련번호
#SPID //투표아이디
#STitle //투표의 목표, 취지
#SSubject//투표제목 제목1^디스플레이여부^공개여부|제목2|제목3|…
#SCount //문항수
#SContents //문항디스플레이방법^문항1^문항2^…|문항디스플레이방법^문항1^…
#문항성격 : 실렉트,기타, 텍스트, 텍스트박스,
#SFromDay //시작일
#SToDay //마지막일
#IsDisplay //디스플레이 여부
#SW_Date //최초작성일
# ——————————————————–

2. step2 DB관련 파일생성하기 – 아래와 같이 db_info.php와 db_connect.php의 파일을 생성한다.

db_info.php
$MYSQL_HOST = “localhost”; /* 호스트내임, 보통 localhost */
$MYSQL_DB = “여러분의 Mysql DB이름”; /* DB이름, */
$MYSQL_ID = “여러분의 Mysql DB아이디”; /* DB아이디*/
$MYSQL_PASSWORD = “여러분의 Mysql DB패스워드”; /* DB패스워드 */
?>

db_connect.php
$DB_CONNECT = mysql_connect($MYSQL_HOST, $MYSQL_ID, $MYSQL_PASSWORD);
mysql_select_db($MYSQL_DB, $DB_CONNECT);
if ( !$DB_CONNECT ) {echo “mysql 데이터 베이스에 연결할 수 없습니다.”; exit;}
?>

사용법 : wizpoll_multi.php에서 제목, 설문문항수, 투표기한을 선택하면 새로운 설문리스트가 생성됩니다.
설문리스트의 좌측에서 수정을 클릭하시면 현재 설문내용을 편집하실 수 있습니다.
– 디스플레이(리스트에표시) 전체설문리스트에 표시할지 안할지 표시
– 설문내용(설문목적을 간략하게표시)
– 이문항을 설문에 표시 – 다중폴중 특정 질문을 숨기거나 표시가능
– 일반인에게 결과 공개 – 다중폴중 특정 질문에 대한 결과값을 일반인에게 숨기거나 공개
– 단순리스트
1. 이것은 폴이다.
2. 이것은 정말 다중 폴이다
3. 이것은 폴맞나?
– 마지막 라인에 텍스트 박스 삽입
1. 이것은 폴이다.
2. 이것은 정말 다중 폴이다
3. 기타(텍스트 박스 삽입 됨)
– 택스트 박스(Single Line) : 싱글라인으로 표시
– 택스트 박스(Multi Line) : 멀티라인으로 표시

wizpoll_list.php : 현재 진행중인 다중 멀티폴 표시

멀티 설문조사 관리자 보기
wizpoll_multi.php

1056983255.zip

[PHP/MP3 streaming] Release 1.0.3(bug fixed)

http://linuxchannel.net/
http://ftp.linuxchannel.net/devel/php_stream/
http://linuxchannel.net/mp3stream/

안녕하세요?…
드디어 1년(?) 만에 완성했습니다.
(작년 이맘때에 시작했으니…. T.T)

아래는 README.txt 파일 내용입니다.
(말도 안되는 영어라서… 죄송…T.T)

[PHP/MP3 streaming 1.0.3]

## [PHP/MP3 streaming] APACHE/PHP4 base very simple mp3 streaming server
##
## [author]
## – Chilbong Kim
## – http://linuxchannel.net/
##
##
## [What is ‘PHP/MP3 streaming’?]
## – 아파치/PHP4 기반 간단한 mp3/ogg 스트리밍 서버
## – 기능 :
## 1) HTTP 프로토콜을 지원하는 mp3 player로 실시간 음악 전송
## 2) 한글 파일, 띄어쓰기 파일 이름 지원
## 3) MP3/OGG 파일 지원
## 4) CD cover 이미지 view
## 5) Text 파일 view
## 6) 사용자 추가곡 및 관리(골라서 듣기)
## 7) 웹 인터페이스 사용자 설정(템플렛 방식)
## 8) 실시간 bitrate 조절(mp3 mono 64Kbps 만 지원) 및
## 전송(lame 설치 요구됨)
## 9) 기타
##
## * 권장 용도 : 사내 인트라넷, 음반 저작권이 자유로운 홈페이지
## * 제작 배경 : 안갈쳐줘오~~~ (많을걸 요구하시는 구려..^.9)
## * 여자친구 만들어 주세요…T.T(이럴때 PR 해야쥐이…크크)
##
##
## [changes]
##
## – 2003.05.22(Ver 1.0.3)
## fixed setcookie(_userconf, _userlist)
## fixed user_agent() function
## support some Window-Media-Player/7.1 over(it’s poor)
## – 2003.05.21(Ver 1.0.2)
## add theme(default,blue,black)
## add templates(dragonball)
## – 2003.05.20(Ver 1.0.0)
## add user configuration interface
## – 2003.05.19(Ver 0.9.9)
## add my playlist
## add user configuration
## – 2003.05.10(Ver 0.9.5)
## add/delete user user playlists
## – 2003.05.01(Ver 0.9.0)
## add user interface
## add base play lists,
## add mp3, ogg infomation
## – 2003.04.29(Ver 0.6.7)
## fixed ‘+’ string for user agent guly parsing
## – 2003.01.05(Ver 0.6.6)
## small bug fixed
## – 2002.08.20(Ver 0.6.5)
## support vorbis OGG file
## support RMA(ReadMedia-Player)
## support Zinf(FreeAmp)
## support XMPlay(win)
## – 2002.05.15(Ver 0.5)
## support access logging
## security
## support direct access(such as xmms, winamp …), then random playing
## – 2002.05.14(Ver 0.3)
## support PHP/4.0.x
## – 2002.05.13(Ver 0.2)
##
##
## [download & online source view]
## – >http://ftp.linuxchannel.net/devel/php_stream/
##
##
## [demo view]
## – http://linuxchannel.net/mp3stream/
##
##
## [requirements]
## 0. GNU/Linux OS
## 1. apache 1.3.x (or 2.0.x not test)
## 2. PHP/4.x.x
## 3. some mp3 or ogg files
## 4. mp3 player(such as winamp, xmms, …)
## 5. There is no need to use together.
## (such as icecast, apache-mp3, mod_mp3 streaming server)
##
##
## [install lame] <-- this options
## 0. download : http://lame.sourceforge.net/
## (http://lame.sourceforge.net/download/download.html)
## 1. tar zxvf lame-xxx.tar.gz
## 2. cd lame-xxx
## 3. ./configure (default PREFIX=/usr/local)
## 4. make
## 5. make install (install to ‘/usr/local/bin/lame’)
##
##
## [reference]
## 0. if mime type isn’t registered by IANA(->ICANN),
## adding a “x-” before the subtype
## 1. /usr/local/apache/conf/mime.types.default
## 2. http://sander.vanzoest.com/talks/apachecon/2001/notes/notes_apachecon.txt
## 3. http://www.mp3dev.org/ support mp3 bitrate(use lame)
## 4. RFC 1806, The Content-Disposition Header
## 5. RFC 3003, The audio/mpeg Media Type
## 6. vorbis OGG : http://www.xiph.org/ and http://www.vorbis.com/faq.psp
##
##
## [test and more support]
## 1. Linux/2.4 (redhat 7.x)
## 2. Apache/1.3.x
## 3. PHP/4.2.x PHP/4.1.x, PHP/4.0.x
## 4. useragent :
## – MSIE5/6
## – netscape/4,6,7 (linux,win)
## – mozilla/0.9.x/1.x.x(linux)
## – xmms/1.x.x(linux) : ok
## – winamp(win) : ok
## – winmap3(win) : ok
## – Zinf(FreeAMP) : ok
## – XMPlay(win) : ok
## – RMA, RealMedia-Player(win) : ok
## – Window-Media-Player(win) : some (7.1 over)
## – NSPlayer(win) : fail
## 5. test only *.mp3(korean file name success)
## 6. support lame(only *.mp3 bitrate)
## 7. support access log write(options)
## 8. support direct access(such as xmms, winamp …)
## 9. support vorbis OGG file
## 10. support view images(CD covers.jpg …)
## 11. support view text file
##
##
## [TODO] – I just think.
## 1. user auth(option)
## 2. check and more useragent support
## 3. ogg infomation support
## 4. etc, …. T.T
##
## enjoy !!!
##
#####################################################

1226617945.rar

썸네일

CHThumbnail PHP Extension Module

작성자: 나창호
회사: chcode.com
버전: $Revision: 1.0 $
고친날: $Date: 2003/09/27 02:17:21 $

——————————————————————————–

CHThumbnail: 사용자 메뉴얼

——————————————————————————–

목차1. 소개
2. 설치
2.1. 압축 파일 풀기
2.2. 동적라이브러리 복사하기
2.3. makethumbnail.ch 파일 복사하기
3. 사용법
4. 함수
4.1. inputImage()
4.2. ouputImage()
4.3. makeThumbnail()
4.4. qualityFactor()
4.5. addEdge()
4.6. addDropshadow()
4.7. thumbnailBgcolor()
5. 예제
6. 버그
7. 다운로드
8. 라이센스

——————————————————————————–
목차 | 다음: 2. 설치
1. 소개
CHThumbnail 확장 모듈은 손쉽게 설치하여 사용할 수 있는 C 언어로 개발된 강력한 Thumbnail 이미지 프로세싱 모듈입니다.
그림자와 그에 관련된 옵션, 경계선, 배경색 등의 효과를 줄 수 있습니다.
——————————————————————————–
목차 | 이전: 1. 소개 | 다음: 3. 사용법
2. 설치
CHThumbnail은 현재 리눅스만을 지원합니다. 설치는 root 권한이 있어야 합니다.
Unix 또는 FreeBSD 상에서도 실행하는 데는 문제가 없을 거라 생각되지만, 현재는 시험해 보지 않아 확신할 수 없습니다.

2.1. 압축 파일 풀기
2.2. 동적라이브러리 복사하기
2.3. makethumbnail.ch 파일 복사하기

——————————————————————————–
목차 | 위로: 2. 설치 | 다음: 2.2. 동적라이브러리 복사하기
2.1. 압축 파일 풀기
다운로드 받은 chthumbnail.tar.gz 압축 파일을 임의의 디렉토리로 복사한 다음, 아래 명령을 이용하여 chthumbnail.tar.gz 압축 파일을 풉니다.

# gunzip chthumbnail.tar.gz
# tar xvf chthumbnail.tar

——————————————————————————–
목차 | 위로: 2. 설치 | 이전: 2.1. 압축 파일 풀기 | 다음: 2.3. makethumbnail.ch 파일 복사하기
2.2. 동적 라이브러리 복사하기
modules 디렉토리에 있는 chtemplate.so 동적라이브러리 파일을 PHP 확장 모듈 디렉토리로 복사합니다.

# cp chthumbnail/modules/chthumbnail.so [php_ext_dir]

PHP 확장 디렉토리 [php_ext_dir] 가 어디에 있는지 모를 경우.
웹 페이지를 하나 만든 다음 아래 코드를 넣고, 웹 브라우저를 통해 봅니다.

“extension_dir” 변수를 통해 PHP 확장 모듈 디렉토리의 경로를 알 수 있습니다.

배포한 chthumbnail.so 동적 라이브러리는 레드헷 리눅스 9.0에서 컴파일한 것입니다. 만약, 여러분의 리룩스 시스템에서 작동하지 않을 경우 아래 명령을 통해 다시 컴파일해 주셔야합니다.

# cd chthumbnail/src
# phpize
# ./configure –with-php-config=/path/to/php-config
# make install

성공적으로 작업이 끝나면 modules 디렉토리에 새로운 chthumbnail.so 파일이 생성되고, PHP 확장 모듈 디렉토리에 자동으로 chthumbnail.so 파일이 복사됩니다.
——————————————————————————–
목차 | 위로: 2. 설치 | 이전: 2.2. 동적라이브러리 복사하기
2.3. makethumbnail.ch 파일 복사하기
makethumbnail.ch 스크립트는 perl 코드로 작성된 것입니다. makethumbnail.ch 파일을 현재 실행 중인 여러분의 php 파일이 있는 디렉토리로 복사하여 주십시요.
makethumbnail.ch 파일이 실행될 수 있도록 퍼미션을 조정하여 줍니다.

# chmod 755 makethumbnail.ch

makethumbnail.ch 스크립트는 chthumbnail.so 동적 라이브러리가 실행시키게 됩니다.
——————————————————————————–
목차 | 이전: 2. 설치 | 다음: 4. 함수
3. 사용법
CHThumbnail은 .png, .gif, .jpep 형식만을 thumbnail 이미지로 변환합니다. thumbnail 이미지는 jpeg 이미지 유형으로 만들어집니다.
chthumbnail.php 클래스 파일 지정: include(“chthumbnail.php”);
CHThumbnail 오브젝트 생성: $thumb = new CHThumbnail();
원본 이미지 설정: $thumb->inputImage(“/path/to/my_image.gif”, “gif”);
썸네일 이미지 설정: $thumb->outputImage(“/path/to/my_image.jpg”, 200);
썸네일 이미지 생성: $thumb->makeThumbnail();

——————————————————————————–
목차 | 이전: 3. 사용법 | 다음: 5. 예제
4. 함수

완성된 예제 이미지

4.1. inputImage()
4.2. ouputImage()
4.3. makeThumbnail()
4.4. qualityFactor()
4.5. addEdge()
4.6. addDropshadow()
4.7. thumbnailBgcolor()

——————————————————————————–
목차 | 위로: 4. 함수 | 다음: 4.2. ouputImage()
4.1. inputImage()
원본 이미지를 지정합니다. 사용할 수 있는 이미지 유형은 gif, png, jpeg입니다.
$thumb->inputImage($path, $format);
$path: 원본이미지의 절대경로입니다.
$format: 원본 이미지의 유형입니다.

Ex: $thumb->inputImage(‘/home/images/my_image.jpg’, ‘jpeg’);
——————————————————————————–
목차 | 위로: 4. 함수 | 이전: 4.1. inputImage() | 다음: 4.3. makeThumbnail()
4.2. outputImage()
만들어질 thumbnail 이미지 정보를 설정합니다.
참고: 이미지가 만들어질 디렉토리는 웹에서 파일 쓰기가 가능하도록 퍼미션을 조정하셔야 합니다.
가령, ‘/home/thumbnail/’ 이라는 디렉토리에 이미지를 만들거라면 이 디렉토리의 퍼미션은 읽기/쓰기/실행이 모두 가능해야합니다.

chmod 777 /home/thumbnail/
$thumb->outputImage($path, $width);
$path: 만들어질 thumbnail 이미지의 절대경로입니다.
$width: thumbnail 이미지의 가로폭 픽셀값입니다. 세로폭은 자동으로 원본 이미지의 비율에 맞추어 조정됩니다.

Ex: $thumb->outputImage(‘/home/images/my_image.jpg’, 240);
——————————————————————————–
목차 | 위로: 4. 함수 | 이전: 4.2. ouputImage() | 다음: 4.4. qualityFactor()
4.3. makeThumbnail()
Thumbnail 이미지를 완성합니다.
$thumb->makeThumbnail();
리턴값: 없음
——————————————————————————–
목차 | 위로: 4. 함수 | 이전: 4.3. makeThumbnail() | 다음: 4.5. addEdge()
4.4. qualityFactor()
만들어질 thumbnail 이미지의 퀄리티를 설정합니다. 설정하지 않을 경우 ’75’가 기본적으로 지정됩니다. 이 값을 높이면 퀄리티는 좋아지지만, jpeg 파일 크기는 상대적으로 커집니다.
$thumb->qualityFactor($quality);
$auality: 0 ~ 100 사이의 숫자 또는 문자열
——————————————————————————–
목차 | 위로: 4. 함수 | 이전: 4.4. qualityFactor() | 다음: 4.6. addDropshadow()
4.5. addEdge()
Thumbnail 이미지의 테두리 선을 만듭니다.
$thumb->addEdge($width, $color);
$width: 선의 두께를 저정합니다. 숫자 또는 문자열
$color: 선의 색상값을 지정합니다.

Ex: $thumb->addEdge(2, ‘#336699’);
——————————————————————————–
목차 | 위로: 4. 함수 | 이전: 4.5. addEdge() | 다음: 4.7. thumbnailBgcolor()
4.6. addDropshadow()
Thumbnail 이미지의 그림자를 만듭니다.
$thumb->addDropshadow($blur, $color, $offset);
$blur: 그림자의 흐림 정도를 지정합니다.
$color: 그림자 색상 값을 지정합니다.
$offset: 그림자 옵셋 값을 지정합니다.

Ex: $thumb->addDropshadow(3, ‘#999999’, 5);
——————————————————————————–
목차 | 위로: 4. 함수 | 이전: 4.6. addDropshadow()
4.7. thumbnailBgcolor()
Thumbnail 이미지의 배경색을 지정합니다.
$thumb->thumbnailBgcolor($color);
$width: 배경색 지정

Ex: $thumb->thumbnailBgcolor(‘#336699’);
——————————————————————————–
목차 | 이전: 4. 함수 | 다음: 6. 버그
5. 예제
include(“chthumbnail.php”);

$thumb = new CHThumbnail();
$thumb->inputImage(‘/home/www/images/my_image.jpg’, ‘jpeg’);
$thumb->outputImage(‘/home/www/thumbnail/my_image.jpg’, 240);
$thumb->addEdge(1, ‘#000000’);
$thumb->addDropshadow(2, ‘#cccccc’, 3);
$thumb->makeThumbnail();

echo ‘‘;

?>

——————————————————————————–
목차 | 이전: 5. 예제 | 다음: 7. 다운로드
6. 버그
만약, 버그를 찾았거나, 문제점이 있으면 chna@chcode.com 으로 연락주십시요. 빠른 시간안에 패치 또는 수정에 대한 답변을 드리도록 하겠습니다.
——————————————————————————–
목차 | 이전: 6. 버그 | 다음: 8. 라이센스
7. 다운로드
다운로드
——————————————————————————–
목차 | 이전: 7. 다운로드
8. 라이센스
GPL을 따르며 소스 코드의 수정, 배포 등을 자유롭게 할 수 있습니다.

——————————————————————————–
Copyright (C) 1997~2003 by CHCODE. All right reserved.

1079822757.tar