====== ghost 설치 ====== 본 문서는 [[https://ghost.org|ghost]]를 설치하는 간단한 가이드를 기록합니다. 기존의 문서를 정리하는 2차 문서이며 시간이 지나면 유효하지 않을 수 있습니다. ===== node.js, npm ===== 설치 노트((http://support.ghost.org/installing-ghost-linux/))에 따르면 node.js는 ''0.10.X'' 버전을 지원하며 node.js는 0.10.36을 npm은 2.5.0 버전을 권장한다. 나는 node.js는 0.10.9를, npm은 2.7.3버전을 설치했다. 문제가 발생하면 추후 기술하도록 하겠습니다. node.js 0.10.9는 직접 소스 컴파일로 마련했습니다. [[http://nodejs.org/dist/v0.10.9/]]에서 소스를 받아 설치하면 됩니다. $ ./configure $ make # make install 이 정도로 설치는 끝납니다. npm은 [[https://www.npmjs.com/package/npm]]에서 권하는 방법으로 설치했습니다. # curl -L https://npmjs.org/install.sh | sh ''node -v'', ''npm -v''로 명령이 실행되는지 체크합니다. ===== ghost 소스 ===== ghost 라는 계정을 임시로 생성했습니다. # useradd -s /bin/bash -m ghost # passwd -l ghost ghost가 설치되는 path는 ''/media/storage/nodejs-deploy/ghost''가 된다. # cd /media/storage/nodejs-deploy # mkdir ghost # curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip # unzip ghost.zip -d ghost ===== ghost 설정 및 테스트 ====== # cd /media/storage/nodejs-deploy/ghost # chown ghost:ghost -R * # su ghost # 여기서 유저 'ghost'로 변경 $ npm install --production 여기까지 하면 ghost 설치가 끝납니다. 이제 ghost를 동작시킵니다. $ npm start --production 위 명령으로 ghost를 동작합니다. 최초 설정이므로 sqlite 데이터베이스를 기본적으로 만들어집니다. 또한 기본 설정을 바탕으로 config.js 설정 파일을 생성합니다. 현재 로컬에서만 접속 가능합니다. 기본 포트는 2368번입니다. ==== 설정 파일 ==== config.js 파일을 살짝 수정합니다. config 변수에 설정 내역이 기록되어 있습니다. 실전에서 쓰는 production, 개발을 위한 development 설정, 테스팅을 위한 testing 설정이 각각 마련되어 있습니다. 서버에서 돌릴 ghost이므로 production 설정을 사용합니다. production: { url: 'http://ghost.changwoo.pe.kr', mail: {}, database: { client: 'mysql', connection: { socket : '/var/run/mysqld/mysqld.sock', user : 'ghost', password : '', database : 'ghost', charset : 'utf8' } }, server: { host: '127.0.0.1', port: '2370' }, logging: false } 서버로는 기본인 sqlite에서 mysql로 변경했습니다. socket 설정 등등을 맞춰 줍니다. server의 host는 ''npm start --production'' 명령을 사용했을 경우, 외부에서 확인 할 때는 '0.0.0.0'으로 변경해야 접속이 될 겁니다. 하지만 이후 아파치에서 프록시를 이용해 접속할 것이므로 host는 최종적으로 127.0.0.1로 맞춰 두어도 됩니다. npm start --production 위 명렁으로 ghost가 동작할 때, * ''http://:2370'' 으로 접속해 봅니다. * 접속이 된다면 ''http://:2370/ghost''로 접속해서 관리자를 생성합니다. ===== supervisor를 사용한 자동 시작 ===== 아무래도 서버가 실행될 때 ghost도 자동으로 실행되는 것이 바람직합니다. ''npm start --production'' 명령을 매번 입력할 수는 없습니다. 그러므로 [[http://supervisord.org/ |supervisor]]를 이용해 자동화합니다. # sudo apt-get install supervisor # service supervisor start # vi /etc/supervisor/conf.d/ghost.conf [program:ghost] command = node /media/storage/nodejs-deploy/ghost/index.js directory = /media/storage/nodejs-deploy/ghost user = ghost autostart = true autorestart = true stdout_logfile = /var/log/supervisor/ghost.log stderr_logfile = /var/log/supervisor/ghost_err.log environment = NODE_ENV="production" ''supervisorctl start ghost'' 명령으로 ghost를 실행해 봅니다. ===== proxy 모듈로 아파치에서 연결 ===== # apt-get install libapache2-mod-proxy-html libxml2-dev # a2enmod proxy # a2enmod proxy_balancer # a2enmod proxy_http # a2enmod proxy_html # a2enmod xml2enc # a2enmod deflate # a2enmod headers # a2enmod proxy_connect # a2enmod proxy_ajp 아파치 가상호스트 설정 ProxyPreserveHost On ProxyPass / http://0.0.0.0:2370/ ProxyPassReverse / http://0.0.0.0:2370/ ServerName ghost.changwoo.pe.kr 혹시 작동되지 않는다면 도메인과 포트를 다시 한 번 잘 체크하여 봅니다. 기본 포트는 2368이지만 이 예에서는 2370으로 변경했음을 주지하세요. ===== 출처 및 참고 사이트 ===== * [[http://support.ghost.org/getting-started/ | Getting Started with Ghost]] * [[http://support.ghost.org/deploying-ghost | Deploing Ghost]] * [[http://support.ghost.org/config | Configuring Ghost]] * [[https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension | How To Use Apache HTTP Server As Reverse-Proxy Using mod_proxy Extension]]