참고: https://gist.github.com/ntakaaki/2891895
Maria DB를 설치 하고 싶었으나, 라즈비안에서 기본으로 Mysql이 들어 있어서 그냥 Mysql을 설치 하기로 한다. 어짜피 장난감인데 따질게 뭐 있겠나. 귀차니즘....
사실 파이에 Maria DB 설치에 대해서 대충 구글링 해보니 고생 할 것이 보여서 그냥 포기 했다.
4시간 컴파일 하고 6시간 trouble shooting 했다고 하니..흐......
(하나는 프랑스 이지만 설치하는 명령어 보니 동일하게 보인다. 혹시 시도 하고 싶으면 참고 해서 시도 하시라 ~)
https://plus.google.com/+KylePlatt/posts/8pmWKvbaGd2
http://raspbian-france.fr/installer-mariadb-raspbian/
mysql은 다음 명령어로 간단하게 설치 된다.
pi@raspberrypi ~/tmp $ sudo apt-cache search mysql pi@raspberrypi ~/tmp $ sudo apt-get install mysql-server-5.5
설치 완료 되면 제대로 되었는지 확인 한다.
pi@raspberrypi ~/tmp $ ps -ef | grep mysqld pi@raspberrypi ~/tmp $ which mysql
확인 되었다면 붙어 보도록 하자.
pi@raspberrypi ~/tmp $ mysql -u root -p
root 패스워드는 mysql 인스톨시에 설정한 패스워드 이다. character set 을 utf-8로 사용 할 것이므로, mysql 설정도 모두 utf-8 로 바꾸도록 한다. mysql 환경 설정 파일을 열어서 다음 내용을 추가 한다. charater set 바꾸는 김에 쿼리문 max size 도 같이 바꾼다.
pi@raspberrypi /etc/mysql $ sudo vi /etc/mysql/my.cnf [client] default-character-set = utf8 [mysqld] max_allowed_packet = 256M character-set-client-handshake=FALSE init_connect="SET collation_connection = utf8_general_ci" init_connect="SET NAMES utf8" character-set-server = utf8 collation-server = utf8_general_ci [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8
설정 변경 되고 나면 mysql restart 후 mysql에 접속해서 변경 사항 적용 되었는지 확인 한다.
pi@raspberrypi /etc/mysql $ sudo service mysql restart pi@raspberrypi ~/tmp $ mysql -u root -p
mysql> status -------------- mysql Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (armv7l) using readline 6.2 Connection id: 37 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.43-0+deb7u1 (Debian) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 2 min 17 sec mysql> show variables like '%char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
다음은 nginx 를 설치 하도록 하자. apache httpd는 사용하지 않고 nginx로만 사용할 예정이다.
nginx도 라즈비안에 기본으로 들어 있기 때문에 쉽게 설치 가능 하다.
pi@raspberrypi ~ $ sudo apt-cache search nginx pi@raspberrypi ~ $ sudo apt-get install nginx
설치 완료 되면 nginx가 존재하는지 체크 해 본다.
pi@raspberrypi ~ $ which nginx
nginx는 /etc/nginx/nginx.conf 가 환경 설정 파일인데, 내용을 보면 Virtual Host Configs 항목으로 site-enabled를 include 하고 있다. site-enabled 에 기본으로 존재하는 default 를 없애고 신규로 추가 하기로 한다.
소유하고 있는 도메인이 없기 때문에 그냥 hosts 파일에 dhkim94.org 로 임의 등록해서 사용하기로 한다.
pi@raspberrypi /etc/nginx/sites-available $ cd /etc/nginx/sites-available pi@raspberrypi /etc/nginx/sites-available $ sudo cp default dhkim94.org pi@raspberrypi /etc/nginx/sites-available $ sudo vi dhkim94.org
dhkim94.org 파일을 다음 내용으로 수정 한다.
server { root /data/www/dhkim94.org; server_name dhkim94.org; access_log /data/log/dhkim94.org/nginx/access_pipe; error_log /data/log/dhkim94.org/nginx/error_pipe; #location /doc/ { # alias /usr/share/doc/; # autoindex on; # allow 127.0.0.1; # allow ::1; # deny all; #} .... }
로그 파일 분리를 위해서 nginx 기본 설정도 변경 한다. access_log 와 error_log 를 주석 처리 한다.
pi@raspberrypi / $ cd /etc/nginx pi@raspberrypi /etc/nginx $ sudo cp nginx.conf nginx.conf.20150705 pi@raspberrypi /etc/nginx $ sudo vi nginx.conf
이젠 site-enabled 디렉토리에 기본 링크를 삭제 하고 금방 생성한 것의 링크를 추가 한다.
pi@raspberrypi /etc/nginx/sites-enabled $ cd /etc/nginx/sites-enabled pi@raspberrypi /etc/nginx/sites-enabled $ sudo unlink default pi@raspberrypi /etc/nginx/sites-enabled $ sudo ln -s /etc/nginx/sites-available/dhkim94.org dhkim94.org
환경 파일에 설정한 홈 디렉토리및 로그 디렉토리를 생성 한다.
pi@raspberrypi ~ $ cd / pi@raspberrypi / $ sudo mkdir data pi@raspberrypi / $ cd data pi@raspberrypi /data $ sudo mkdir www pi@raspberrypi /data $ cd www pi@raspberrypi /data/www $ sudo mkdir dhkim94.org pi@raspberrypi /data/www $ sudo chown -R www-data dhkim94.org pi@raspberrypi /data/www $ sudo chgrp -R www-data dhkim94.org pi@raspberrypi /data $ sudo mkdir log pi@raspberrypi /data $ cd log pi@raspberrypi /data/log $ sudo mkdir dhkim94.org pi@raspberrypi /data/log $ cd dhkim94.org pi@raspberrypi /data/log/dhkim94.org $ sudo mkdir nginx pi@raspberrypi /data/log/dhkim94.org $ sudo chown -R www-data nginx pi@raspberrypi /data/log/dhkim94.org $ sudo chgrp -R www-data nginx
이제 완료 되었으니 nginx 를 올리자.
pi@raspberrypi ~ $ sudo service nginx start pi@raspberrypi ~ $ ps -ef | grep nginx
만일 정상으로 올라가지 않으면 올라가지 않는 내용을 자세히 보여 주므로 당황하지 말고 읽어보고 수정 하면 된다. nginx는 apache httpd에 비해서 훨씬 간단하니 어려울건 없다.
추후 테스트를 위해서 index.html 파일을 하나 만들어 둔다.
pi@raspberrypi ~ $ cd /data/www/dhkim94.org pi@raspberrypi /data/www/dhkim94.org $ sudo vi index.html hello nginx
아! 잊지 말고 파이에 접속하는 PC의 host에 dhkim94.org 를 등록하도록 한다.
daeheekimui-MacBook-Pro-2:~ dhkim94$ sudo vi /etc/hosts # raspberrypi 192.168.1.180 dhkim94.org
또한 가짜 도메인이므로 파이의 /etc/hosts 에도 등록해 두자.
pi@raspberrypi ~ $ sudo vi /etc/hosts 127.0.0.1 dhkim94.org
nginx 설정이 모두 완료 되었고 daemon도 올라 갔으므로 정상으로 동작하는지 최종으로 외부에서 접속해 본다. hosts가 등록된 PC에서 다음과 같이 한다.(간단하게 웹브라우저로 붙어 봐도 된다.)
daeheekimui-MacBook-Pro-2:~ dhkim94$ telnet dhkim94.org 80 Trying 192.168.1.180... Connected to dhkim94.org. Escape character is '^]'. GET /index.html HTTP/1.0
GET /index.html HTTP/1.0 을 입력하고 엔터 두번 치면 index.html 내용을 볼 수 있다.
돌아가는 것을 확인 했다면 nginx 의 log에 rotate 를 걸도록 하자.
log rotate를 위해서 cronolog를 사용하기로 한다.
pi@raspberrypi ~ $ sudo apt-cache search cronolog pi@raspberrypi ~ $ sudo apt-get install cronolog
pi@raspberrypi ~ $ sudo vi /etc/init.d/nginx
다음 내용을 nginx 스크립트에 추가 한다.
logdir="/data/log/dhkim94.org/nginx" cronolog="/usr/bin/cronolog" cronolog_start() { if ! [ -p $logdir/access_pipe ]; then rm -f $logdir/access_pipe rm -f $logdir/error_pipe mkfifo $logdir/access_pipe mkfifo $logdir/error_pipe fi /bin/sh -c "/bin/cat $logdir/access_pipe | $cronolog $logdir/access.%Y%m%d &" /bin/sh -c "/bin/cat $logdir/error_pipe | $cronolog $logdir/error.%Y%m%d &" } # 다음은 start case 문 변경 case "$1" in start) echo -n "Starting $DESC: " test_nginx_config # Check if the ULIMIT is set in /etc/default/nginx if [ -n "$ULIMIT" ]; then # Set the ulimits ulimit $ULIMIT fi # cronolog_start 추가 cronolog_start || return 7 start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; ...
nignx 스크립트를 변경하고 nginx를 내렸다 올리자.
pi@raspberrypi ~ $ sudo service nginx stop pi@raspberrypi ~ $ sudo service nginx start
웹브라우저로 다시 접속 후 로그가 분리 되어 있는지 확인 한다.
여기까지 mysql, nginx는 설치 완료! 변경 사항이 필요하면 사용하면서 변경 하도록 한다.
댓글 없음:
댓글 쓰기