서버를 설치하면서 우분투 최신버전인 11.10과 APM패키지를 설치하였다.

어느 정도 정상적으로 작동하다가, 알수없는 fuser 프로세스가 급격히 증가하면서 좀비프로세스가 되는 현상이 있었다.

DDOS나 DB처리 과정에서 발생하는 것이 아닐까 생각하여 로그도 봐보고, Apache Timout 등 설정도 바꿔봤지만 아무런 효과도 볼 수 없었다.

재부팅 후 10~20분만 지나면 이런 현상이 발생했는데, 관련 자료를 찾아도 없던 중 자료 하나를 발견하여 우선 테스트 중이다.

설정 후 2시간 정도 작동해 보니 현재까지는 양호하게 작동하고 있다.


/etc/cron.d/php5 파일 내용이 11.04와 달라졌는데, 우선 11.04 내용으로 변경하여 적용했다. 

11.10 버전은 아래의 내용이다.

09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete


이 것을 아래처럼 11.04의 것으로 바꾼다. ( ! -execdir fuser -s {} 2>/dev/null \; 삭제)

09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete


현재까지는 이상이 없지만 모니터링을 해봐야겠습니다.

30분 이상된 세션을 정리해 주는 cron인 것 같네요. 

이 때문에 30분마다 엄청난 fuser프로세스가 생긴 것 같은데요. 위 부분을 지웠다고 어떤 문제가 생길지는 모르겠습니다.

우선은 지켜봐야 할 듯 합니다.







최근에는 패키지로 배포되는 APM이 여러면에서 상당히 편리하므로 컴파일해서 설치할 필요가 없는 편입니다.

이 문서는 개인적인 차원에서 정리하는 것임을 밝혀 둡니다.

 

1. chkconfig 설치

이미 설치되어 있다면, 설치하지 않아도 됨

# apt-get install chkconfig

 

2. MySQL 자동실행 설정

실행 스크립트 /etc/init.d 로 복사

# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

chkconfig으로 등록

# chkconfig --add mysqld

 

3. Apache 자동실행 설정

실행 스크립트 /etc/init.d 로 복사

# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

스크립트 수정

# vi /etc/init.d/httpd

다음 내용을 #!/bin/sh 하단에 추가

# Comments to support chkconfig on ReaHat Linux
# chkconfig: 2345 90 90
# descrption: A very fast and reliable WebServer engine.

chkconfig으로 등록

# chkconfig --add httpd

 

4. 등록 여부 확인

# chkconfig --list

결과 아래와 같은 항목이 있어야 함

httpd                     0:off  1:off  2:on   3:on   4:on   5:on   6:off

mysqld                    0:off  1:off  2:on   3:on   4:on   5:on   6:off

 

httpd가 없거나 전부 off 일때

mysql은 잘되지만 httpd는 안될 때가 있다.

# chkconfig --edit httpd

실행 후, httpd off 라고 된 부분을 on으로 변경 후 저장

최근에는 패키지로 배포되는 APM이 여러면에서 상당히 편리하므로 컴파일해서 설치할 필요가 없는 편입니다.

이 문서는 개인적인 차원에서 정리하는 것임을 밝혀 둡니다.

 

 

1. PATH 설정

/etc/profile 에 아래 내용 추가

# form Apache located at /usr/local/apache2
if [ –d /usr/local/apache2 ]
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache2/lib; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/apache2/bin; export PATH;
fi

# from MySQL located at /usr/local/mysql
if [ –d /usr/local/mysql ]
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/mysql/bin; export PATH;
fi

 

2. MySQL 설정

mysql 사용자 추가

# groupadd mysql
# useradd -d /home/mysql -g mysql –s /bin/false mysql

환경파일 복사

# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

DB파일 생성

# /usr/local/mysql/bin/mysql_install_db
# chown -R mysql:mysql /usr/local/mysql/var

root 비밀번호 변경

# /usr/local/mysql/share/mysql/mysql.server start
# /usr/local/mysql/bin/mysqladmin –u root password ‘new-password’

 

3. Apache 설정

/usr/local/apache2/conf/httpd.conf 파일 수정

# Dynamic Shared Object (DSO) Support
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .htm .html
AddType application/x-httpd-php-source .phps

ServerName 수정

ServerName 192.168.0.1 처럼 IP를 지정하거나 도메인 지정

Include 주석 해제

가장 하단부에 각 설정이 구분된 Include 설정이 있다. 필요한 설정 부분 주석을 해제한다.

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf

# Multi-language error messages
Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include conf/extra/httpd-autoindex.conf

# Language settings
Include conf/extra/httpd-languages.conf

# User home directories
Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
Include conf/extra/httpd-dav.conf

# Various default settings
Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf

최근에는 패키지로 배포되는 APM이 여러면에서 상당히 편리하므로 컴파일해서 설치할 필요가 없는 편입니다.

이 문서는 개인적인 차원에서 정리하는 것임을 밝혀 둡니다.

주의1)  -기호 2개가 연속으로 있을 때 조금 긴 -기호로 바뀌어 버리네요. 수정이 잘 안되니, 참고 바랍니다. ^^;;

 

 

1. MySQL

# wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.67.tar.gz/from/http://mysql.byngsoo.net/
# tar xvzf mysql-5.0.67.tar.gz
# cd mysql-5.0.67
# ./configure --prefix=/usr/local/mysql --without-readline --enable-thread-safe-client --with-charset=utf8 --with-extra-charsets=ucs2,euckr CFLAGS="-I/usr/local/include" CXXFLAGS="-I/usr/local/include"
# make
# make install

 

2. Apache

# wget http://apache.tt.co.kr/httpd/httpd-2.2.9.tar.gz
# tar xvzf httpd-2.2.9.tar.gz
# cd httpd-2.2.9
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-auth-digest --enable-dav --enable-dav-fs --with-mpm=worker --enable-rewrite --enable-deflate --enable-headers --enable-expires --enable-log-forensic --enable-dbd --enable-authn-dbm --enable-authn-dbd --enable-authz-dbm
# make
# make install

--with-mpm=worker 설명

Apache2에는 worker와 prefork가 있다. 일반적으로 worker가 메모리를 적게 사용하지만, prefork에 비해서 불안정하다고 알려져 있다.

해당 옵션을 삭제하면 기본으로 prefork가 된다.

서버의 수용 최대 접속 컴파일 단계에서 늘리기

Apache1.3.x에서는 httpd.h 파일의 HARD_SERVER_LIMIT 값을 변경해 컴파일 해야 하지만, Apache2에서는 조금 다르다.

컴파일 전에 아래 값을 변경해 줘야 한다.

server/mpm/prefork/prefork.c
DEFAULT_SERVER_LIMIT 을 256에서 2048로 변경

server/mpm/worker/worker.c
DEFAULT_SERVER_LIMIT 을 16에서 256으로 변경

 

3. PHP

# wget http://kr2.php.net/get/php-5.2.8.tar.gz/from/this/mirror
# tar xvzf php-5.2.8.tar.gz
# cd php-5.2.8
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-iconv=/usr/local --with-libxml-dir=/usr/local/xml --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-freetype-dir=/usr/local --with-curl --enable-mbstring --enable-mbregex --enable-dbase --enable-sigchild --enable-gd-native-ttf --enable-wddx --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --enable-soap --enable-ftp --enable-safe-mode --enable-exif --enable-bcmath
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini

configure 중 libiconv.so.2 문제

아래와 같은 에러가 발생할 수 있다.

Sorry, I cannot run apxs.  Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)

The output of /opt/modules/apache2/bin/apxs follows:
/opt/modules/apache2/bin/httpd: error while loading shared libraries:libiconv.so.2: cannot open shared object file: No such file or directory
apxs:Error: Sorry, no shared object support for Apache.
apxs:Error: available under your platform. Make sure.
apxs:Error: the Apache module mod_so is compiled into.
apxs:Error: your server binary `/opt/modules/apache2/bin/httpd'..
configure: error: Aborting

해결방법

# ln -s  /usr/local/lib/libiconv.so.2 /usr/lib/

다시 configure 실행

 

4. ZendOptimizer

http://www.zend.com 에서 다운로드

# tar xvzf ZendOptimizer-3.2.8-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.2.8-linux-glibc21-i386
# ./install

install스크립트

- 자동으로 설치함
- 설치 중 php.ini 경로 입력 : /usr/local/php/lib
- 설치 중 Apache Control Utility 경로 입력 : /usr/local/apache2/bin/apachectl

ZendOptimizer 제거

- /usr/local/php/lib/php.ini-zend_optimizer.bak 을 php.ini로 바꿈

최근에는 패키지로 배포되는 APM이 여러면에서 상당히 편리하므로 컴파일해서 설치할 필요가 없는 편입니다.

이 문서는 개인적인 차원에서 정리하는 것임을 밝혀 둡니다.

주의1)  -기호 2개가 연속으로 있을 때 조금 긴 -기호로 바뀌어 버리네요. 수정이 잘 안되니, 참고 바랍니다. ^^;; 

 

1. readline

# wget ftp://ftp.cwru.edu/pub/bash/readline-5.2.tar.gz
# tar xvzf readline-5.2.tar.gz
# cd readline-5.2
# .configure –enable-multibyte
# make
# make install

 

2. libxml2

# wget ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
# tar xvzf libxml2-2.7.3.tar.gz
# cd libxml2-2.7.3
# ./configure --prefix=/usr/local/xml
# make
# make install

 

3. zlib

# wget http://www.zlib.net/zlib-1.2.3.tar.gz
# tar xvzf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure –s
# make
# make install

 

4. libiconv

# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
# tar xvzf libiconv-1.12.tar.gz
# cd libiconv-1.12
# ./configure --prefix=/usr/local
# make
# make install

 

5. FreeType

# wget http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.8.tar.gz
# tar xvzf freetype-2.3.8.tar.gz
# cd freetype-2.3.8
# ./configure
# make
# make install

 

6. GD

# wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
# tar xvzf gd-2.0.35.tar.gz
# cd gd-2.0.35
# ./configure
# make
# make install

 

7. curl

# wget http://curl.haxx.se/download/curl-7.19.4.tar.gz
# tar xvzf curl-7.19.4.tar.gz
# cd curl-7.19.4
# ./configure
# make
# make install

 

8. jpeg

# wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
# tar xvzf jpegsrc.v6b.tar.gz
# cd jpegsrc.v6b.tar.gz
# ./configure
# make
# make install

 

9. libpng

# wget http://jaist.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.35.tar.gz
# tar xvzf libpng-1.2.35.tar.gz
# cd libpng-1.2.35
# ./configure
# make
# make install

최근에는 패키지로 배포되는 APM이 여러면에서 상당히 편리하므로 컴파일해서 설치할 필요가 없는 편입니다.

이 문서는 개인적인 차원에서 정리하는 것임을 밝혀 둡니다.

주의1) mysql과 apache2 데몬을 반드시 중지 후 제거한다.

주의2) 아래 제거는 상황에 따라 달라질 수도 있으며, 다른 방법이 있을 수 있다. (의존성 검사 후 제거해 주는 거라 이렇게 나열하지 않아도 가능하지 않을까?)

주의3)  -기호 2개가 연속으로 있을 때 조금 긴 -기호로 바뀌어 버리네요. 수정이 잘 안되니, 참고 바랍니다. ^^;;

1. mysqld 제거

# /etc/init.d/mysql stop
# apt-get --purge autoremove mysql-server mysql-client libmysqlclient15-dev

 

2. Apache 제거

# /etc/init.d/apache2 stop
# apt-get --purege autoremove apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

 

3. PHP 제거

# apt-get --purge autoremove libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

useradd -m 계정명 -G 그룹명
-m 옵션을 사용하면, 사용자 디렉토리를 생성시킴.


MySQL 사용자 계정의 허용 호스트를 % 또는 IP주소로 허용해 주고 나서도 제대로 연결이 안되는 문제를 겪었다.

이를 해결하기 위해서는 my.cnf 를 수정하여 MySQL을 재실행 해주어야 한다.

1. my.cnf 수정

vi  /etc/mysql/my.cnf

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1 
#
# * Fine Tuning

위의 bind-address = 127.0.0.1 로 된 부분을 아래처럼 주석처리해 준다.

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1 
#
# * Fine Tuning

2. MySQL 재실행

/etc/init.d/mysql  restart

제로보드XE를 설치하다가 mod_rewrite가 기본으로는 활성화 되지 않는 점을 발견 했다.

이때는

sudo a2enmod rewrite

명령어를 사용하면 mod_rewrite가 설치된다.

apache2 force-reload

명령어를 사용하여 활성화하면 된다.

앗!! 그런데 안된다... 쩝

/etc/apache2/sites-enabled/000-default 파일을 열어서 아랫부분처럼 수정해 준다.
(apache2.conf 파일이 분리되어 있구나...)

<Directory "/var/www">
  Options FollowSymLinks
  AllowOverride FileInfo
</Directory>

그리곤

apache2 -k restart

명령어로 아파치 재시작!!

그럼 성공!!!

usr/share/fonts/truetype: failed to write cache
/usr/share/fonts/truetype/alee: failed to write cache
/usr/share/fonts/truetype/unfonts: failed to write cache
/var/lib/defoma/fontconfig.d: failed to write cache
/var/lib/defoma/fontconfig.d/B: failed to write cache
/var/lib/defoma/fontconfig.d/E: failed to write cache
/var/lib/defoma/fontconfig.d/G: failed to write cache
/var/lib/defoma/fontconfig.d/J: failed to write cache
/var/lib/defoma/fontconfig.d/P: failed to write cache
/var/lib/defoma/fontconfig.d/S: failed to write cache
/var/lib/defoma/fontconfig.d/T: failed to write cache
/var/lib/defoma/fontconfig.d/Y: failed to write cache
......

처럼 우분투에서 업데이트시 에러가 난다면 다음과 같이 하면 된다.
에러 메시지 중 위에 나타난 부분 (failed to write cache가 있는 부분)을 복사해서 아무 파일에나 저장한다.

# vi temp

을 실행하여 뒤에 붙어 있는 에러메시지를 삭제하고 저장한다.

/usr/share/fonts/truetype
/usr/share/fonts/truetype/alee
/usr/share/fonts/truetype/unfonts
/var/lib/defoma/fontconfig.d
/var/lib/defoma/fontconfig.d/B
/var/lib/defoma/fontconfig.d/E
/var/lib/defoma/fontconfig.d/G
/var/lib/defoma/fontconfig.d/J
/var/lib/defoma/fontconfig.d/P
/var/lib/defoma/fontconfig.d/S
/var/lib/defoma/fontconfig.d/T
/var/lib/defoma/fontconfig.d/Y

아래처럼 명령어를 실행한다.

cat /home/user/temp | xargs touch

다시 업데이트를 시도해 보면 정상적으로 될 것이다.

이 부분은 간단해서 좋다.

일단 설치시, 우분투 설치CD를 넣었을 때 나오는 첫 화면에서 바로 설치하기로 들어가지 말고, F2를 누르면 Language를 선택할 수 있다. 이 때 한국어를 선택하면, 설치화면부터 한글 설정으로 모두 설치해 준다.

만약, 기본값으로 설치를 해버렸더라도 어렵지 않다.
System > Administrator > Language 로 들어가서 Korean을 찾아서 Apply를 눌러주면 자동으로 한국어가 설치된다. (단, 인터넷이 연결되어 있어야 한다.) 그리고 나서  Default Language 를 Korean으로 설정해 주면 끝이 난다.

리눅스 배포판 중에서 이 부분만큼은 가장 쉽다.

pppoeconf

를 실행하면, username과 password를 물어보는데, 자신의 dsl계정을 입력하고 엔터 몇 번을 쳐주면 끝 난다.

아직도 내 모니터의 1920x1200 해상도 잡기에는 실패했다.

일단은 내가 사용한 2가지 방법을 정리해 두고 다시 시작해야겠다.
드디어 세 번째 방법으로 성공했다. 후후~~~

혹시나 자신의 그래픽카드 드라이버를 아직 잡지 않았다면 우선 그래픽드라이버를 설치하시기 바랍니다.

우분투 7.04의 경우, 설치 후 관리 > 제한된 드라이버 관리자 에 가보면 nVidia의 경우 NVIDIA 그래픽 가속 드라이버 항목이 있을 것이다. 비활성화 되어 있는 것을 활성화에 체크해 주면 자동으로 드라이버가 설치된다.

첫 번째 방법 (대부분 이 방법으로 해결되는 것 같다)

sudo dpkg-reconfigure -p high xserver-xorg

를 입력하면 X설정 중 해상도와 관련된 세팅만 할 수 있다.
먼저, 자신의 그래픽카드를 선택하고 다음화면에서 원하는 해상도에 체크를 하고 엔터를 치면 끝.

Ctrl + Alt + BackSpace 를 누르면 X가 재시작되고, 확인할 수 있다.

두 번째 방법 (모니터 해상도와 주사율 설정, 첫 번째 실패하면 이 방법까지 사용)

gtf 1920 1200 60

자신의 모니터 해상도와 화면 주사율을 적용하여, 위 처럼 명령을 입력하면 아래와 같은 출력이 나온다.

  # 1920x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 193.16 MHz
  Modeline "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync

sudo vi /etc/X11/xorg.conf

를 실행하여 2번째 줄을 복사하여 붙여 넣어 주면 된다.

Section "Monitor"
        Identifier      "일반 모니터"
        Option          "DPMS"
        HorizSync       28-96
        VertRefresh     43-60
        Modeline "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync
EndSection

위 처럼 추가해 주고, 저장했으면 Ctrl + Alt + BackSpace 를 눌러서 X 재시작

세 번째 방법 (드디어 성공)

sudo vi /etc/X11/xorg.conf

를 실행하여 다음과 같이 VideoRam크기(KB단위)와 "ModeValidation" "NoDFPNativeResolutionCheck" Option을 추가한다.

Section "Device"
Identifier "GeForce 7300LE"
Driver "nvidia"
BusID "PCI:5:0:0"
VideoRam 262144
Option "ModeValidation" "NoDFPNativeResolutionCheck"
EndSection

VideoRam은 KB단위 이므로 256MB라면 256 x 1024 의 계산 결과를 써주면 된다.

저장했으면 Ctrl + Alt + BackSpace 를 눌러서 X 재시작

우분투 64비트 버전, 혹은 리눅스 64비트 버전에 Firefox를 사용하고 있다면, 플래시플레이어 설치에 애를 먹을 수 있다.
플래시플레이어가 32bit용으로 나오기 때문에, 64비트 아키텍처 컴퓨터에서는 설치할 수 없다는 메시지를 보여주면서 설치가 중단될 것이다.

AMD64의 경우입니다.

1. 아래 명령어로 ia32-libs ia32-libs-gtk linux32 lib32asound2 를 설치합니다. 32비트 버전의 어플리케이션을 실행하기 위해서입니다.

sudo apt-get install ia32-libs ia32-libs-gtk linux32 lib32asound2

2. 설치가 끝나면, 아래 링크를 눌러 2개의 파일을 다운로드 합니다.
http://gwenole.beauchesne.info/proje...2-1.x86_64.rpm 
http://gwenole.beauchesne.info/proje...2-1.x86_64.rpm

3. alien을 설치합니다.

sudo apt-get install alien

4. alien을 이용하여 rpm패키지 파일을 deb패키지로 바꿉니다.

sudo alien nspluginwrapper-0.9.91.2-1.x86_64.rpm 
sudo alien nspluginwrapper-i386-0.9.91.2-1.x86_64.rpm

주의) 다운로드받은 rpm파일의 이름과 경로를 정확히 적어 주세요.

5. dpkg명령어로 패키지를 설치합니다.

sudo dpkg -i nspluginwrapper_0.9.91.2-2_amd64.deb 
sudo dpkg -i nspluginwrapper-i386_0.9.91.2-2_amd64.deb

주의) 파일 이름이 위와 다를 수도 있습니다. 확인 후에 실행해 주세요.

6. Adobe에서 flash player 9 를 아래 링크를 눌러 다운로드 받습니다.
http://fpdownload.macromedia.com/get...9_linux.tar.gz

7. tar로 압축을 해제합니다.

tar xvzf install_flash_player_9_linux.tar.gz

8. 압축 해제된 파일 중 libflashplayer.soflashplayer.xpt/usr/lib/mozilla/plugins 로 복사합니다.

9. nspluginwrapper로 활성화시켜 줍니다.

nspluginwrapper -i /usr/lib/mozilla/plugins/libflashplayer.so

이제 설치가 완료되었습니다. 플래시가 제대로 나타나는지 확인해 보시기 바랍니다.
혹시나 제대로 나타나지 않는다면, 8과 9의 과정을 /usr/lib/mozilla-firefox/plugins 경로를 대상으로 다시 한 번 해보시기 바랍니다.

+ Recent posts