저사양 서버 성능 최적화 하기 (#4 APC 설정)

저사양 서버 성능 최적화 하기 (#4 APC 설정)

이제 저사양 VPS 서버 성능 최적화 하기의 마지막 포스팅입니다. APC를 설치만 하고 기본 설정대로 쓰셔도 어느정도 효과는 보시겠지만 좀 더 세부적인 설정을 하고 싶으신 분들은 참고해보시기 바랍니다. 검색을 해봐도 번역 자료도 엉망이고 여기저기 있다보니 어려움이 많았습니다. 나름대로 정리는 했지만 만족스러운 내용이 될지는 모르겠습니다. APC의 설정파일의 경로는 이전 포스팅 #3 APC 설치에서 나와있듯이 /etc/php.d/apc.ini 입니다. vi 에디터로 파일을 열어보시면 extension=apc.so 딸랑 한 줄만 보이게 될겁니다. 그럼 이 설정 파일을 채워보도록 하겠습니다. extension=apc.so apc.enabled=1 apc.shm_segments=1 ;공유 메모리 사이즈, 너무 작게 설정하면 지나치게 단편화가…

Read More Read More

저사양 서버 성능 최적화 하기 (#3 APC 설치)

저사양 서버 성능 최적화 하기 (#3 APC 설치)

APC (Alternative PHP Cache) 에 대한 설치 방법을 소개합니다. APC란 PHP 페이지를 호출할때마다 해석하지 않고 미리 HTML 문서로 저장해두었다가 사용자에게 별다른 처리과정 없이 보여주는 캐싱 모듈입니다. 이를테면 WP-Super Cache와 비슷한 원리이죠. 하지만 WP-SuperCache와는 다른 퍼포먼스 경험을 하실 수 있습니다. 설치방법은 몹시 간단합니다. 그런데 국내 블로그에는 제대로 된 정보가 없어서 아쉽더군요. yum 패키지 설치 기준으로 설명드리겠습니다.   1. 관련 모듈 설치 # yum install php-pear php-devel httpd-devel pcre-devel gcc make   2.  APC 설치 # pecl install apc -> 이 과정에서…

Read More Read More

저사양 서버 성능 최적화 하기 (#2 MySQL/PHP)

저사양 서버 성능 최적화 하기 (#2 MySQL/PHP)

이번에는 MySQL과 PHP 입니다. 설정할 것들이 그렇게 많진 않습니다. (제가 지식이 얕아서..)   1. MySQL (my.cnf) 우선 MySQL부터 보겠습니다. MySQL의 설정파일은 패키지로 설치하셨다면 /etc/my.cnf 파일이 되겠습니다. [mysqld] skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K # InnoDB 사용시 추가 옵션 innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M…

Read More Read More

저사양 서버 성능 최적화 하기 (#1 Apache)

저사양 서버 성능 최적화 하기 (#1 Apache)

이 블로그는 워드프레스로 제작되었습니다. 워드프레스는 많은 기능을 가지고 있지만 속도가 느리다는 단점을 가지고 있지요. 게다가 기반이 되고 있는 언어도 PHP이기 때문에.. PHP 역시 빠른 언어는 아닙니다. 설상가상으로 아주 저렴한 VPS 서버위에서 돌고 있습니다. 여기서 아주 저렴한 VPS (가상화서버)라 함은.. cpu는 1개의 단일 코어, 512메가의 메모리, 30기가의 HDD 입니다. 웹서버는 메모리 상에 많은 데이터가 올라와있는 상태로 유지가 되어야하기 때문에 메모리는 무엇보다 중요한 요소입니다. 그런데 512메가 입니다. 요즘 저렴한 개인 PC도 메모리는 최소 4기가 이상이죠. 흐흐.. 아무튼 돈이 없으니 저사양 스펙으로 돌리고…

Read More Read More

[CI] 로그인시 Session은 처리됐는데 로그인이 안되는 경우

[CI] 로그인시 Session은 처리됐는데 로그인이 안되는 경우

하아.. 이걸로 고생을 좀 한 것 같습니다. 여러 PC로 로그인 테스트를 하던 중 Session은 문제 없이 처리가 되었는데 로그인이 되지 않았습니다. Session 등록 직후 값을 찍어보면 찍히는데 로그인 완료 화면에서 Session을 찍어보면 빈 값으로 출력되는 문제가 있었습니다. 에러로그에도 아무런 문제가 나타나지 않고 특정 PC에서만 발생하니 더 난해한 문제였습니다. 그런데 간단하게 해결이 되었습니다. 해결 방법 1. /application/config/config.php 파일을 엽니다. 2. $config[‘sess_match_useragent’] 값을 TRUE에서 FALSE로 변경합니다. 3. 로그인을 시도해봅니다. 기본적으로 CodeIgniter에서는 Session 데이터 옵션에 User_Agent를 매칭하는 옵션이 설정되어있습니다. 그런데 이 부분에서 문제가 좀…

Read More Read More

[CI] Session 데이터를 DB로 저장하는 방법

[CI] Session 데이터를 DB로 저장하는 방법

Session은 일반 적으로 파일로 저장하거나 DB에 저장할 수 있습니다. 기본 값으로는 파일로 저장되도록 설정이 되어있습니다. 이를 DB로 저장하는 방법을 소개드립니다. 1. /application/config/config.php 파일을 열어 아래 내용과 같이 수정 합니다. $config[‘sess_use_database’] = TRUE; $config[‘sess_table_name’] = ‘ci_sessions’; sess_table_name은 ci_session으로 이름을 달리하고 싶은 경우 변경하셔도 무방합니다. 단, sess_cookie_name 의 값도 변경된 이름과 동일하게 맞춰주셔야 합니다. 2. ci_session 테이블을 만듭니다. 저장될 DB 테이블을 설정하셨다면 테이블이 필요하겠죠. ci_session 테이블의 스키마는 아래와 같습니다. CREATE TABLE IF NOT EXISTS `ci_sessions` ( session_id varchar(40) DEFAULT ‘0’ NOT NULL, ip_address…

Read More Read More

[JS] 자바스크립트 함수 인자 디폴트 처리방법

[JS] 자바스크립트 함수 인자 디폴트 처리방법

보통 개발 언어에서는 함수 인자가 없는 경우 디폴트 값을 지정이 가능합니다. PHP를 예로 들어보겠습니다. function test($a = 1, $b = 2) { return $a + $b; } test(); 결과값 => 3 이처럼 인자가 없는 경우 설정된 기본값이 대입되어 처리됩니다. 자바스크립트의 경우는 처리 방법이 조금 다릅니다. 정확히 말하자면 자바스크립트에는 함수 인자 기본 옵션을 줄 수 없습니다. 때문에 함수 안에서 인자를 체크하여 기본값 처리하는 부분이 들어가야 합니다. function test(a, b) { a = typeof a !== ‘undefined’ ? a : 1; b…

Read More Read More

[JS] setInterval을 적용하는 함수에 인자 추가하는 방법

[JS] setInterval을 적용하는 함수에 인자 추가하는 방법

주기적으로 함수를 실행시키기 위해 사용하는 setInterval 함수가 있습니다. 잘 아시겠지만 보통 이렇게 사용합니다. <script type=”text/javascript”> // test 함수를 5초마다 실행 setInterval(test, 5000); function test() { console.log(“hello!!”); } </script>   여기서 test 함수에 인자가 포함되어있다면 어떻게 호출해야할까요? 방법은 아래와 같습니다. <script type=”text/javascript”> // test 함수를 5초마다 실행 setInterval(function(){ test(“hello”); }), 5000); function test(string) { console.log(string); } </script>   이 방법을 통해 인자를 포함시켜 setInterval 을 실행시킬 수 있으며 여러 개의 함수를 함께 실행 시킬 수도 있습니다. <script type=”text/javascript”> // test 함수와…

Read More Read More

[jQuery] Textarea 줄바꿈시 자동 리사이즈 시키는 방법

[jQuery] Textarea 줄바꿈시 자동 리사이즈 시키는 방법

textarea에서 글을 작성할때 줄바꿈을 하면 상자의 세로길이가 변경되는 소스입니다. <script type=”text/javascript”> $(document).ready(function(){ $(“#textarea”).on(“keyup”, function(){ textarea_resize(this, 10); }); }); function textarea_resize(id, offset) { obj.style.height = “1px”; obj.style.height = (obj.scrollHeight + offset) + “px”; } </script> <textarea id=”textarea”></textarea> textarea_resize 함수의 인자 중 offset은 줄바꿈을 했을때 세로값을 임의로 추가할때 사용됩니다.