RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
없는 살림 쪼개 쓸려다 보니 이래저레 붙이고 있는데.


서버 사양이 낮은 만큼 Load 도 별로 안걸리는 서버이지만
MySQL 5.5 에 jemalloc 을 붙여서 조큼은 빠릿빠릿하게 돌아주길 바라면서...

jemalloc 의 설치는 매우 쉽게 된 다..

EPEL Yum repo 에 이미 들어가 있기 때문에 간단히 yum command 로 설치가 가능하다.

shell]# yum install jemalloc



이렇게 설치가 완료 되면

mysql 구동 하기전에 libjemalloc.so 을 로딩하도록 해줘야 한다.

그러기 위해서 간단히

shell]# echo "/usr/lib64/libjemalloc.so" > /etc/ld.so.preload


해주면 된다.

이때 libjemalloc.so 파일의 위치를 넣어주면 된다.


그리고 MySQL 을 재 시작 해주면 된다.

shell]# service mysqld restart


그리고 재 시작 된 뒤에
제대로 로딩이 되었는지 확인하면  끗.


shell]# lsof | grep jemalloc
mysqld_sa 19797      root  mem       REG                8,5    205896    1709658 /usr/lib64/libjemalloc.so.1
mysqld    20186     mysql  mem       REG                8,5    205896    1709658 /usr/lib64/libjemalloc.so.1



참고


2013/09/18 21:20 2013/09/18 21:20
이 글에는 트랙백을 보낼 수 없습니다
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

셋방살이 중인 서버의 대 격변(?) 에 발 맞춰서
기존의 Apache + mod_php 와 낮은 버전의 MySQL 로 인하여 이래저레 못해왔던 것들을 던져 버리고

신흥 문물(?) 들을 받아들여 보고자 하였는데.

설치 환경은 아래와 같다.

  • CentOS 6.x ( x86_64 )
    • MySQL 5.5.x
    • PHP 5.3.x
      • APC
      • PHP-FPM
    • Nginx 1.4.x
    • Memcached 1.4.x

오랜 숙원 사업이였던 탈 i686 의 꿈을 이루고 이것저것 삽질을 시작 하였는데.

여기서 설치와 관련된 내용은 모두 Yum 을 이용하여 설치를 하였다.
다음 Yum repository 를 추가 해주면 간단히 해결 됨.

이때 각 Yum Repository 마다 동일한 패키지 명의 중복으로 피곤해지는 일들이 발생 된다면
yum-plugin-priorities 을 설치하시면 Repo 별로 우선순위를 지정해서 처리가 가능하니 깔끔하게 해결!


이렇게 모든 패키지가 설치가 완료가 된다면.

PHP-FPM + Nginx 가 원활하게 구동 할 수 있도록 설정을 해줘야 하는데.

/etc/nginx/nginx.conf

location ~ \.php$
{
    fastcgi_send_timeout  5m;
    fastcgi_read_timeout 5m;
    fastcgi_connect_timeout 5m;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}


여기에 Textcube 를 위한 URL redirection 을 추가 한다.
( c.f /documents/setup_nginx.txt 을 참조하시길 바란다 )

location /tc/  {
    set $rewrite_base '/tc';
    if (!-f $request_filename) {
            rewrite ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2;
    }
    if ($request_filename ~* ^(cache)+/+(.+[^/])\.(cache|xml|txt|log)$) {
            return 403;
    }
    if (-d $request_filename) {
            rewrite ^(.+[^/])$ $1/;
    }
    rewrite  ^(.*)$ $rewrite_base/rewrite.php last;
}


/etc/php-fpm.d/www.conf

[www]

listen = 127.0.0.1:9000

listen.backlog = -1
listen.allowed_clients = 127.0.0.1

user = nginx
group = nginx

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
request_terminate_timeout = 120s
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/www-slow.log
security.limit_extensions = .php .php3 .php4 .php5 .html
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on

/etc/php.d/memcache.ini
extension=memcache.so
memcache.default_port=11211

memcache.hash_function=crc32
memcache.hash_strategy=consistent
memcache.protocol=ascii
session.save_handler=memcache

session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"



일단은 여기까지 설정을 마치고 PHP 가 정상적으로 구동되는지 확인을 한다.

정상적으로 동작을 한다면

Textcube 안정버전인 1.8.6 을 다운로드 받아서 설치를 하게 되는데
MySQL 5.5+ 에서의 호환 성을 위해 설치 전 미리 몇 가지 손을 좀 봐야 할 필요가 있다.

setup.php 의 1132 line. 의 TALBE 생성 시 'TYPE' 을 'ENGINE' 으로 바꿔 줘야 한다.
- $charset = 'TYPE=MyISAM DEFAULT CHARSET=utf8';
+ $charset = 'ENGINE=InnoDB DEFAULT CHARSET=utf8';


그리고 Textcube 를 설치를 진행 한다.

이때 Rewrite 관련 설정에 에러가 나는데 옵션을 끄고 진행 하더라도 무방하다.

여기까지는 Textcube 에서 제공하는 setup_nginx.txt 를 참조 하시면 좀 더 친절하게 안내 받을 수 있다.

여기서 한가지 고비가 오는데
Textcube 1.8.6 에서 PHP-APC 가 활성화 된 환경에서 Login 이 불가능하고 502 Error 를 뱉고
진행이 불가한 상황이 벌어지는데

PHP::Session class 와 session_write_close() 사이에 어떤 문제가 APC 모듈과 비 정상적인 동작을
일으켜서 생기는 문제라고 하는데

이때 PHP-APC 를 삭제 하거나 disable 하시면 되지만
왠지 아깝지 않은가? Textcube 때문에 APC 를 쓸 수가 없다니!!!!

이럴때 Texcube 가 설치된 디렉토리 아래의
./library/preprocessor.php 의 152번 째 줄 즈음에 다음 코드를 추가 한다.

+ register_shutdown_function("session_write_close");


이후엔 정상적으로 로그인이 가능해질 것이다.

Textcube 에 로그인 후 Memcache 를 활성화 시키기 위해서
"텍스트 큐브 관리" 메뉴로 이동한 뒤 "서비스 관리 > 서버" 메뉴에 진입을 한 뒤
"Memcached 사용" 메뉴에 Checkbox 에 Check 한 뒤 저장을 하게 된다면

보다 빠릿빠릿한 블로그를 이용 할 수 있게 된다.
2013/08/04 18:07 2013/08/04 18:07
이 글에는 트랙백을 보낼 수 없습니다
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
항상 Root 권한을 가지고 있다가...
막상 없을려니까 뭐 하나 설치하려면 이래저레 귀찮이즘을 겪게된다....

Node.js 삽질을 다시 할려고 하니 ...
설치 해놓은게 0.62...3개월이면 강산도 변한다는 세상인데
v0.81 이 릴리즈 된 이 시점에 살포시 업글 및 npm 을 쓰기 위해서 .... 삽질을 시작.

설치는 아래 링크를 참조하라!

Node.js HOWTO: Install Node+NPM as user (not root) under Unix OSes

http://tnovelli.net/blog/blog.2011-08-27.node-npm-user-install.html


간략하게 요약하자면.
임의의 디렉토리(예제에선 $HOME/.local/ 이 되겠다 ) 에 Node.js 를 설치하고
.npmrc 에 root/binroot/manroot 의 PATH 를 잡아준다.

root =    /home/YOUR-USERNAME/.local/lib/node_modules
binroot = /home/YOUR-USERNAME/.local/bin
manroot = /home/YOUR-USERNAME/.local/share/man

그다음 Node.js 소스 코드를 받아서(Node.js) 빌드를 하는데
--prefix 옵션을 $HOME/.local 로 지정하여 빌드 시작.

wget http://www.nodejs.org/download/node-v0.8..
tar xf node......
cd node........
./configure --prefix=~/.local


그리고
make && make install


그리고 마지막으로 PATH 에
$HOME/.local/bin 을 추가 하는 것으로 마무리

export PATH=$HOME/.local/bin:$PATH



이처럼 링크의 글 순서대로 진행 하면 된다.
(만약 당신이 Ubuntu 사용자라면 말이다...)




하.지.만.
당신이 지금 CentOS 5 이하 버전을 사용하고 있다면 결코 .....
결단코!!!


절대 알흠답게 에러 없이 설치 될 수가 없다!

여기에 약간의 삽질이 필요하게 된다.
최초 다운로드 받고 환경설정 잡는 것은 문제가 안되지만.
소스코드를 받아서 빌드하는 과정에서 몇몇 문제가 발생하게 된다.

# configure 시 에러 (error)
File “./configure”, line 360
1 if options.unsafe_optimizations else 0)
^
SyntaxError: invalid syntax


# make 시 에러 ( error )
Traceback (most recent call last):
  File "tools/gyp_node", line 11, in ?
    import gyp
  File "./tools/gyp/pylib/gyp/__init__.py", line 8, in ?
    import gyp.input
  File "./tools/gyp/pylib/gyp/input.py", line 14, in ?
    import gyp.common
  File "./tools/gyp/pylib/gyp/common.py", line 373
    with open(source_path) as source_file:
            ^
SyntaxError: invalid syntax

이것은  Node.js 가 python 2.6+ 을 필요로 하기 때문이다.
configure
Makefile
install.py
안에 /usr/bin/env python 을 참조하는 부분을 모두 새로 python 2.6+ 버전으로 지정을 해줘야 한다.

more..


이제 npm 과 nodejs 가 정상적으로 실행 되는지 확인하고 삽질을 시작하면 된다.
2013/02/01 23:53 2013/02/01 23:53
이 글에는 트랙백을 보낼 수 없습니다
peecky  | 2013/02/04 15:58
잡섭도 파이썬 버전 업 좀 ㅋㅋ
Dot  | 2013/02/08 08:33
짭섭은 OS 부터 갈아야 ( --)...
i686 에서 x86_64 로 갈아타야 하지 않것습니까?
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Apache 2.x 의 대역폭 컨트롤 모듈인 mod_cband ...

상당히 괜찮은데 어느 순간부터인가 다운 받기가 너무 힘들어 예전에 받았던 파일을 올립니다.

원본 홈페이지 : http://cband.linux.pl
다운로드 : http://cband.linux.pl/download

위 경로가 안될 경우.
이전에 받아뒀던 mod_cband 파일 ( ver 0.9.7.5 ) 을 받기 바란다.
2008/08/08 10:31 2008/08/08 10:31
이 글에는 트랙백을 보낼 수 없습니다
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Apache + mod-cband  설치하기!!!
OS :    CentOS 4.4 Server
glibc-2.3.4-2.36
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)
ltmain.sh (GNU libtool) 1.5.6 (1.1220.2.95 2004/04/11 05:50:42)

준비할 것...
 - Apache-2.2.4         ( http://httpd.apache.org/ )
 - mod-cband-0.9.7.5 ( http://cband.linux.pl/ )
     => 위 버전은 2007.08.01 일 기준...

일단 mod-cband 는 Apache 2.x 에서 트래픽의 양과 속도를 제어할 수 있게 해주는 모듈이다.
상당히 간편한 설정방법과 나름 괜찮은 퍼포먼스를 보여주는듯 .. 여러군데서 이용하는것 같다.
(믿거나 말거나 ....어쨌건 별 문제 없으니 많이들 쓰는거겠지 ㅡㅡ;;;;...
사실 많이 쓰는지도 의문이다 ..orz....훗~ 어짜피 막쓰는 건데!!! ;ㅂ; )

아파치 설치에 대해선 굳이 논하지 않겠다 -_-;;
일단 Apache 를 설치 하되 DSO 모듈을 이용할 수 있게 --enable-so 주고 설치하면 되겠씀돠 ...
(설치 방법은 -_- .....꼭 해야만 하나?? SRPM 으로 깔건 뭘 쓰건 알아서 깔....)

일단 Apache 의 설치가 끝나고 나면 궁극의 mod-cband 의 설치를 할 차례다.

mod-cband 의 설치 메뉴얼은 정말 간단명료하게 나와있다.

$ wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz
$ tar xzvf mod-cband-0.9.7.5.tgz
$ cd mod-cband-0.9.7.5

$ ./configure 
$ make
$ make install


여기서 빨간색으로 칠해진 부분에 주목!
여기에 옵션이 추가 되야 하는데 ..

설치된 apxs 까지의 경로를 입력해줘야 하는데
예를 들자면.

apxs 가 /usr/foobar/apache/bin/ 에 위치한다고 할때
다음과 같이 옵션을 추가 한다.

$ ./configure --with-apxs=/usr/foobar/apache/bin/apxs

이렇게 옵션을 주고 'make' 한방 때려주면 빌드는 끝..

하지만 다음 단계로 넘어가서 'make install' 을 치면 오류가 발생한다.

Warning!  dlname not found in /usr/foobar/apache/modules/mod_cband.la.
Assuming installing a .so rather than a libtool archive.


CentOS 4.3 이 깔린 서버에서도 테스트 해봤지만 동일한 오류가 발생된다.

무슨 일일까 ㅡㅡ 고민을 하면서 무려 6시간을 보냈다...
여튼 고민을 포기하고 걍 -_- 모듈을 생성해보자 쓰랴!~ 했다.

gcc -shared -Wl,-soname,mod_cband.so.1 -o mod_cband.so mod_cband.o

.......
앙탈지게 안나왔던 그 -_- 동적모듈이 다소곳이~ 생성 되어있을 것이다.

$ ls -al
-rwxr-xr-x  1 root root 151449 Aug  3 19:54 mod_cband.so

기쁘지 아니 한가!
생성된 파일을 설치된 Apache 의 modules 디렉토리에 밀어 넣고~
다음을 httpd.conf 에 추가.!!

LoadModule cband_module       modules/mod_cband.so


대충 여태한 뻘짓을 다시 정리하면 ..
$ wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz
$ tar xzvf mod-cband-0.9.7.5.tgz
$ cd mod-cband-0.9.7.5
$ ./configure --with-apxs=[apxs PATH]
$ make
$ cd src
$ gcc -shared -Wl,-soname,mod_cband.so.1 -o mod_cband.so mod_cband.o
$ cp -p mod_cband.so /usr/foobar/apache/modules/


무엇이 더 필요한가!!?
설정 방법!!!! 은 다음기회에 ( --);;;;
혹은 참조 할만한 URL 을 -_- 곧 올리겠쓰랴~ =3=3=3

참조
Apache      : http://httpd.apache.org
mod-cband : http://cband.linux.pl
2007/08/03 17:03 2007/08/03 17:03
이 글에는 트랙백을 보낼 수 없습니다
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Dot:Where is ......
byDot
Where is ......
전체 (177)
주절거림 (60)
윈도우벽지 (2)
Shoveling.. (9)
주워들은것들.. (48)
요집이 괜찮더라!! (0)
찍사놀이 (7)
관심꺼리~ (4)
«   2024/03   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
  1. 내 맘대로 보는 세상  2009
    맘에 안드는 Internet Explorer 업데이트 방침!
  2. 시리니  2008
    브라우저 업데이트, 작지만 큰 실천입니다.
  3. Dinosur와 KM의 Blog  2007
    저도 보통 사람
  1. 2019/02 (1)
  2. 2018/07 (1)
  3. 2018/01 (11)
  4. 2017/12 (10)
  5. 2017/10 (1)