LNMP 환경 구축
먼저 Linux, Nginx, MySQL, PHP(LNMP) 스택을 준비합니다. 자세한 설치 과정은 다음 링크를 참조하세요: LNMP 구축 가이드.
1. Memcached 설치
Memcache와 Memcached는 모두 키-값 캐싱 도구이지만, Memcached가 더 현대적이고 안정적입니다. 여기서는 Memcached를 권장합니다.
방법 A: Yum으로 설치
yum -y install memcached
# Memcached 시작
service memcached start
# 부팅 시 자동 실행
chkconfig memcached on
방법 B: 소스에서 컴파일
- 필수 종속성 설치:
yum install cyrus-sasl-devel gcc gcc-c++ gcc-devel - 최신 Memcached 소스 다운로드 및 컴파일:
wget http://memcached.org/files/memcached-1.4.25.tar.gz tar xzvf memcached-1.4.25.tar.gz cd memcached-1.4.25 ./configure --prefix=/usr/local/memcached make && make install - 심볼릭 링크 생성 및 init 스크립트 복사:
ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached cp scripts/memcached.sysv /etc/init.d/memcached - 로컬 호스트에서만 수신하도록 설정하고 UDP 비활성화(원격 접근이 필요하면 건너뛰기):
sed -i 's/OPTIONS=""/OPTIONS="-l 127.0.0.1 -U 0"/g' /etc/init.d/memcached sed -i 's@chown@#chown@' /etc/init.d/memcached sed -i 's@/var/run/memcached/memcached.pid@/var/run/memcached.pid@' /etc/init.d/memcached - 서비스 시작 및 부팅 설정:
chmod +x /etc/init.d/memcached service memcached start chkconfig --add memcached chkconfig memcached on
2. PHP Memcached 확장 설치
- PHP 7 호환 확장 다운로드:
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip unzip php7.zip cd php-memcached-php7/ - PHPize를 사용하여 확장 준비:
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached make && make install - PHP 구성에 확장 추가:
파일 끝에 다음 줄 추가:vim /etc/php.iniextension=memcached.so - 확장 활성화 확인:
php -m | grep memcached - PHP-FPM 및 Nginx 다시 시작.
- 간단한 테스트 파일
/var/www/html/test.php생성:
브라우저에서<?php $cache = new Memcached(); $cache->addServer('127.0.0.1', 11211); $cache->set('test_key', 100); echo $cache->get('test_key'); ?>http://서버IP/test.php접속하여 "100"이 출력되는지 확인.
3. WordPress에 Memcached 적용
3.1 객체 캐시 플러그인 설치
- GitHub에서 WordPress용 Memcached 객체 캐시 플러그인 다운로드:
wget https://codeload.github.com/tollmanz/wordpress-pecl-memcached-object-cache/zip/master unzip master.zip object-cache.php파일을 WordPress의wp-content디렉토리에 업로드.- WordPress 루트의
wp-config.php에 다음 코드 추가:global $memcached_servers; $memcached_servers = array( array( '127.0.0.1', // Memcached 서버 IP 11211 // Memcached 포트 ) );원격 서버나 여러 서버를 사용하려면 배열에 추가:
global $memcached_servers; $memcached_servers = array( array('192.168.1.100', 11211), array('192.168.1.101', 11211) );
주의: WordPress 공식 저장소의 object-cache.php는 Memcache(구버전)만 지원하며, Memcached와 호환되지 않습니다. 잘못된 파일을 사용하면 백지 화면 오류가 발생할 수 있으니 반드시 위 GitHub 링크의 파일을 사용하세요.
3.2 Memcache 모니터링 도구(선택 사항)
- Memcache PHP 확장 다운로드 및 설정(모니터링 목적):
wget http://pecl.php.net/get/memcache-3.0.8.tgz tar xzvf memcache-3.0.8.tgz cd memcache-3.0.8 memcache.php파일 편집:
아래 설정 변경:vim memcache.phpdefine('ADMIN_USERNAME', 'admin'); // 로그인 ID define('ADMIN_PASSWORD', '비밀번호'); // 로그인 비밀번호 define('DATE_FORMAT', 'Y/m/d H:i:s'); define('GRAPH_SIZE', 200); define('MAX_ITEM_DUMP', 50); $MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 서버 주소 및 포트memcache.php를 웹 루트(예:/var/www/html)에 복사하고http://서버IP/memcache.php로 접속하여 캐시 상태 모니터링.