라즈베리파이 nginx 로그의 주기를 설정하기

서버에 설치된 데몬마다 로그를 생성하는데, 각 데몬별로 로그 주기를 정할 수 있는 곳이
/etc/logrotate.d이다.

1
2
$ cd /etc/logrotate.d
$ vi nginx

이중 nginx를 vi 에디터로 열어서 다음과 같이 수정하자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#/var/log/nginx/*.log {
# weekly
# missingok
# rotate 52
# compress
# delaycompress
# notifempty
# create 0640 www-data adm
# sharedscripts
# prerotate
# if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
# run-parts /etc/logrotate.d/httpd-prerotate; \
# fi \
# endscript
# postrotate
# invoke-rc.d nginx rotate >/dev/null 2>&1
# endscript
#}

/var/log/nginx/*.log {
daily
rotate 365
copytruncate
delaycompress
compress
dateext
notifempty
missingok
}

테스트

1
2
$ logrotate —force /etc/logrotate.d/nginx
$ cd /var/log/nginx

nginx 웹서버를 실행 후 생성되는 로그를 확인해보자.
로그 경로는 nginx 설정에 있다.

라즈베리파이 nginx, php-fpm, mysql(mariadb) 설치

php 개발환경을 세팅해보겠다.

nginx 설치

1
2
$ sudo apt-get install nginx
$ sudo service nginx restart

생각보다 설치와 실행이 너무 쉬워서 깜짝 놀랬다.
http://localhost로 접속하여 확인하자.

php7 설치

설치 준비

php7에 대한 정보가 없기 때문에 이를 추가해 주는 과정이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ sudo vi /etc/apt/sources.list

# 아래 줄을 추가한다.
deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

# 키서버를 등록해준다.
$ sudo gpg --keyserver pgpkeys.mit.edu --recv key CCD91D6111A06851

gpg: directory '/root/.gnupg' created
gpg: new configuration file '/root/.gnupg/gpg.conf' created
gpg: WARNING: options in '/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring '/root/.gnupg/secring.gpg' created
gpg: keyring '/root/.gnupg/pubring.gpg' created
gpg: "key" not a key ID: skipping
gpg: requesting key 11A06851 from hkp server pgpkeys.mit.edu
sudo gpg --armgpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 11A06851: public key "Mateusz Łukasik <mati75@linuxmint.pl>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
$ sudo gpg --armor --export CCD91D6111A06851 | sudo apt-key add -

업데이트한다.

1
$ sudo apt update -y

php7 설치 (php-fpm)

1
$ sudo apt install php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-gd php7.0-json php7.0-mcrypt php7.0-mysql php7.0-readline -y

nginx의 소켓 업데이트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ sudo apt-get install php7.0-fpm
$ sudo vi /etc/nginx/sites-available/default
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
#}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# index index.html index.php index.htm 역시 추가하도록 하자

nginx 설정이 수정되었으므로 서비스 재시작을 한다.

1
$ sudo service nginx restart

php 버전을 확인해본다.
버전 정보가 출력된다면 설치가 잘 된 것이다.

1
2
3
4
5
$ php -v
PHP 7.0.19-1~bpo8+1 (cli) (built: May 12 2017 20:05:12) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.19-1~bpo8+1, Copyright (c) 1999-2017, by Zend Technologies

mysql 설치 (mariadb)

역시 패키지부터 설치해주자.

1
$ sudo apt-get install mariadb-server

root 사용자 비밀번호를 설정하는 창이 나오면 입력하고 한 번 더 입력해준다.

그리고 3306 포트에 대한 방화벽을 열어준다.

1
2
3
$ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
$ sudo iptables-save

따로 재시작을 해 줄 필요도, 할 수도 없지만 iptables-save 명령어로 방화벽 정책이 저장된 것이다.

root 로 접속 확인 후
‘사용자명’@‘%’ 를 mysql.user 테이블에 추가하여 테이블 권한을 적절하게 주도록 한다.