[jQuery] jQuery 라이브러리를 동적으로 로드시키기

Published on: 2013. 11. 14. 13:12 by louis.dev
스크립트 작업을 하다보면 때에 따라서 스크립트 라이브러리를 동적으로 로드해야 하는 경우가 생길수 있습니다. 만약  이와 같은 경우가 생기면 아래의 코드로 해당 스크립트 라이브러리를 이용하여 동적으로 로드시킬 수 있습니다.
window.onload = function(){
	if(typeof jQuery == 'undefined') {
		var jqueryElement = document.createElement('script');
		jqueryElement.src = 'http://code.jquery.com/jquery-1.7.2.min.js';

		jqueryElement.onload = function(){
			//여기에 jquery를 이용한 스크립트를 입력하면 됩니다.
			$("body").html("여기에 들어갑니다.");
		}

		document.getElementsByTagName('head')[0].appendChild(jqueryElement);
	}
}
 

[jQuery] jQuery Library 사용유무 확인하기

Published on: 2013. 11. 14. 13:12 by louis.dev
현재페이지에서 jQuery 자바스크립트 라이브러리를 사용하고 있는지 확인하는 방법은 다음과 같습니다.  
if (jQuery) {  
    // jQuery is loaded
} else {
    // jQuery is not loaded
}
또 다른 방법은 javascript의 키워드인 typeof를 사용하는 방법입니다.  
if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  
} else {
    // jQuery is loaded
}

[CentOS 5] Apache 2.4.2 컴파일 설치방법

Published on: 2013. 11. 14. 13:11 by louis.dev
아파치 서버를 설치하기 전 먼저 아파치를 컴파일 하여 설치하기 위한 라이브러리를 먼저 설치해 줘야 합니다. 1. gcc 컴파일러, pcre 설치
# yum install gcc
# yum install pcre-devel
2. APR, APR-Util 설치 위와같이 yum을 통해 간단하게 APR을 설치할 수 있지만 yum으로 설치되는 APR의 버전이 너무 낮아 Apache 2.4를 설치할때 에러를 내면서 설치가 되지 않는다. 그러므로 홈페이지에서 최신버전을 다운로드 받아 컴파일 설치하는 방식으로 진행 해야 합니다.
## APR설치
## APR의 경로를 설정하지 않으면 기본적으로 /usr/local/apr 에 설치됩니다.
$ wget http://mirror.apache-kr.org//apr/apr-1.4.6.tar.gz
$ gzip -d apr-1.4.6.tar.gz
$ tar xvf apr-1.4.6.tar.gz
$ cd apr-1.4.6
$ su
# ./configure; make && make install
## APR-Util
$ wget http://apache.mirror.cdnetworks.com//apr/apr-util-1.4.1.tar.gz
$ gzip -d apr-util-1.4.1.tar.gz
$ tar xvf apr-util-1.4.1.tar
$ cd apr-util-1.4.1
$ su
## configure 옵션중 with-apr 로 위에서 설치한 apr의 경로를 지정해 줍니다.
# ./configure --with-apr=/usr/local/apr ;make && make install
설치시 유의사항이 있다면 반드시 APR먼저 설치한 뒤 APR-util을 설치해야 합니다. 3. Apache 2.4.2 설치
$ mkdir ${사용자 디렉토리}/httpd-2.4.2
$ wget http://apache.mirror.cdnetworks.com//httpd/httpd-2.4.2.tar.gz
$ tar xvfz httpd-2.4.2.tar
$ cd httpd-2.4.2
$ su
## with-apr 설치 옵션으로 위에서 설치한 apr의 설치 경로를 입력합니다.
# ./configure --prefix=${아파치 설치 경로} --with-apr=/usr/local/apr ; make && make install
설치 중 다음과 같은 에러가 발생할 수 있습니다.
exports.c:2858: error: redefinition of 'ap_hack_apr_xlate_conv_byte'
exports.c:1813: error: previous definition of 'ap_hack_apr_xlate_conv_byte' was here
exports.c:2859: error: redefinition of 'ap_hack_apr_xlate_close'
exports.c:1814: error: previous definition of 'ap_hack_apr_xlate_close' was here
exports.c:2864: error: redefinition of 'ap_hack_apr_text_append'
exports.c:1819: error: previous definition of 'ap_hack_apr_text_append' was here
exports.c:2865: error: redefinition of 'ap_hack_apr_xml_parser_create'
exports.c:1820: error: previous definition of 'ap_hack_apr_xml_parser_create' was here
exports.c:2866: error: redefinition of 'ap_hack_apr_xml_parse_file'
exports.c:1821: error: previous definition of 'ap_hack_apr_xml_parse_file' was here
exports.c:2867: error: redefinition of 'ap_hack_apr_xml_parser_feed'
exports.c:1822: error: previous definition of 'ap_hack_apr_xml_parser_feed' was here
exports.c:2868: error: redefinition of 'ap_hack_apr_xml_parser_done'
exports.c:1823: error: previous definition of 'ap_hack_apr_xml_parser_done' was here
exports.c:2869: error: redefinition of 'ap_hack_apr_xml_parser_geterror'
exports.c:1824: error: previous definition of 'ap_hack_apr_xml_parser_geterror' was here
exports.c:2870: error: redefinition of 'ap_hack_apr_xml_to_text'
exports.c:1825: error: previous definition of 'ap_hack_apr_xml_to_text' was here
exports.c:2871: error: redefinition of 'ap_hack_apr_xml_empty_elem'
exports.c:1826: error: previous definition of 'ap_hack_apr_xml_empty_elem' was here
exports.c:2872: error: redefinition of 'ap_hack_apr_xml_quote_string'
exports.c:1827: error: previous definition of 'ap_hack_apr_xml_quote_string' was here
exports.c:2873: error: redefinition of 'ap_hack_apr_xml_quote_elem'
exports.c:1828: error: previous definition of 'ap_hack_apr_xml_quote_elem' was here
exports.c:2874: error: redefinition of 'ap_hack_apr_xml_insert_uri'
exports.c:1829: error: previous definition of 'ap_hack_apr_xml_insert_uri' was here
exports.c:2883: error: redefinition of 'ap_hack_apu_version'
exports.c:1838: error: previous definition of 'ap_hack_apu_version' was here
exports.c:2884: error: redefinition of 'ap_hack_apu_version_string'
exports.c:1839: error: previous definition of 'ap_hack_apu_version_string' was here
make[2]: *** [exports.lo] 오류 1
make[2]: Leaving directory `/home/${사용자}/httpd-2.4.2/server'
make[1]: *** [all-recursive] 오류 1
make[1]: Leaving directory `/home/${사용자}/httpd-2.4.2/server'
make: *** [all-recursive] 오류 1
이 에러는 yum으로 낮은 버전의 APR을 설치한 후 다시 컴파일 설치로 최신버전의 APR이 설치되었을때 발생하는 문제로 낮은 버전의 APM을 지우면 됩니다.
#yum remove APR

[CentOS 5] MySQL 5.5.25 컴파일 설치하기

Published on: 2013. 11. 14. 13:09 by louis.dev
리눅스 서버에 MySQL을 설치하는 방식은 세가지 정도입니다.
  1. yum을 통한 간단한 설치
  2. rpm 패키지를 통한 설치
  3. 컴파일 설치
이 중 컴파일 설치로 진행해 보도록 하겠습니다. 1. CMAKE 설치 MySQL 5.5.x 버전 부터는 make가 아닌 cmake를 통해 컴파일 설치를 해야 합니다. 그렇기 때문에 먼저 cmake를 설치해야 합니다.
## cmake 설치에 필요한 라이브러리 설치
# yum -y install zlib curl
# yum -y install gcc g++ cpp gcc-c++
# yum -y install openssl openssl-devel
# yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
# yum -y install bison

## cmake 설치
# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
# tar xvfzp cmake-2.8.4.tar.gz
# cd cmake-2.8.4
# ./bootstrap
# make all
# make install
2. MySQL 설치에 필요한 라이브러리 설치
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-devel-5.5.25-1.rhel5.x86_64.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/
$ su
# rpm -Uvh --force --nodeps MySQL-devel-5.5.25-1.rhel5.x86_64.rpm
3. MySQL 5.5.25 다운로드 후 설치
$ http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
$ tar xvfz mysql-5.5.13.tar.gz
$ cd /mysql-5.5.13
$ su
# cmake -DCMAKE_INSTALL_PREFIX=${MySQL이 설치될 경로} 
-DWITH_EXTRA_CHARSETS=all 
-DMYSQL_DATADIR=/data -DENABLED_LOCAL_INFILE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DMYSQL_UNIX_ADDR=${MySQL이 설치될 경로}/mysql.sock 
-DMYSQL_DATADIR=${MySQL이 설치될 경로}/data 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci 
-DWITH_EXTRA_CHARSETS=all 
-DMYSQL_TCP_PORT=3306
4. 권한 설정 및 세팅
# groupadd mysql
# useradd -g mysql mysql
# chown -R mysql:mysql ${mysql 설지 경로}

# cd ${mysql 설지 경로}
#  ./scripts/mysql_install_db --user=mysql --datadir=${mysql 설치 경로}/data
# cp support-files/my-medium.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld

## mysqld 파일의 datadir부분을 아래와 같이 수정한다.
# vi /etc/init.d/mysqld   

datadir=${mysql 설치 경로}/data
그리고 서비스를 실행시키면 됩니다.
# /sbin/service mysqld start
이후 작업사항은 아래 블로그에서 확인하세요

[wordpress] 플러그인, 테마 설치, 이미지 업로드 시 FTP 에러 처리 방법

Published on: 2013. 11. 14. 13:08 by louis.dev
워드프레스를 개인 서버에 올려 사용할때 몇가지 문제가 있었습니다. 그중에 워드프레스 운영페이지 상에서 플러그인 업데이트(혹은 설치)나 테마 설치, 이미지 업로드 등 FTP를 사용하는 기능들이 제대로 수행이 되지 않는 문제가 가장 큰 문제였는데요.

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.
위와 같은 에러를 뿌리면서 계속 ftp의 hostname, username, password를 물어봅니다. 그래서 제대로 ftp 내용을 제대로 입력을 하면 그 다음 화면은 흰 화면만 나오고 아무것도 동작을 하지 않게 됩니다. 위의 에러메세지로 구글링을 하면 대부분 wp-config.php에 아래의 내용을 입력하라는 솔루션이 대부분이었습니다.
define('FTP_BASE', '/httpdocs/');
define('FTP_CONTENT_DIR', '/httpdocs/wp-content/');
define('FTP_PLUGIN_DIR ', '/httpdocs/wp-content/plugins/');
define('FTP_USER', '<FTP_Username>');
define('FTP_PASS', '<FTP_Password>');
define('FTP_HOST', 'localhost');
하지만 위와 같은 내용을 입력을 해도 FTP를 사용하는 모든 기능들이 제대로 동작하지 않았습니다. 다양한 솔루션중 또 눈에 많의 띄는게 아파치의 user:group과 wordpress directory의 user:group이 맞지 않아 발생되는 문제라는 의견도 있더라구요. 그래서 apache의 user:group와 wordpress의 user:group을 동일하게 세팅했습니다. apache의 데몬은 root권한으로 apachectl을 실행해서 로드 되지만, 실제 apache 데몬의 user:group은 root가 아닙니다. 아파치 데몬의 user:group을 확인하려면 ${apache 디렉토리}/conf/httpd.conf에 선언되어 있는 User, Group에 따라 데몬의 user, group이 설정됩니다.
<IfModule unixd_module>
User apache
Group apache
</IfModule>
즉  apache 라는 그룹의 apache 라는 사용자가 아파치 데몬의 user라는 사실을 확인했습니다. 그 후 wordpress가 설치되어 있는 디렉토리의 user를 아파치 데몬의 user와 동일하게 맞춰줬습니다.
# chown -R apache:apache ${wordpress 디렉토리}
위와같이 소유자를 변경하니 FTP 정보를 물어보던 창이 없어지고 제대로 동작하는 것을 볼수 있었습니다. 저 처럼 설치형 wordpress를 사용하실 때 FTP 기능이 되지 않는다면 wordpress 디렉토리의 소유자를 아파치와 동일하게 맞추어 사용하시면 되겠습니다.