라즈베리파이 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 테이블에 추가하여 테이블 권한을 적절하게 주도록 한다.