블로그 이미지
푸른_바람

Rss feed Tistory
IT/Tech 2010/09/30 08:30

curl "SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL"

참고 :

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

제시된 해결방안 :
[code php ]
$sopClient->setOpt('curl', CURLOPT_SSL_VERIFYPEER, 0);
[/code]

IT/Tech 2010/09/28 08:30

php integer 크기

PHP INTEGER 크기

[code php]
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)

$large_number = 2147483648;
var_dump($large_number);
// output: float(2147483648)
[/code]

PHP 에서 제공하는 정수는 10자리 2147483647 까지 입니다.

Facebook 에서 제공하는 API로 이전 Feed를 업데이를 할 때는 결과값이
/me/feed 로 요청을 보내서 Array('id' => '{fb_id}_{feed_id}', ... ) 형식으로 결과가 넘어 오는 관계로 이대로 값을 활용했는데

개발중인 서비스가 url을 다루는 관계로 links 로 변경을 했더니 결과값이 다르게 넘어와서 문제가 생겼습니다.
/me/links 로 요청을 보낸 결과 Array('id' => '{links_id}') 2010.09.27 현재 결과 id 는 15자리 정수입니다.

위 에서 결과로 넘어오는 id 값중 feed_id 와 links_id 는 브라우즈에서 접근이 가능한 "story_fbid={id}" 입니다.

문제는 PHP에서 10자리를 초과하는 값을 float로 자동변환해 버린다는 문제입니다. 결과값을 그대로 DB에 저장을 해 버리면 값이 제대로(?) 저장이 되는거 같은데 가끔 그것도 아닌거 같더군요.

현재 facebook API lib 는 facebook에서 제공하는 lib를 사용하는 관계로 결과값을 json으로 받아서 json_decode를 사용해서 연관배열로 변환한 값입니다.

PHP 5.3 버전 이상에서는 json_decode에서 BIGINT 이상일 경우 STRING형태로 반환하는 기능이 있으나 서비스중인 PHP 버전이 그 이하 버전이므로 패스~

class lib로 제공되는 Services_json 을 확인해보니 BIGINT에 대한 기능은 없었습니다.

facebook 결과값을 (string)$fb['id'], srtval($fb['id']) 형태로 변환할 경우 앞에서 12자리까지만 제대로 반환되고 나머지 3자리는 0을 반환해서 사용불가.

그외 php 변수 크기의 한계를 넘는 듯 합니다. 에서 정보를 얻어
위 2가지 lib를 확인했지만 이미 결과로 넘어온 값을 PHP에서 제대로 뽑아 낼수 없었습니다.

그래서 임시로 number_format기능을 사용해서 원하는 값을 얻어 냈습니다.
[code php]
/*
$fb = $this->db->api(
 '/me/feed',
 'post',
 Array(
  'message' => 'message'
 )
);
if(isset($fb['db'])) $id = $fb['id'];
*/

$fb = $this->fb->api(
 '/me/links',
 'post',
 Array(
  'message' => 'message',
  'link' => 'url'
 )
);
/**
* TODO :
* /me/link 결과 $fb['id'] 값은 {links_id} 15자리 숫자 형식.
* PHP에서 제공하는 정수 숫자 자리수는 10자리.
* 현재 임시로 제공한 number_format는 17자리(12345678901234567)까지는 정확한 값을 리턴.
* number_format(999999999999999999) => 9,999,999,999,999,999,xxx,xxxx
* 5.3 이상에서 json_decode 에서 BIGINT를 STRING으로 반환하는 기능이 추가되었으나 현재 현재서비스중인 PHP는 5.3 미만 버전.
*/
if(isset($fb['db'])) $id = mem('fb_id').'_'.str_replace(',', '', number_format($fb['id']) );
[/code]

얼마동안은 문제가 없겠지만 결국은 json_decode 시 BIGINT이상의 값을 STRING으로 변환해서 반환하는 기능으로 변경되어야 할것 같습니다.

number_format 에서 어느정도의 숫자를 커버하는지 궁금하군요. 특정숫자에서는 15자리까지 확인했지만 이것도 문제네요

2010.11.18

웃기게도 ip2long 에서 해결방법이 있는거 같네요.

PHP ip2loing

[code php]
$dottedFormatAddress = '127.0.0.1';
$ipv4address = sprintf("%u", ip2long($dottedFormatAddress));
[/code]

위 예제에서 사용한 sprintf("%u", $int); 형식으로 반환이 가능할거 같긴 하네요.
일단은 테스트를 해봐야 겠습니다.

'IT > Tech' 카테고리의 다른 글

PHP cURL Multiple Processing  (0) 2010/10/14
curl "SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL"  (0) 2010/09/30
php integer 크기  (0) 2010/09/28
ubuntu java-jre 설치  (0) 2010/09/22
php hiphop 컴파일 설치  (0) 2010/09/20
xampp 에서 curl 설정  (0) 2010/09/16
int, integer, PHP, 변수, 크기
IT/Tech 2010/09/22 08:30

ubuntu java-jre 설치

ubuntu java-jre 설치
Eclipse를 GNU’s Java 환경에서 구동하면 상당히 느리려서 Sun’s Java를 Default로 설정해야 됩니다.
[code bash]
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts
sudo update-java-alternatives -s java-6-sun
#  ( Sun’s Java를 Default로 설정 )
sudo vi /etc/jvm
# ( JVM Configuration 수정 , “/usr/lib/jvm/java-6-sun” 을 file의 맨 앞줄에 삽입 )
sudo -b vi /etc/eclipse/java_home
# ( Eclipse에서 Java_Home 을 설정해주는 방법임. 그런데 전 이 파일은 수정하지 않고 다음과 같이 처리했습니다. )
vi $HOME/.bash_profile
[/code]

[code bash]
Append following line:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin
[/code]

설치된 JDK 를 시험하기 위해 $ java -version을 실행시켰을때 다음과 같이 나오면 됩니다.
[code bash]
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)
[/code]

  • sudo update-java-alternatives -s java-6-sun
    명령을 실행하니 뭔다 안된다고만 수두록하게 나옴
  • sudo vi /etc/jvm
    파일이 아예없음.
  • sudo -b vi /etc/eclipse/java_home
    역시 파일이 없음.
  • vi $HOME/.bash_profile
    위 설정파일이 안되는 상태에서 프로파일만 수정함.
  • java -version
    결과
    [code xml]
    java version "1.6.0_20"
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
    [/code]


Eclipse, java, jre
IT/Tech 2010/09/20 08:30

php hiphop 컴파일 설치

php hiphop 컴파일 설치

[code bash]
sudo apt-get install git-core
sudo apt-get install cmake

export CMAKE_PREFIX_PATH=/home/user
mkdir dev
cd dev
git clone git://github.com/facebook/hiphop-php.git
cd hiphop-php
git submodule init
git submodule update
export HPHP_HOME=`pwd`
export HPHP_LIB=`pwd`/bin
cmake .
make
[/code]

이런 관련 모듈을 모두 깔아야 한다. 헉~!!

'IT > Tech' 카테고리의 다른 글

php integer 크기  (0) 2010/09/28
ubuntu java-jre 설치  (0) 2010/09/22
php hiphop 컴파일 설치  (0) 2010/09/20
xampp 에서 curl 설정  (0) 2010/09/16
가상호스트 mod_rewrite 및 gzip 설정  (0) 2010/09/14
p3p  (0) 2010/09/13
BOOK 2010/09/17 08:30

독서시간이 없는 분들은 위한 Tips


아주 좋은 팁입니다. 물론 모두들 알고는 있지만 하나씩 실천하기는 어려움이 조금씩 있죠.

이글을 보시는 여러분들도 독서를 위해 생활습관을 바꿀려고 하지는 않겠지요.

하지만 현재 자신의 생활습관에서 독서를 하기 위해서 조금씩만 노력을 한다면 마음의 양식을 쌓을수(?) 있을 겁니다.
  1. 어딜가나 책을 들고 다니자
  2. 가능한 대중교통을 이용하자
  3. 아침기상시와 취침시 30분씩은 반드시 나만의 독서시간으로 삼자
  4. TV는 원하는 시간에 원하는 프로만 보자
  5. 직장인은 점심시간을 활용하자
  6. 책장은 나의 눈에 띄는 주생활공간에 두라.




IT/Tech 2010/09/16 08:30

xampp 에서 curl 설정

참고 :

php.ini 에서 curl 검색 한뒤 주석처리 해제

'IT > Tech' 카테고리의 다른 글

ubuntu java-jre 설치  (0) 2010/09/22
php hiphop 컴파일 설치  (0) 2010/09/20
xampp 에서 curl 설정  (0) 2010/09/16
가상호스트 mod_rewrite 및 gzip 설정  (0) 2010/09/14
p3p  (0) 2010/09/13
Perl, Python 및 PHP를 위한 Eclipse 개발 환경 빌드하기  (0) 2010/09/08
IT/SNS 2010/09/15 08:30

lampp mysql 원격접속 문제

XAMPP for Linux 1.7.3.a 에서 php 설정에서 IP로 mysql 원격접속이 되지 않는 문제가 발생.
문제 :
mysqli_connect 연결
Warning: mysqli_connect() [function.mysqli-connect]: OK packet 6 bytes shorter than expected in /home/uncaose/workspace/pickup.kr/test.php on line 3

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2000): mysqlnd cannot connect to MySQL 4.1+ using old authentication in /home/uncaose/workspace/pickup.kr/test.php on line 3

mysql_connect 연결
Warning: mysql_connect() [function.mysql-connect]: OK packet 6 bytes shorter than expected in /home/uncaose/workspace/pickup.kr/test.php on line 3

Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in /home/uncaose/workspace/pickup.kr/test.php on line 3

검색 :

mysql 버전에 따른 auth정책변경에 따른 문제.
mysql 버전을 맞추면 해결되는 문제.

서비스중인 mysql 은 5.0.9 log 버전, 테스트로 사용한 mysql 은 5.1.4 이니 테스트를 서비스중인 mysql 버전과 맞게 변경이 필요한것 같음. ㅡ.ㅡa
IT/Tech 2010/09/14 08:30

가상호스트 mod_rewrite 및 gzip 설정

[code xml]
ServerAdmin username@email.com
DocumentRoot /home/user/www
ServerName localhost

<directory home/user/www>
AllowOverride All
Order deny,allow
Allow from all

RewriteEngine On
php_flag session.auto_start ON

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</directory>

AddOutputFilterByType DEFLATE text/css text/html application/x-javascript application/javascript

<ifmodule mod_deflate.c="">
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifmodule>[/code]

'IT > Tech' 카테고리의 다른 글

php hiphop 컴파일 설치  (0) 2010/09/20
xampp 에서 curl 설정  (0) 2010/09/16
가상호스트 mod_rewrite 및 gzip 설정  (0) 2010/09/14
p3p  (0) 2010/09/13
Perl, Python 및 PHP를 위한 Eclipse 개발 환경 빌드하기  (0) 2010/09/08
아파치 특정 IP 차단 및 허용  (0) 2010/09/07
IT/Tech 2010/09/13 08:30

p3p

p3p 정책 : P3P Policy,Cookie 문제 해결

  • [code xml]
    <ifmodule mod_headers.c="">
    Header add P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
    </ifmodule>
    [/code]
  • [code html]
    <meta http-equiv="p3p" content='CP="CAO DSP AND SO " policyref="/w3c/p3p.xml"' >
    [/code]
  • [code php]
    // Header("p3p: CP=\"CAO DSP AND SO ON\" policyref=\"/w3c/p3p.xml\"");
    header('P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"');
    [/code]
  • [code php]
    // ASP
    Response.AddHeader "P3P", "CP='ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC'"
    [/code]
  • [code php]
    // JSP
    Response.setHeader("P3P","CP='CAO PSA CONi OTR OUR DEM ONL'");
    [/code]

'IT > Tech' 카테고리의 다른 글

xampp 에서 curl 설정  (0) 2010/09/16
가상호스트 mod_rewrite 및 gzip 설정  (0) 2010/09/14
p3p  (0) 2010/09/13
Perl, Python 및 PHP를 위한 Eclipse 개발 환경 빌드하기  (0) 2010/09/08
아파치 특정 IP 차단 및 허용  (0) 2010/09/07
apache httpd.conf 설정파일  (0) 2010/09/03
IT/Tech 2010/09/08 08:30

Perl, Python 및 PHP를 위한 Eclipse 개발 환경 빌드하기



'IT > Tech' 카테고리의 다른 글

가상호스트 mod_rewrite 및 gzip 설정  (0) 2010/09/14
p3p  (0) 2010/09/13
Perl, Python 및 PHP를 위한 Eclipse 개발 환경 빌드하기  (0) 2010/09/08
아파치 특정 IP 차단 및 허용  (0) 2010/09/07
apache httpd.conf 설정파일  (0) 2010/09/03
php type check  (0) 2010/08/27
TOTAL 245,655 TODAY 22