http://stackoverflow.com/questions/23180650/how-to-solve-error-missing-secret-key-base-for-production-environment-rai 내용을 참조하여 작성한 글입니다.


1. 터미널에 다음 명령어를 치면 'cb4c969b453...' 와 같은 키 값이 생성된다. 이를 복사 해 두자.

$ RAILS_ENV=production rake secret


2. 다음 명령어로 /etc/profile 파일을 수정한다. (루트 권한으로 진행)

$ sudo vi /etc/profile


편집기가 열리면 제일 아랫 줄에 다음 내용을 추가한다.

export SECRET_KEY_BASE=(아까 복사해둔 키 값)


3. 일반 유저(루트 유저가 아닌)로 접속 후


$ vi ~/.bash_profile

$ vi ~/.bash_login

$ vi ~/.profile

위 세 파일 중 하나에 아까와 같이 제일 아랫 줄에 다음 내용을 추가한다.

export SECRET_KEY_BASE=(아까 복사해둔 키 값)


4. 다음 명령어들로 환경변수 설정이 되었는지 확인 가능하다. (둘 중에 아무 명령어나 써도 된다) 

$ printenv | grep SECRET_KEY_BASE

$ echo $SECRET_KEY_BASE


제대로 설정되었다면 아까 복사해둔 키 값이 출력된다. 


분명 배포 과정을 다 마무리 했는데도 해당 IP주소로 접속 할 수 없는 경우가 있다.

AWS EC2 인스턴스의 시큐리티 그룹 설정이 잘못 되었을 경우도 있지만(외부 접속 포트 제한) 

이 글에서는 서버가 실행되고 있는지 확인 후 재시작 하는 과정에 대해 알아보자.


만약 정상적으로 nignx 서버가 돌아가고 있다면

$ ps auxw | grep nginx

를 터미널에 입력했을 때 아래와 같이 총 3개의 프로세스가 잡혀야된다.




잡히지 않았다면 다음 명령어로 nginx를 재시작 해보자

$ sudo /opt/nginx/sbin/nginx



-참고사항

앞의 포스팅을 따라 Passenger gem을 통해 Nginx를 설치했다면, 일반적인 Nginx 서버 조작 명령어가 바로 먹히지 않는다.

예를 들어, 서버를 켜는 명령어의 경우 Nginx를 직접 설치했다면 터미널에서 다음의 명령어가 수행 가능하지만

$ sudo service nginx start 


앞의 포스팅에서 설명한 방법을 따르면 위 명령어를 입력 했을 때 'command not found' 라고 뜨게 되며 실행되지 않는다. 

대신 다음 명령어가 사용 가능하다.

$ sudo /opt/nginx/sbin/nginx


비슷하게 서버를 멈출 때는 다음 명령어를 사용한다.

$ sudo /opt/nginx/sbin/nginx -s stop




사진이 뜨지 않거나, css가 적용이 안되었을 때의 원인 중 하나는 수정사항 업데이트 후 precompile을 하지 않아서이다.


터미널에서

$ rake assets:precompile


명령어로 precompile을 수행 해 본다.


+ Recent posts