2016년 7월 23일 토요일

맥 미니를 웹 서버로 활용하기 까지...2nd

서버 모듈은 별도의 폴더에 맥 미니를 서버로 사용하기 위한 관련 설정내용들을 모두 각각의 폴더를 구성하여 저장하고 있다.

/Web 하위의 /Data 폴더에는 /Sites 폴더가 있으며 이 폴더 밑에 사이트별로 폴더를 구성하여 내용들을 구성할 수 있다.

** 참고
지난 1st 포스팅에서 맥 OS에서 숨겨진 폴더와 파일들을 보는 방법에 대하여 링크를 달았었는데...

터미널모드로 듀얼 판넬로 폴더와 파일을 살펴보고 파일 폴더 속성을 변경할 수 있는 어플이 있다. 비록 비주얼 명령어는 아니고 텍스트 기반의 어플이지만 무료로 필요한 기능들을 사용할 수 있으므로 추천한다.

mc (midnight commander)라는 어플이며
다운로드는 http://superuser.com/questions/128700/midnight-commander-mc-installer-for-mac-os-x 에서 가능하다.

설치 방법은 터미널에서 brew install mc

위의 화면은 mc 의 수행화면이다.
파일과 폴더의 속성(permission)을 손쉽게 바꿀 수 있어서 사용하기 편하다.

최신 버전은 2016 발표된 4.8.17 버전이다.

MAMP(무료버전) 과 MAMP Pro(유료버전)은 손쉽게 웹사이트 설정을 할 수 있어서 편하다.
MAMP Pro는 멀티 사이트를 구성할 수 있으며, DNS 설정도 할 수 있다. 가격은 약 US $60 수준이다. 이가격으로 구매하여 사용할 바에는 OS X의 서버 모듈을 $19.9에 구입하여 사용하는 것이 더 많은 기능을 제공한다.

2016년 7월 22일 금요일

맥 미니를 웹 서버로 활용하기 까지...1st

맥 미니를 구매한 후 사이트 구축을 이런 저런 툴로 개발하다가 중단하고, 또 이리 저리 미루고 수많은 시행착오를 겪으며 갈지자로 헤메다 급기야 이제야 다부지게 새로 시작할려고 한다.
용두사미가 되지 않아야 하는데...약간의 우려가 있지만 일단 시작하면 길이 열리겠지 하는 낙관적인 생각으로 다시 시작한다.

그리고 이 기록들은 후에 유사한 일이 재발할 때 기억을 되살릴 목적으로 본인 자신을 위해 기록을 남긴다.

그동안 시행착오를 간단히 정리하면...
1) 워드프레스를 사용하기 전에 줌라(Joomla)를 이용하여 개발하다가 중단...결국 걷어냄.
2) 맥 미니를 구입하고 서버 모듈을 설치한 후($19.9 지불)
  서버 운영에 필요한 갖가지 설정을 스터디 하며 시행착오를 겪고 워드 프레스를 설치한 후 초기 시작 페이지와 다양한 테마와 플러그인을 구성했다.
  업무에 바빠 잠시 손을 놓은 것이 1년여가 휙 지나가 버리고...
그동안 시행착오 겪은 지식들 모두 기억에서 사라져 가물가물하고...
3) 이제 다시 시작하려 이것 저것 손대다가 ...
실수해서 로그인이 되지 않는 혼란스런 상태가 되어...복구 방법을 몰라...결국은 되살리기 포기.

홧김에 설치된 MAC OS 10.9.5 Mavericks 를 최신 버전인 El Captain 10.11.1로 업그레이드 한 후, 웹사이트 다시 구축하려고 이 짓거리(?)를 하고 있음...

웹사이트 개발 요구 조건을 간단히 정리하면,

1) 워드 프레스를 이용
2) Mac OS X El Captain을 설치하여 구축한다.
3) Server 모듈을 활용? or Not 활용? 이것은 아직 확실히 결정하지 못하고 있다...
4) 하나의 서버(Dynamic IP)로 2개의 사이트를 구축한다. 즉 멀티 워드프레스를 구축한다.

위 4가지 사항이 기본적인 요구사항이다.

서버 모듈을 활용하면 여러가지로 다양한 기능들을 활용할 수 있어 맥 미니 활용도를 극대화할 수 있어 향후 이것 저것 기능을 추가하기가 좋은데...

사이트 운영만 하겠다고 생각한다면...
MAC OS 가 업그레이드 될 때마다 서버 모듈을 유상 업그레이드해야 하는 수고로움이 뒤 따름....

비용 문제보다도 메인트넌스 관점에서 기억에서 사라진 구축 관련 지식들을 다시 공부해야 하는 아주 불편한 일이 발생한다.

웹 사이트 구축하는 일로 먹고사는 상황이 아니고 내 사업에 필요한 사이트만 구축하면 되는 것이라...1회성 프로젝트라 기억을 오래하지 못한다.

어쨋거나...서버 모듈을 활용하면 보다 쉽게 기반 환경 셋팅이 쉽고 클라우드 자체 구축등 확장이 유연하고 쉽다.

서버 모듈 활용 여부는 진행하면서 결정하여야 겠다.

서버 모듈 활용 여부 결정엣 앞서 우선 반드시 해야 할 내용부터 정리하면...

0) 맥 미니 OS X 10.9.5를 El Captain 10.11.1로 업그레이드.
1) 아파치 서버 설치 - 맥 미니에 내장되어 있음(OS X El Captain에도 내장...?)
2) MySQL 설치
3) phpMyAdmin 설치

서버 모듈을 사용하지 않는다면, MAMP 를 이용하여 한방에 모두 설치가 가능하지만...
우선은 엘 캡틴을 설치한 후 디폴트로 내장된 아파치를 확인하여 본다.

그런데....MAMP를 검색하여 들여다 보니...
MAMP & MAMP Pro 가 있고...MAMP는 무료 사용이고 MAMP는 유료인 대신에 OS X의 서버모듈에 있는 몇몇 기능들을 사용할 수 있고...

현재 설치된 아파치 버전은...
$ apachectrl -v
Apache/2.2.29, Server Built Mar 19 2015
별도로 설치한 것인지 아니면 디폴트로 설치되어 있던 것인지는 확실하지 않다.

php 버전은...
$ php -v
PHP 5.4.45 (cli) (built: Apr 22 2016)
Zend Engine v2.4.0
이것도 디폴트 버전인지 추가로 업그레이드 한 것인지 기억이 없다.

설치된 폴더들을 찾으려고 하니...명령어를 몰러 답답하다. 검색해서...
/private/etc/apache2 에 설치되어 있다...

* 참고
/private - OS X에서 특정 루트 수준의 디렉토리들은 실제로 /private에 위치하는 디렉토리들을 가리키는 symbolic 링크들이다. 이러한 예에는 /cores, /etc, 그리고 /var들이 있으며, 이들은 각각 /private/cores, /private/etc, 그리고 /private/var와 연결되어 있다. /private은 또한 특정 주변 장치들의 드라이버들을 저장하고 있는 디렉토리들을 포함하고 있다.

이외에도 보이지 않는 폴더에 대한 상세한 정보는 아래를 참고한다.
http://appletree.or.kr/forum/viewtopic.php?id=91

그렇지만 서버 모듈을 설치하면 관련 필요한 내용들을 /Library/Server 폴더에 구성하고 설정한다.
즉 서버 모듈은 웹 서비스와 관련된 아파치, php 구성등의 관련 정보는 모두 /Library/Server/Web 및에 구성하게 된다.

Web 폴더 하위에는 /Config 와 /Data 폴더가 있으며,
아파치와 php 정보는 /Config 밑에 저장된다.
사이트에 필요한 관련 파일들은 /Data 밑에 폴더이름을 정하여 구성된다.

오늘은 여기까지...

** 추가 내용
Server 모듈이 엘캐피탄에서 5.0.4 버전으로 업데이트 되면서...
뒤늦게 알게 된 사실이 "OS X Server 5.0 부터 시스템 버전에 무관하게 작동한다. OS X Yosemite 10.10.5 와 OS X El Capitan 10.11이 설치된 맥에서 동일한 버전의 Server 앱을 사용할 수 있다" 이다.

즉 서버 모듈 5.0 부터 OS X 시스템 버전과 상관없이 사용이 가능하게 되었다는.
그동안에는 시스템 OS가 업그레이드 되면 서버모듈을 사용할 수가 없어서 ...추가 구입해야 했었는데, 이후 추가 구입없이도 5.0 버전으로 계속 사용이 가능하다...즉 5.0.4 버전으로 시스템 업그레이드 되어도 함께 업그레이드하지 않아도 사용이 가능하게 되었다...

그럼 구매하여 활용하는 것도 좋겠다는 생각이 든다.


2015년 1월 2일 금요일

워드프레스에서 자식 테마 만들기 - 테마 수정하여 활용하는 방법

워드프레스의 강점은 초보자도 조금(?) 노력하면 웹페이지나 블로그를 만들어 서비스할 수 있습니다.

그런데 막상 시작해보니...홈페이지 개발과는 관계가 없는 비즈니스를 하는 본인에게는 참 쉽지 않은 일이었습니다. 막상 다른 할일도 많아 머리도 바쁘고 성질이 급해 차분히 그 기능을 익히기 쉽지 않았습니다.

어쨋거나 무료 테마를 하나 정하여 그 테마를 활용하여 나의 콘텐츠를 올려 서비스 하려고 할 때 그 무료 테마를 나의 입맛에 맞게 수정하고 싶을 때가 반드시 생기게 됩니다.
이럴때는 그 테마의 자식 테마를 만들어 서비스하는 방법이 좋습니다.
그렇지 않고 그 테마의 원본 파일(css/php 파일)을 직접수정하여 사용하게 되면, 후에 그 테마를 업그레이드 하여 업데이트 버전이 발표되었을 때, 그 테마의 업데이트된 버전을 설치하면 기존의 파일들 위에 새로 업데이트된 파일들을 over-write 해버리기 때문에 수정했던 파일의 내용들이 모두 사라져 버리는 불상사가 발생합니다. 그간 작업했던 내용들이 모두 없어져 버리는 황당한 사건이 벌어집니다.

그렇다고 업데이트된 테마를 사용하지 않고 옛날 버전의 테마를 그대로 사용하게 되면 외부에서 해킹이나 보안의 문제등이 발생할 수 있으므로 권장하지 않습니다.

그러므로 반드시 자식 테마를 만들어 그 자식 테마의 폴더에 수정하는 내용들을 저장하여 사용할 일입니다.
자식 테마를 사용하면 원본 테마가 업데이트되어 설치되더라도 자식 테마의 내용들은 그대로 반영됩니다. 새롭게 된 테마를 그대로 사용하면서 내가 수정하여 커스트마이징한 내용도 그대로 반영하게 되는 것이니...당연히 그런 방법으로 사용해야 하겠습니다.

자식 테마를 만드는 방법은 의외로 간단합니다. 만든후에 적용되는 개념만 몇가지 이해하면 됩니다.
자식 테마를 만들때 폴더를 새로이 만들어 그 폴더안에 넣어둘 파일은 최소한 style.css 파일 하나만 있어도 됩니다. 필요할 때 추가하면 됩니다.

이 style.css 파일안에 구성할 내용은 아래와 같습니다.

/*
Theme Name: AAA-child
Version: 1.0
Description: A child theme of AAA
Template: AAA
*/

@import url("../AAA/style.css");

새로이 만드는 폴더 이름은 편리하게 아무 이름을 붙여도 좋습니다.
편의상 테마 이름 뒤에 -child 를 많이 붙입니다.
예를 들면 'AAA' 라는 이름을 가진 테마를 사용한다고 할 때 자식 테마를 넣어둘 폴더 이름은 'AAA-child' 라는 이름을 정하는 것입니다.
이러한 과정도 잘 모르겠고 그냥 간단히 자동으로 만들고 싶으면 자식 테마를 만드는 플러그인을 설치하여 사용하면 됩니다. 
본인의 경우에는 'Child Themify' 라는 플러그인을 설치하여 작업합니다.
설치한 후 의 플러그인은 아래를 참조하십시요.

즉 원본 테마를 활성화한후 그 테마를 클릭하면 화면 하단에 Child 테마를 만들 수 있는 버튼이 추가되어 보입니다. 아래를 참조하십시요.
화면 하단에 Create a Child theme 라는 버튼이 나타난 것을 확인 할 수 있습니다.
이 버튼을 누르게 되면 자식 테마 이름을 지정하는 화면이 나타나고 이 항목에 위에서 설명한 대로 테마이름-child를 덧붙여 지정해주면 관련된 내용을 알아서 모두 만들어 그 폴더에 style.css 파일까지 생성하여 줍니다. 간단하게 자식 테마를 만들수 있습니다.

테마 대시보드에 자식 테마가 추가된 것을 확인 하실 수 있습니다.

맥 미니 웹서버 활용 - 워드프레스에 나눔폰트 사용하기

워드프레스에 나눔(Nanum) 폰트를 사용하는 방법은 두가지가 있습니다.
맥 미니에 워드프레스를 설치하여 사용한다는 전제를 가지고 설명하겠습니다.

첫번째는 맥 미니의 시스템에 나눔 폰트를 맥 시스템의 폰트 설치를 이용하여 웹폰트 부분에 나눔폰트를 설치하여 이 웹폰트로 설치된 나눔폰트를 워드프레스에서 지정하여 보여주는 방법이 있습니다. 초보자에게는 설치부터 조금 복잡합니다.
서버에 부하가 걸리면 당연히 폰트로 인한 웹페이지 보여주는 속도가 문제가 될 수 있습니다.

두번째는 구글에서 제공하는 웹폰트중의 나눔폰트를 불러다 워드프레스에서 서비스하는 방법입니다. 첫번째 보다 훨씬 간단하고 부하가 크게 걸리지 않습니다.
그리고 두번째의 방법은 또 워드프레스에 나눔폰트 서비스 플러그인을 설치하면 어떤 테마를 사용하여도 나눔폰트를 활성화시킨 테마에서 작동시킬 수 있습니다.
플러그인 설치 한번으로 끝나는 것입니다.

제가 사용하는 나눔폰트 플러그인은 '한글폰트 나눔고딕 - 구글' 입니다.
위의 화면은 플러그인을 설치한 화면입니다.
설치하고 활성화(Activate) 시키는 것으로 끝입니다. 간단합니다.
이후에는 어떤 테마를 설치하여 활성화시키던지 위의 플러그인을 활성화시킨다면 적용이 됩니다.



위의 화면은 설치한 '한글폰트 나눔고딕 - 구글' 플러그인의 내용을 확인한 화면입니다.
캡처한 화면에는 보이지 않지만 아래로 스크롤 해 보면 아래와 같이 나눔폰트가 지정된 부분을 확인할 수 있습니다.




2015년 1월 1일 목요일

워드 프레스에서 Page(페이지)와 글(Post)의 차이 (Page vs Post)

워드프레스로 홈페이지를 만들고 있습니다.
서버는 맥 미니를 사용하고 있는데, 이에 대한 방법은 홈페이지를 만들면서 두서없이 작업하는 순서와 상관없이 방법을 향후에 기억하기 위하여 내용을 정리하려고 합니다.

그런 의미에서 위의 제목에 대한 내용도 워드프레스를 사용하여 테마를 선택하고 만들다 보니 헷갈려서... 검색을 한 결과를 아래에 복사해서 가져왔습니다.
원문의 출처를 밝혀야 하겠지만...어느 곳에서 복사했는지 기억이 나지 않아 생략하렵니다.
그리고 내용은 우리말로 요약하려고 합니다.

영어 전문서적 원서를 두권이나 번역하여 출판하며 내 자신도 이런 경우가 있겠다 싶은 경우가 많지만, 내 자신도 다른 사람이 번역한 내용을 이해하기 어려워 헷갈리는 경우가 흔합니다.
대표적인 것 중의 하나가 '글'과 '페이지' 입니다. 영어로 post 와 page 입니다.
이 두 콘텐츠가 위젯과 함께 사용될 때 헷갈림이 최고에 도달합니다.
그래서 검색을 해 보았고...안타깝지만 영어로 된 내용을 찾았습니다.
더 검색하면 국내에서 포스팅한 내용도 있을 것 같았지만...나중에 찾아서 이 포스트에서 빠진 내용은 추가하려고 합니다.

--------------------------------------------
워드프레스 초보자들이 겪는 헷갈리는 것중의 하나가 '글'과 '페이지'입니다. 영어로 post와 page 입니다. 디폴트로 워드프레스는 두 종류의 콘텐츠가 있는데 post와 page - 한글판 워드프레스를 설치하면 글과 페이지로 번역되어 있습니다 - 입니다. 초보자라면 아마도 이 둘의 차이가 무엇인지 궁금해집니다. 대시보드에서 유사한 필드를 가지고 있습니다. 웹사이트에서도 동일한 모습으로 보입니다. 
왜 두가지가 필요한지, 언제 포스트를 사용해야 하는지 살펴보겠습니다.
이 이슈를 가지고 워드 프레스에서 posts vs pages 사이의 차이점을 설명하겠습니다.

Posts / 글

워드프레스를 블로그로 사용하고 있다면, 사이트의 콘텐츠의 대부분은 포스트를 사용하여 끝맺음을 하게 됩니다. 포스트는 블로그 홈페이지에서 연대기를 역방향으로 나열한 콘텐츠 기록물입니다. 역방향으로 나열된 순서로 인하여 포스트는 시간의 의미를 가지고 있습니다. 보다 오래된 포스트는 년과 월에 기초하여 기록물로 저장됩니다. 포스트가 오래될수록, 사용자는 그것을 찾기 위하여 더 깊이 과거의 내용물을 찾아 들어가야 합니다. 포스트카테고리태그에 기초하여 조직화 할 수 있는 옵션을 가지고 있습니다.
워드프레스의 포스트는 일자와 시간으로 퍼블리시 되기 때문에 RSS 피드를 통하여 제공될 수 있습니다.
이러한 기능으로 웹사이트에 등록한 독자들은 RSS 피드를 통하여 대부분의 최근의 포스트를 받아 볼 수 있습니다. 블로거들은 RSS 피드를 사용하여 등록한 독자들에게 Aweber 이나 MailChimp 처럼 이메일로 전달해 줄수 있기 때문입니다. 서명한 독자들에게 매일 / 주간 뉴스레터를 만들어 보내줄 수 있습니다. 포스트의 즉시성은 매우 소셜한 특징이 있는 셈입니다. Twitter,FacebookGoogle+LinkedIn 같은 소셜 매디어 네트웍을 이용하여 포스한 내용을 독자들과 공유할 수 있는 것입니다.
포스트는 대화가 가능한 통로를 제공합니다. 특정의 주제에 사용자가 코멘트를 달 수 있는 기능도 가지고 있습니다. 이러한 기능을 차단하기를 원한다면 설정>토론 끄기를 통하여 설정하면 됩니다.

페이지 / Pages

페이지는 'about' 과 같은 페이지, 프라이버시 정책, 법률 포기 각서와 같은 '일회성' 성질의 정적인 콘텐츠를 의미한다. 워드프레스 데이터베이스는 페이지의 실린 날자를 저장하지만, 시간개념이 없는 콘텐츠 입니다. 예를 들어, about 페이지는 기한이 없다고 생각합니다. 되돌아가서 업데이트할 수 있습니다만, 2012년 about 페이지 와 2013년 about 페이지등으로 저장할 수 없습니다. 시간과 날짜가 페이지에 연결되어 있지 않기 때문에 기본적으로 RSS 피드에 속하지 않습니다.
페이지는 대부분의 경우에 소셜의 의미가 없습니다. 그래서 소셜 공유 버튼이나 코멘트를 포함하지 않습니다.    
사용자가 contact 페이지나 법적 권한 페이지에 코멘트/덧글을 다는 것을 원치 않을 때 사요합니다. 대부분의 경우에 다른 사람이 귀하의 프라이버시 정책등을 트윗하지 않기를 원하는 경우에 해당합니다.
포스트와 다르게 페이지는 계층성이 있습니다. 예를 들어, 페이지 안에 서브 페이지를 가질 수 있습니다. 이러한 주요 사례는 Blueprint page 입니다. 이러한 특성은 페이지를 서로 묶어 조직화하고 또 맞춤형 템플리트를 적용할 수 있도록 해줍니다.

워드프레스는 테마를 사용하여 디폴트로 맞춤형 페이지 템플리트를 만들수 있는 기능을 가지고 있습니다. 개발자가 필요할 때 각 페이지의 모양을 맞춤형으로 만들 수 있는 기능입니다. 대부분의 테마는 포스트와 페이지가 동일하게 보입니다. 그렇지만 페이지를 사용하여 겔러리 페이지나 시작페이지를 생성할 때, 이러한 맞춤페이지 템플리트 기능은 아주 편리합니다.
페이지는 또 숫자 값을 할당하여 페이지의 순서를 조정할 수 있도록 해주는 Order 라 부르는 원시적인 기능을 가지고 있습니다. 그러나 이러한 기능은 Simple Page Ordering 같이 플러그인으로 확장되어 페이지의 순서를 드레그 드롭으로 조정이 가능합니다.

주) 메뉴를 작성하기 위하여는 페이지를 생성하여 이 페이지에 메뉴 속성을 지정하면 됩니다.

글/포스트/Posts vs. 페이지/Pages (Key Differences)

The differences we list below definitely have exceptions. You can use plugins or code snippets to extend the functionality of both content types. Below is the list of key differences by default.

  • Posts are timely vs. Pages are timeless.
  • Posts are social vs. Pages are NOT.
  • Posts can be categorized vs. Pages are hierarchical.
  • Posts are included in RSS feed vs. Pages are not.
  • Pages have custom template feature vs. Posts do not.

Frequently Asked Questions

How Many Posts and/or Pages can I have?
You can have as many posts and/or pages that you want. There is no limit on the number of posts or pages that can be created.
Are there any SEO advantages to one or the other?
Search engines like content to be organized. Timeless content is considered to be more important however there is a lot of priority given to latest timely content. In short, there may be a difference, but as a beginner you do not need to worry about it. Focus on making your site organized for the user.