2014년 9월 15일 월요일

blogger에 구글 analytics 코드 넣는 방법

1) google analytics 에 들어가서 속성 추가하고, 트래킹 ID를 복사


2) "blogger 설정 > 기타" 메뉴로 들어가서 제일 하단에 "google 애널리틱스" 웹속성 ID를 넣는다. (예, UA-000000-1)


3) 사용자정의 탬플릿을 사용하는 경우, "템플릿 > html편집"에 들어가서 </head> 테그 앞에

    <b:include data='blog' name='google-analytics'/>

코드를 추가한다.
( 최근 탬플릿을 사용중이거나, 동적뷰 탬플릿을 사용중이면 건너뛰기. 위 include태그가 있는지 확인 )

mysql에서 csv파일로 export 하기

몇가지 방법이 있는 것 같은데,
제가 자주 쓰는 방법은

select col1, col2, col3, col4 from tablename
into outfile '~/filename.csv'
fields terminated by ','
enclosed by '"'
lines terminated by '\n';


2014년 9월 6일 토요일

nginx 옛날 도메인, 새 도메인으로 rewrite

도메인 바꿀경우, nginx 설정에서 새 도메인으로 rewrite 하는 방법

1) nginx 설정파일을 수정합니다.
vi /etc/nginx/sites-enabled/domain

2) 다음 내용을 추가합니다.
  server_name old1.com old2.com old3.com new.com;
  if ($host != 'new.com' ) {
    rewrite ^/(.*)$ http://new.com/$1 permanent;
  }

3) nginx restart
sudo service nginx restart


파라미터도 잘 넘기네요.

2014년 9월 5일 금요일

전국 5일장 지도

여행다닐때마다 지역에 있는 재래시장 또는 5일장에 들르는 걸 좋아합니다.
헌데 갈때마다 문서를 검색해서 열리는 5일장을 찾으려니 넘 귀찮네요.

여기 저기 떠돌아다니는 문서로된 정보를 모아서 검색할 수 있도록 만들었습니다.^^




첫 화면에선 선택한 날짜를 기준으로 언제 5일장이 열리는지 알려줍니다.
빨간색이 오늘 장이 서는 곳입니다.
+1 은 1일 후, +3은 3일 후에 장이 선다는 표시 입니다.
모바일에선 "현재위치"를 누르면 현재 위치를 중심으로 표시합니다.




목록보기 화면에선 선택된 날짜를 기준으로 오늘, 내일, 모레, 3일 후 ~ 
장이 서는 지역을 목록으로 볼 수 있습니다.
검색도 가능합니다. 지역명, 시장명, 특산품 등 다 검색합니다.



날짜변경은 여행계획을 세우실 때, 사용할 수 있습니다.
7월 30일 휴가 예정이라면 날짜를 변경하시면 해당 날짜를 기준으로 다시 검색합니다.



처음으로 만들어본 서비스인데 나름 재밌습니다.
이제 가족이랑 방방곡곡 여행다닐 일만 남았는데, 딸래미가 너무 천천히 크네요. ㅋㅋㅋ

1.0 정식오픈 할때(언제일지 모르나)는 시장의 상세화면도 붙이고, 블로그 리뷰도 연동하고, 별점도 매길 수 있기를 기대하며 ^^
5일장 또는 재래시장을 좋아하시는 분들 이용해보시고 의견도 주시면 넘 감사 
데이터는 확인 및 업데이트 해가는 중이니 학술 용도로는 사용하지 마시구요ㅋㅋ
놀러갈 분들이 참고만 해주시길!!!


재래시장과 5일장 모두 장사 잘 됐으면 좋겠습니다^^
어느 5일장에서 우연히 옆을 지나가길 기대하면서~~


2014년 8월 29일 금요일

2014년 8월 28일 목요일

gmail smtp를 이용한 메일 보낼 때, 보낸 메일주소 변경하려면

gmail smtp를 이용해서 메일 보내기를 구축해 놓았더니,
대표메일이 아니고 세팅한 gmail계정으로 보낸사람이 표시됩니다.
소스코드에서 from 메일주소를 세팅해줘도 바뀌지 않네요.

그럴때, 지메일 [환경설정] > [계정 및 가져오기] > [다른 주소에서 메일 보내기] 를 설정해주니 가능하네요.
다른 이메일 주소를 추가하고, 기본 주소로 변경하고, "별칭으로 처리" 항목은 체크를 해제했습니다.

next scripts plugin - Error: No CURL Found

ubuntu, nginx + php-fpm 환경에서 wordpress를 운영중에,
트위터에 글 자동 발행해보려 next scripts 플러그인을 설치하니, 에러 발생.
Error: No CURL Found ... 어쩌구 저쩌구

php5-curl 을 설치해줬더니 잘 된다.
1) sudo apt-get install php5-curl
2) sudo service nginx restart
3) sudo service php5-fpm restart

그럼 트위터로 자동발행이 되는지 테스트를 겸하여 ㅋㅋ

세계 도시 위도와 경도 좌표, 인구 데이터

글로벌(???) 서비스를 준비하다보니, 나라별 도시의 위도 경도 좌표가 필요~

검색하다보니, 무료로 제공하는 회사가 있네요. 고마워라 Maxmind
다운로드 페이지 : https://www.maxmind.com/en/worldcities

나라코드, 도시명, 인구수, 위도, 경도 좌표가 포함되어 있네요.
필요하신 분들 활용하세요.

git 이용한 wordpress 배포

제목이 너무 거창하다. 개발 유단자는 Pass~~
웹개발을 한지 몇년인데, 아직까지도 서버에 배포할 때는, ftp를 열어서, 수정한 파일을 기억한 후, upload를 해왔다.
이것도 귀찮아서 최근엔, 직접 ftp로 파일열어서 서버에서 직접 수정하며 살아왔다.

그러다가, git을 사용해서 소스 버젼관리를 하고, 배포를 자동화 하고 ~
하는 것을 아주 살짝 봤더니만, 역시 나의 지난 세월은 머리가 나빠서 몸이 고생했던 시간들이다.

검색해보니 wordpress 배포를 위한 다양한 방법들이 있다.
역시 문제는 방법을 다 써놨는데도 눈에 안들어오고 해보기 겁도나고 귀찮기도 하고 ^^
(시간이 흘러도 개발실력이 늘지않은 가장 큰 이유)

걍 내가 아는수준에서 편하게 해보기로 마음먹고, 잔머리를 살짝 굴려본다.ㅎㅎ

[배포 시나리오]
1) 로컬에서 wordpress 수정
2) git push
3) 서버에 ssh접속해서 git pull

[환경]
- 로컬 : mac(apache + mysql)
- 서버(가상서버) : ubuntu 12.04 (nginx + mysql)
- bitbucket.com 이용

[예상되는 문제]
1) 로컬 관리자메뉴에서 설정값(DB)을 바꿀 경우, 서버(DB)에 자동으로 적용이 안됨
2) 배포 rollback이 필요할 경우도 git 을 활용


또 생기는 문제는 그때 해결하고. ㅋㅋ 그럼 시작 ~
1) 로컬에서 워드프레스 설치하고, 사이트를 만들었다.

2) 로컬DB접속용 wp-config.php수정 & wp-local-config.php 추가
- wp-config.php ----------------------------------------------
/** Local Database Setting **/
$local_config_file = dirname(__FILE__) . '/wp-local-config.php';
if (file_exists( $local_config_file )) {
  require $local_config_file;
  define('WP_DEBUG', true);
  define('WP_DEBUG_DISPLAY', true);
  define('WP_DEBUG_LOG', true);
} else {
  // ** MySQL settings - You can get this info from your web host ** //
  /** The name of the database for WordPress */
  define('DB_NAME', 'databasename');
  /** MySQL database username */
  define('DB_USER', 'databaseuser');
  /** MySQL database password */
  define('DB_PASSWORD', 'databasepassword');
  /** MySQL hostname */
  define('DB_HOST', 'localhost');
  /** Database Charset to use in creating database tables. */
  define('DB_CHARSET', 'utf8');
  /** The Database Collate type. Don't change this if in doubt. */
  define('DB_COLLATE', '');
}
------------------------------------------
- wp-local-config.php ----------------------------------------------
<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'local database name');
/** MySQL database username */
define('DB_USER', 'local database user');
/** MySQL database password */
define('DB_PASSWORD', 'local database password');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
?>
------------------------------------------

3) bitbucket에서 repository 만들고, 소스 push
-- .gitignore --------------------------------------------
wp-content/*
!wp-content/plugins/
!wp-content/themes/
wp-local-config.php
# deploy
srv-deploy/*
-----------------------------------------------------------

4)  서버에서 git clone 해서 소스파일 설치

5) scp이용, uploads폴더 업로드

6) 로컬DB 백업 & 서버 복원

7) 다음번 배포를 위한 bash 스크립트 작성
-- ./srv_deploy/deploy.sh ------------------
#!/bin/bash
ssh deployer@blog.namumap.com "cd ./www/namumap_blog/; git pull "
------------------------------------------------

8) 쉘에서 배포 스크립트 실행
$ ./srv_deploy/deploy.sh


 
[결과]
- 일단 아직은 잘 된다. ㅎㅎ git push 하고, 스크립트만 실행하면, 수정한 파일 git에서 알아서 관리해주니 쫌 편하다.
- rollback하기 좋게 소스폴더랑 업로드 폴더 구분해서, 소스폴더 전체를 clone하여 배포해보고 싶었으나, 음.... !^#%@^!@#&@^#
- 아주 쉽고, 완벽하게 wordpress 배포를 하는 무언가가 당연히 있을 것 같다. ^^
- 사용자가 많으면 배포과정에서 뭔가 오류가 생길 것 같은 불길한 이 느낌?
- 영감을 주신 몇몇 개발자 분들께 속으로 감사( 본인들은 모르고 계심 )

저렴한 도메인 가격 정리

기업체라면 모를까, 개인이 도메인을 유지하려면 비용도 무시 못하기에...

다음에 도메인 등록할 때 편하도록, 저렴한 도메인만 가격 정리해 봅니다. ( 2013-03-20 )
http://www.hosting.kr  - 1년 기준
  • .kr ( 9,800원 )
  • .com ( 9,800원 )
  • .net ( 8,800원 )
  • .org ( 9,800원 )
  • .info ( 9,800원 )
  • .biz ( 9,800원 )
  • .me ( 18,000원 )
  • .so ( 15,000원 )
  • .pe.kr ( 8,800원 )
  • .cn ( 7,700원 )
  • .be ( 11,550원 )
  • .at ( 28,050원 )
  • .de ( 11,550원 )
  • .es ( 14,300원 )
  • .us ( 14,300원 )

※ 신규와 기간연장의 차이로 부가세가 있고 없고 하네요. 해당 업체 사이트에서 직접 가격 확인하세요.



도메인 검색할 때 맨날 선택하기 귀찮아서 만들어봤습니다.
hosting.kr에서 수정하기 전까지는 검색할 때 유용할 것 같네요 ^^
도메인 명 : 

javascript+php, RSA 암호화

웹 취약성 검사에서 javascript + php 암호화 소스를 찾던 중, AES소스를 찾아 적용해 놓았으나
보안에 취약하여 RSA암호화로 변경해야한다는 보안팀의 권고(경고?)!!
살짝 넘어가보려고 AES암호화를 살짝 적용해 두었더니 딱 걸렸다. 에궁~~

그래서 다시 github를 검색.
몇가지 소스 테스트 하면서 잘 작동하는 소스 발견...

그누보드에 적용해보니 잘 동작합니다만,
RSA암호화 과정이 복잡하여 그런지 AES암호화 보다 시간이 많이 걸린다. 대략 3초.


일단 적용하고, 좀 더 빠르게 동작하는 소스가 있는지 찾아봐야겠다.
다행히 웹취약성 검사는 무사 통화 ^^

javascript+php, AES 암호화


웹취약성 검사시 폼 전송시 비밀번호 암호화를 하지 않아 문제가 되었다.

javascript와 php로 구성된 aes 암호화 소스를 찾던 중 많이 도움이 된 링크 발견.

 

http://www.movable-type.co.uk/scripts/aes-php.html

장문의 영어에 그 흔한 소스 다운로드 버튼도 못찾겠다.

 

그누보드에 대략 적용한 후, 테스트를 해보니 잘 작동한다.

여기저기 고치느라 다음번 그누보드 업데이트를 적용할 수 없을 것이라는게 단점이긴 하지만.. ㅋㅋ

 

테스트 하느라 다운받아두었던 소스를 압축해서 올려둡니다.

압축을 풀고  aes-js-php.html  파일을 열어서 소스를 확인하세요.

서브폴더에 설치한 워드프레스의 사이트 URL변경

한 계정에 다른 서비스도 설치해보려고 워드프레스를 서브 폴더(blog)에 설치했다.

http://도메인/blog/ 로 잘 작동하고 있으나, 도메인으로 직접 접속할 경우 ( http://도메인 ) 워드프레스로 연결하고 싶다.

검색해보니 관련 자료가 많아 적용해 본다.



1) blog 폴더의 index.php 파일을 다운받아 수정해서, 루트폴더에 올린다.

17line : require(‘./wp-blog-header.php’); => require(‘./blog/wp-blog-header.php’);







2) [설정]-[일반]에 “워드프레스 주소(URL)” 항목과 “사이트 주소(URL)”항목을 수정한다.

워드프레스 주소 (URL) => http://도메인/blog

사이트 주소 (URL) => http://도메인











3) [설정]-[고유주소]에서 “사용자정의 구조”로 아래와 같이 수정한다. ( 표시하고 싶은대로 바꾸면 된다. )









관련 글에는 .htaccess 파일을 수정해야 한다고 나와있는데, 폴더안에 파일이 없다.

일단 위 내용 수정 후, 문제없이 잘 동작하고 있다.

다른 서브폴더에도 내용이 잘 표시된다. 일단 만족…