Posted
Filed under 프로그래밍/PHP
Guzzle은 HTTP형태의 API등을 호출하기 쉽게 하는 모듈이다.
사용법도 무쟈게 간단하고...특히 동기,비동기를 구분해서 보낼수가 있는게 젤 맘에 든다.ㅋㅋ
curl 쓰지 말고 이거 쓰자

https://github.com/guzzle/guzzle
http://docs.guzzlephp.org

2015/11/03 15:28 2015/11/03 15:28
Posted
Filed under 프로그래밍/PHP
요즘 해외에서는 Phalcon과 Laravel이 핫하다.
Pahlcon은 C로 컴파일하여 메모리점유율이 낮고 속도가 무쟈게 빠르다고 하다.
Laravel은 CI와 Slim을 짬뽕해놓은것 같은 느낌인데 국내에는 정보가 그닥 많지 않다.
속도가 생각만큼은 안나오네...

Phalcon사이트에 있는 이미지를 한장 올리겠다.
Slim은 micro framework 이긴하지만 Phalcon 다음으로 처리속도가 빠른것으로 나와있다.
Phalcon은 full stack framework 이다.

다음에는 Phalcon을 사용해 볼까?

사용자 삽입 이미지

일본사람이 벤치마크한 부분에는 속도는 여전히 Phalcon이 넘사벽이지만 메모리 사용에서는
ci,slim하고 같은것으로 표시되고 있다.

http://blog.a-way-out.net/blog/2015/03/27/php-framework-benchmark/


2015/11/03 15:18 2015/11/03 15:18
Posted
Filed under 프로그래밍
PUB,SUB 와는 틀리게 특정 클라이언트에 메세지를 전송할수 있다.
RabbitMQ처럼 사용할수 있는게 특징이다.

* 넣은 순서대로 가지고 온다
* 한번에 하나씩 가지고 온다.
* 가져가면 소멸한다.

ch_test에 메세지가 올때까지 대기한다.
(brpop의 두번째 인자가 timeout초 0은 메세지가 올때까지 대기)
<?php
ini_set('default_socket_timeout', -1);
$redis = new Redis();
$redis->connect('localhost',6379);

$test=$redis->brpop('ch_test',0);

print_r($test);
?>


ch_test에 test라는 메세지를 보낸다.
<?php
$redis = new Redis();
$redis->connect('localhost',6379);

$redis->lpush('ch_test','test');
?>
2015/10/02 18:31 2015/10/02 18:31
Posted
Filed under 프로그래밍
Redis 는 SUBSCRIBE 대상자 전체에게 PUBLISH 하는 기능이 있다.
메세지를 보관하지 않기때문에 클라이언트가 못받으면 해당 메세지는 다시 받을수 없다.
그래서 RabbitMQ 와는 틀리다.

redis-cli 에서 실행한다면

test 이라는 채널을 구독한다.
SUBSCRIBE test

그러면 메세지를 받을수 있는 대기상태로 전환된다.
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test"
3) (integer) 1

다른 클라에서 보낸다.
PUBLISH test babo

해당 채널을 구독한 모든 클라는 같은 메세지를 받게 된다.
1) "message"
2) "test"
3) "babo"

복수 구독도 가능하다.
SUBSCRIBE test1 test2 test3

PHP 에서 redis 라이브러리 사용 (Ubuntu 기준)
apt-get install php5-redis

PHP에서 SUBSCRIBE 예제
<?php
function f($redis, $chan, $msg) {
 switch($chan) {
 case 'chan-1':
 print "get $msg from $chan\n";
 break;
 case 'chan-2':
 print "get $msg FROM $chan\n";
 break;
 case 'chan-3':
 break;
 }
}

ini_set('default_socket_timeout', -1);

$redis = new Redis();

$redis->pconnect('localhost',6379);

$redis->subscribe(array('chan-1','chan-2','chan-3'), 'f');
print "\n";
?>


PHP에서 PUBLISH 예제
<?php 
//publish.php 
$redis = new Redis(); 
$redis->pconnect('localhost',6379);
 $redis->publish('chan-1', 'hello, world!'); // send message to channel 1.
 $redis->publish('chan-2', 'hello, world2!'); // send message to channel 2.
 
 print "\n";
 $redis->close();
?>
2015/09/30 17:05 2015/09/30 17:05
Posted
Filed under 프로그래밍
보통 top을 사용하지만 그것보다 좀더 보기 편한넘이 있는데 htop이라고...
사진처럼 cpu와 메모리 사용량이 상단에 그래프로 나온다.
밑에는 뭐 top이랑 비슷하고.

우분투의 경우 apt-get install htop 으로 간단히 설치 할수 있다.

사용자 삽입 이미지
2015/08/27 16:35 2015/08/27 16:35
Posted
Filed under 프로그래밍/PHP
vi /etc/php5/fpm/pool.d/www.conf

아래 항목이 주석이 되어있는데 주석을 푸고 원하는 확장자를 추가해주자
기본은 .php 만 허용이다.

security.limit_extensions = .php .html .htm

php5-fpm 재시작

2015/08/25 12:23 2015/08/25 12:23
Posted
Filed under 프로그래밍
2017년 11월30일 18시 이후로 무료 서비스가 종료되고 지원하던 라즈베리파이도 없어진다.
그동안 서비스 하던 모든 데이터를 삭제하고 유료서비스만 한다고 한다.
그래서 서버업체에서 무상으로 제공하는 관제서비스를 사용하려고 한다.

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


오늘 클라우드 서버를 받았는데
/usr/whatap/monitoring/whatap_agentd
이런게 깔려있다?

이게 뭘까를 찾아봤다.

와탭(WHATAP) 이라는 서버모니터링 서비스네~
간단하게 모니터링 하고 싶다면 쓸만은 하겠다

유료모델 사용하면 얼럿(sms등..) 해주긴하는데
이게 서버당 최소 3만원(부가세 별도)이다..ㅋㅋㅋㅋ
서버 10대면 매월30만원~
비용이 좀 과하다 싶다

그리고...라즈베리 항목이 별도로 있다..ㅋㅋㅋㅋ

사용자 삽입 이미지

 
또 아쉬운 점은 이 데몬이 CPU를 생각보다 많이 사용한다는것과
프로세스는 관제할수 있지만 PORT는 할수없다.

http://www.whatap.io/

2015/08/18 19:37 2015/08/18 19:37
Posted
Filed under 프로그래밍
우분투에서 datadir을 변경했을때 이런 오류가 날수 있다.

start: Job failed to start

datadir만 변경해서 해결될 문제가 아니다..ㅋㅋㅋ

/home/mysql 로 datadir을 변경할경우의 예이다.
root에서 실행한다.

service mysql stop

rsync -av /var/lib/mysql /home

vi /etc/mysql/my.cnf
datadir = /var/lib/mysql
부분을
datadir = /home/mysql
으로 변경.

vi /etc/apparmor.d/usr.sbin.mysqld
/var/lib/mysql/
/var/lib/mysql/**
부분을
/home/mysql/
/home/mysql/**
으로 변경.

service mysql start
2015/08/18 17:15 2015/08/18 17:15
Posted
Filed under 프로그래밍
mantis에서 비밀번호를 바꿀라면 이메일로 관련내용을 보내는것이 기본세팅이다.
근데 이메일이 갈리가 없지...

그래서 이메일통보가 아니라 비밀번호 없이 로그인해서 즉시 설정이 가능한 상태로
변경이 가능하다.

vi config_defaults_inc.php

$g_send_reset_password  = OFF;

OFF를 ON으로만 변경해주면 된다.

$g_send_reset_password  = ON;

이것도 같이 바꿔주면 한글로 나온다.

$g_default_language             = 'korean';

2015/08/03 17:37 2015/08/03 17:37
Posted
Filed under 프로그래밍
백업은 if 는 장치명 of는 저장할파일명
반대로 하면 복원이다.


이미지 백업
dd if=/dev/mmcblk0 of=/mnt/raspi/rpibackup_20150721.img

이미지 복원
dd if=/mnt/raspi/rpibackup_20150721.img of=/dev/mmcblk0


2015/07/21 12:49 2015/07/21 12:49
Posted
Filed under 프로그래밍
우분투의 경우 apt-get install curlftpfs 로 간단설치

curlftpfs ftp://user:pass@192.168.0.7:21/btsync /mnt/btsync -o allow_other,uid=109,gid=112

uid,gid는 해당 유저와 그룹으로 변경

마운트해제는 fusermount -u /mnt/btsync

아주 간단하다~


2015/07/17 12:23 2015/07/17 12:23
Posted
Filed under 프로그래밍
라즈베리파는 용량이 작다
파이썬으로 되어있는 모니터리툴은 기능은 많은데 파이썬까지 올려야하는 부담이 있다.
본 블로그는 PHP로 돌아가기때문에 PHP로된 모니터링툴을 찾아봤다.

페이지도 심플하고 설치도 그냥 복사만하고 아이디 비번 파일만 생성해주면되니 무쟈게 간단하다.

Raspcontrol - Github


사용자 삽입 이미지
2015/07/14 00:49 2015/07/14 00:49
Posted
Filed under 프로그래밍
어떤건 1일이 일요일이라고 하고 어떤건 0이 일요일이라고 하고 헷갈린다.

우분투 CronHowto

우분투 사이트에 있는 정확한 설명이다.

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command

0부터 일요일이다.

0 = 일요일
1 = 월요일
2 = 화요일
3 = 수요일
4 = 목요일
5 = 금요일
6 = 토요일

헷갈리지 말자


2015/07/08 02:17 2015/07/08 02:17