레이블이 php인 게시물을 표시합니다. 모든 게시물 표시
레이블이 php인 게시물을 표시합니다. 모든 게시물 표시

2010년 7월 14일 수요일

sulinux 1.5 + curl 7.21.0 + openssl

스마트폰 결제모듈 설치 관련 데이콤 xpay 크로스 플랫폼용

curl 설치

 

sulinux 1.5

 

yum update openssl

yum update openssl-devel

 

http://curl.haxx.se/ 에서 다운 혹은

 

wget http://curl.haxx.se/download/curl-7.21.0.tar.gz

tar xvzf curl-7.21.0.tar.gz

cd curl-7.21.0

./configure --without-libidn --with-openssl=/usr/bin/openssl -prefix=/usr/local/curl

(sulinux에는 libidn 이 없음.)

make

make install

 

php 재설치

 

기존 php가 5.2.2 였으나 5.2.1  로 다시 설치

/root/bin/apm/apm_phpupdate

--with-curl=/usr/local/curl --wth-ssl

 

옵션 추가

 

phpinfo 에서 curl 버젼과 configure command 확인

2010년 4월 2일 금요일

Zend 한번에 설치하기

apm 설치후 Zend 설치

 

#!/bin/bash
################################################################
# 제작환경 : SULinux 1.5 + ZendOptimizer-3.0.1         #
# 제작일 : 2009.03.25                         #
# 제작자 : 이창민                       #
# 이메일 : lcm790203@naver.com            #
# 주.) 개인적 사용의 목적으로 만들었습니다.                    #
# 필요하신분만 사용하시고 이용상의 오류는 책임질수 없습니다.   #
################################################################

wget http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
tar xvfz ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386
./install.sh
cd ..
rm -Rf ZendOptimizer-3.3.3-linux-glibc23-i386*

 

위의 파일을 그대로 스크립트로 만들어도 되고 복사해서 작업하셔도 됩니다.

전 스크립트로 만들어서 사용합니다.

eaccelerator 설치

Zend 설치후 설치

 

# wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
# tar xvfj eaccelerator-0.9.6-rc1.tar.bz2
# cd eaccelerator-0.9.6-rc1
# export PHP_PREFIX="/usr/local/php/"
# $PHP_PREFIX/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
# make
# make install

아래는 확인해둘것
Installing shared extensions:     /usr/local/php_5.2.2/lib/php/extensions/no-debug-non-zts-20060613/

# mkdir /tmp/eaccelerator
# chmod 0777 /tmp/eaccelerator
# chown nobody:nobody /tmp/eaccelerator

# vi /usr/local/php/lib/php.ini
[Zend] ;반드시 Zend 전에 입력
extension_dir=/usr/local/php_5.2.2/lib/php/extensions/no-debug-non-zts-20060613/
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.allowed_admin_path="/home/kantukan/public_html/ybbs/shop/"

# /etc/init.d/httpd restart

모듈 설치 확인
# php -v
PHP 5.2.2 (cli) (built: Mar 29 2010 18:45:51)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
    with eAccelerator v0.9.6-rc1, Copyright (c) 2004-2007 eAccelerator, by eAccelerator
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

관리자 페이지 설정
# vi control.php
$user = "admin";
$pw = "tnghkrl";

# cp control.php /home/kantukan/public_html/ybbs/shop/control.php

웹페이지에서 확인

설치파일 삭제
# cd /
# rm -Rf /root/eaccelerator-0.9.6-rc1*

아파치 재실행
# /etc/init.d/httpd restart

2009년 7월 29일 수요일

팝업관련 스크립트 (팝업창 닫고, 부모 페이지로 이동)

function MovePage() {
  opener.location.href="member.php"
  window.close()
 }

<a href="javascript:MovePage();">글또는 이미지</a>

자바스크립트 php 연동 풍선도움말

<!-- 풍선도움말 스크립트 시작 -->
 <style>
 div.none { padding:15px 15px 15px 15px; width:200px; position:absolute; border-width:3; border-color:#cccccc; border-style:solid;font-size:9pt; background-color:#FFFFFF }
 </style>
 <script>
 <!--
 var preview="";
 var gobj="";
 function attachEvent_(obj, evt, fuc, useCapture) {
   if(!useCapture) useCapture=false;
   if(obj.addEventListener) { // W3C DOM 지원 브라우저
  return obj.addEventListener(evt,fuc,useCapture);
   } else if(obj.attachEvent) { // MSDOM 지원 브라우저
  return obj.attachEvent("on"+evt, fuc);
   } else { // NN4 나 IE5mac 등 비 호환 브라우저
  MyAttachEvent(obj, evt, fuc);
  obj['on'+evt]=function() { MyFireEvent(obj,evt) };
   }
 }

 function detachEvent_(obj, evt, fuc, useCapture) {
   if(!useCapture) useCapture=false;
   if(obj.removeEventListener) {
  return obj.removeEventListener(evt,fuc,useCapture);
   } else if(obj.detachEvent) {
  return obj.detachEvent("on"+evt, fuc);
   } else {
  MyDetachEvent(obj, evt, fuc);
  obj['on'+evt]=function() { MyFireEvent(obj,evt) };
   }
 }

 function MyAttachEvent(obj, evt, fuc) {
   if(!obj.myEvents) obj.myEvents= {};
   if(!obj.myEvents[evt]) obj.myEvents[evt]=[];
   var evts = obj.myEvents[evt];
   evts[evts.length]=fuc;
 }

 function MyFireEvent(obj, evt) {
   if(!obj.myEvents || !obj.myEvents[evt]) return;
   var evts = obj.myEvents[evt];
   for (var i=0;i<len;i++) {
  len=evts.length;
  evts[i]();
   }
 }

 function previewShow(e, obj, pv) {
   preview=pv;
   gobj=obj;
   attachEvent_(obj, "mousemove", previewMove, false);
   attachEvent_(obj, "mouseout", previewHide, false);
 }

 function previewMove(e) {
   var hb = document.getElementById(preview);
   if(hb.parentElement) hb.parentElement.style.display="";
   else hb.parentNode.style.display="";
   var evt = e ? e : window.event;
   var posx=0;
   var posy=0;

   if (evt.pageX || evt.pageY) { // pageX/Y 표준 검사
  posx = evt.pageX +8;
  posy = evt.pageY +16;
   } else if (evt.clientX || evt.clientY) { //clientX/Y 표준 검사 Opera
  posx = evt.clientX +10;
  posy = evt.clientY +20;
  if (window.event) { // IE 여부 검사
    posx += document.body.scrollLeft;
    posy += document.body.scrollTop;
   }
   }

   hb.style.left = posx + "px";
   hb.style.top = posy + "px";
 }

 function previewHide() {
   var hb = document.getElementById(preview);
   if(hb.parentElement) hb.parentElement.style.display="none";
   else hb.parentNode.style.display="none";

   detachEvent_(gobj,"mousemove", previewMove, false);
 }
 -->
 </script>
 <!-- 풍선도움말 스크립트 끝 -->


아래는 php부분에 입력

$i의 갯수만큼 출력되게 생성한다.


 echo "<td><a href='#' onmouseover=previewShow(event,this,'tt_kin_$i');><img src='img/icon3.gif' border=0></a><span style=display:none><div id=tt_kin_$i class=none>".$info2."</div></span></td>";

sulinux 1.5 + 큐메일

큐메일에 대한 설치사례는 많지만 sulinux에서는 드문 경우라서 올려둔다.

http://www.qmailrocks.org/

위 사이트도 참고할만한 사이트이다. 내용도 잘정리되어 있고 기본적으로 레드햇이나 다른 버전의 설명도
함께 담고 있다.

아래는 내가 큐메일을 설치하면서 설정했던 값들과 설치했던 방법을 간략하게 적어보았다.
한번해보라 큐메일은 한번 설치가 되었다고 해서 간단하게 운영되지 않는다.
최근 네이버도 큐메일로 바꾼것 같던데 아니면 그이전부터 사용했는지도 모르겠다.
장점은 많다. 하지만 단점도 만만치 않은 설치부터 운영의 어려움까지 어느것하나 쉽지는 않다.
만일 운영을 할꺼라면 윈도우서버의 메일서버를 추천한다. 간단한 설치에 운영도 편하다.
메일서버의 가장 핵심기능은 뭐니뭐니 해도 스팸기능일 것이다.
이부분에 대해서는 큐메일도 마찬가지다. 결국 걸러서 받아낼 수 밖에 없다.
스팸메일서버로 사용될 일은 없겠지만 그래서 스팸이 안들어온다는 것은 아니다.
테스트해본 결과 무지막지하게 들어온다. 다른 스팸차단기를 사용해야 한다면 큐메일은 비추천이다.
연동하기 어려운 것보다는 쉬운게 좋다.
또 속도에 대해서는 그리 빠르다라고 느낄만한 수준이 아니다. 서버사양의 문제도 있겠지만
같은 서버로 테스트해본 결과 샌드메일서버나 큐메일이나 별반 차이가 없었다.
테스트는 3만건정도 했었다. 이정도라면 윈도우서버가 더 나은 편이다. 현재 회사의 메일서버는
윈도우메일서버를 운영하고 있다. 기존 샌드메일서버가 스팸서버로 해킹되는 바람에 어쩔 수 없이
갈아탔다. 이렇게 길게 설명했는데도 큐메일이 좋다고 생각한다면 어쩔수 없다.
한번 해보라 그래도 좋다고 한다면 메뉴얼을 잘 만들어서 여러 사람이 쓸 수 있도록 해주면 좋겠다.

1. openssl-devel 설치
yum install openssl-devel

2. Qmailrocks 설치
http://www.qmailrocks.org/download.htm

3. 다람쥐메일 설치

==============아래는 설치시 필요했는 설정값==================================

./config-fast webmail.adbank.co.kr

Country Name (2 letter code) [GB]: ko
State or Province Name (full name) [Berkshire]: adbank
Locality Name (eg, city) [Newbury]: adbank
Organization Name (eg, company) [My Company Ltd]: adbank.co.kr
Organizational Unit Name (eg, section) []: webmail
Common Name (eg, your name or your server's hostname) []: webmail.adbank.co.kr
Email Address []: postmaster@adbank.co.kr


echo "localhost|0|admin|5555|vpopmail" > ~vpopmail/etc/vpopmail.mysql

GRANT select,insert,update,delete,create,drop ON vpopmail.* TO admin@localhost IDENTIFIED BY '5555';

mysql -u admin -p

./configure --enable-cgibindir=/usr/local/apache_2.0.59/cgi-bin/ --enable-htmldir==/var/www/html

<Directory "/usr/local/apache_2.0.59/cgi-bin/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>

cd /usr/local/apache_2.0.59/cgi-bin/vqadmin

/var/www/html/.htpasswd

chown nobody .htaccess

htpasswd -bc /var/www/html/.htpasswd admin 5555

chmod 644 /var/www/html/.htpasswd

./configure --enable-cgibindir=/usr/local/apache_2.0.59/cgi-bin/ --enable-htmldir=/var/www/html

echo postmaster@adbank.co.kr > /var/qmail/alias/.qmail-root

echo postmaster@adbank.co.kr > /var/qmail/alias/.qmail-postmaster

echo postmaster@adbank.co.kr > /var/qmail/alias/.qmail-mailer-daemon

rpm -e --nodeps sendmail-8.13.1-3.RHEL4.5.SULinux.1

rpm -e --nodeps sendmail-cf-8.13.1-3.RHEL4.5.SULinux.1

courierpassd 106/tcp #for /etc/xinetd.d/courierpassd

chown -R nobody:nobody /var/sqattachements

chown -R nobody:nobody data

<VirtualHost 211.203.170.86:80>
ServerName webmail.adbank.co.kr
ServerAlias mail.*
ServerAdmin postmaster@adbank.co.kr
DocumentRoot /var/www/webmail
</VirtualHost>

[php+웹메일]RoundCube Webmail

대부분 다람쥐메일을 사용해왔을 것이다.
하지만 디자인의 한계로 인해 많은 어려움이 있을 것이다. 나도 다람쥐메일로 웹메일을 개발해본적이 있지만
여간 귀찮은 일이 아니었다.

라운큐브웹메일은 그런 의미에서 상당한 웹메일일 것이다.
중소형의 웹메일를 운영하기를 원한다면 만족할 수 있을 것이다.

참고사이트 http://roundcube.net/

계속해서 버젼업을 하고 있는 중이다.
자세한 것은 사이트에서 참고하면 될 것이다.

단점으로는 다람쥐메일에서의 스팸기능이나 주소록등의 기능이 미약한 것이 흠이다.
하지만 AJAX로 연동되어 미려한 디자인은 그런 부분을 감수할 수 있을 것이다.

납품을 해야할 경우라면 좀 더 보완이 되어야 겠지만 개인적인 목적이라면
회사내의 웹메일로 써도 괜찮을 듯하다.

현재 roundcubemail-0.2.2.tar.gz 버젼까지 나와있다.