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 파일을 수정해야 한다고 나와있는데, 폴더안에 파일이 없다.

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

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