'php'에 해당되는 글 2건

  1. 2007.08.09 PHP - HTTP GET Request 구현 2
  2. 2005.07.10 Apache + PHP + MySQL 설치(Linux) 4
1. 개념
fsockopen 함수를 사용하여 구현한다.

2. 소스
DEFINE("CONTENT_TYPE", "multipart/form-data; boundary=");
DEFINE("CRLF", "\r\n");
DEFINE("CONTENT_DISPOSITION", "Content-Disposition: form-data; name=\"%s\"");
DEFINE("FILE_NAME_PLACE_HOLDER", "; filename=\"%s\"");
DEFINE("CONTENT_TYPE_PLACE_HOLDER", "Content-Type: %s\r\n\r\n");
DEFINE("CONTENT_LENGTH", "Content-Length: %d\r\n");
DEFINE("BOUNDARY", "---------------------------" . "020603111835686");


function http_form_get_send($host, $port, $url, $result_len)
{
                $headers = array(
                        "GET $url HTTP/1.0" . CRLF,
                        "Accept: */*" . CRLF,
                  "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)" . CRLF,
                  "Host: $host" . CRLF,
                  "Connection: Close" . CRLF,
                );

                $sock = fsockopen($host, $port);

                // send headers
                for($i = 0;$i < count($headers);$i++) {
                        fputs($sock, $headers[$i]);
                }
               
                // send end of header
                fputs($sock, CRLF);

                while(!feof($sock)) {
                        $s = fgets($sock, 1024);

                        if($s) {
                                // skip headers
                                if($s[0] == "\n" || $s[0] == "\r")
                                        break;
                        }
                        else break;
                }

                $result = fread($sock, $result_len);

                fclose($sock);

                return $result;                
}

3. 사용 예
$data = "?ownerid=blue";
$data .= "&ticket=5230315";
$data .= "&from=016";
$data .= "&to_number=016";
$data .= "&message=hohoho";

$result = http_form_get_send("ipager.test.co.kr", "80", "/sendsms/" . $data, 1024) ;

print "result : " . $result;

4. 소스파일



Posted by Gu Youn
,
일반적으로 많이 사용하는 Apache+MySql+PHP(APM)의 설치 방법에 대해서 정리한다.

1. Apache 설치
Apache 컴파일 및 설치
Apache 자동 실행
"/etc/init.d/"에 apachectl을 복사한다.

/etc/init.d/apachectl 상단에 아래 내용 추가한다.
    # chkconfig: 2345 60 60
    # description: Apache Web Server Version 2.0
   chkconfig에서 처음 인자는 어떤 run-level에서 실행될지를 의미하며, 그 다음 두개의 인자는 같은 run-level에서 실행/종료시 prority를 의미한다.

chkconfig 명령어를 이용해 등록
    # chkconfig --add apachectl
    # chkconfig --level 2345 apachectl on
  

chkconfig로 apachectl을 add하고 난 후에 ntsysv로 서비스 목록을 보면 apachectl이 추가된 것을 볼 수 있다.

2. PHP 설치
* PHP 컴파일
CPPFLAGS=-I/usr/include/mysql
./configure \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-zlib \
--with-gd \
--with-ttf \
--with-png \
--with-expat-dir=/usr \
--with-gmp \
--with-xml \
--with-mysql=/usr \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug \
--disable-posix \
--disable-rpath \
--enable-safe-mode \
--enable-magic-quotes \
--disable-dmalloc \
--enable-bcmath \
--enable-dio \
--enable-gd-native-ttf \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-versioning \
--enable-pic \
--enable-inline-optimization \
--enable-memory-limit \
--enable-mbstring \
--enable-mbregex \
--enable-mbstr-enc-trans \
--with-config-file-path=/usr/local/lib \
--enable-ftp \
--disable-debug \
--enable-track-vars=yes \
--with-jpeg-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-dl \
--with-imap=/usr/lib \
--with-imap-ssl=/usr/lib \
--with-kerberos

make && make install

superuser.co.kr의 글을 보면 --with-imap=shared로 되어 있는데 저 경우에 imap 함수 사용이 불가능 하여 --with-imap=/usr/lib로 변경

superuser.co.kr에서 가져 옮 #

3. mysql 설치
  # CFLAGS="-static -O2 -march=i686 -funroll-loops"
  # CXXFLAGS="-static -O2 -march=i686 -funroll-loops -felide-constructors -fno-exceptions -fno-ftti"
  # ./configure --prefix=/uar/local/mysql --localstatedir=/usr/local/mysql/data --disable-shared --enable-assembler --with-thread-safe-client --with-mysqld-user="mysql" --with-client-ldflags=-all-static --with-myslqd-ldflags=-all-static --with-readline --without-debug --without-bench --with-charset=euckr

Posted by Gu Youn
,