개발자/Raspberry Pi3

라즈베리 파이3 에 APM(Apache + PHP + MySQL)을 설치

지구빵집 2017. 6. 6. 14:45
반응형


IT교육과 메이커 프로젝트에 유용한 자료를 보내드립니다. 주위분들에게도 알려주세요.


데이터베이스를 이용한 웹 서버의 표준 구성이라고 할 수 있는 APM(Apache + PHP + MySQL)을 설치해본다. 웹을 이용하여 MySQL을 이용할 수 있는 툴인 phpMyAdmin 도 설치하도록 한다

여기서 무엇보다 중요한 것은 설치 순서다. Apache, MySQL, PHP, phpMyAdmin 순서대로 설치한다.

한 가지 중요한 것은 서버 설치나 DB 설치중에 입력하는 암호는 반드시 기억해 두어야 한다. 그래야만 서버 프로그램을 실행하거나 데이터 베이스에 접근할 때 제대로 실행할 수 있다. 아래 설치시에는 모든 패스워드를 root 로 하였다.

먼저 apt-get 을 업데이트 해준다. (미러사이트를 최신버전으로 업데이트를 하기 위함이다.)


1
2
3
$sudo apt-get update
$sudo apt-get upgrade
 

업데이트와 업그레이드가 완료되었다.

1) Apache 웹 서버 설치

apt-get 을 이용해 Apache 를 간단히 설치할 수 있다.

1
$sudo apt-get install apache2

디스크 스페이스를 사용하겠다는 물음에 ‘Y’ 를 선택하고 Enter 키를 누른다. 설치가 계속 진행된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pi@raspberrypi ~ $ sudo apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap ssl-cert
Suggested packages:
  apache2-doc apache2-suexec apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,360 kB of archives.
After this operation, 4,936 kB of additional disk space will be used.
Do you want to continue [Y/n]?
 

아래는 설치할때 나오는 메세지  화면을 나타낸다.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
pi@raspberrypi:~ $ sudo apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 95 not upgraded.
Need to get 1,759 kB of archives.
After this operation, 5,258 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libapr1 armhf 1.5.1-3 [77.1 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libaprutil1 armhf 1.5.4-1 [75.9 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main libaprutil1-dbd-sqlite3 armhf 1.5.4-1 [17.7 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main libaprutil1-ldap armhf 1.5.4-1 [16.7 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main liblua5.1-0 armhf 5.1.5-7.1 [83.7 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main apache2-bin armhf 2.4.10-10+deb8u8 [901 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main apache2-utils armhf 2.4.10-10+deb8u8 [195 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main apache2-data all 2.4.10-10+deb8u8 [162 kB]
Get:9 http://mirrordirector.raspbian.org/raspbian/ jessie/main apache2 armhf 2.4.10-10+deb8u8 [208 kB]
Get:10 http://mirrordirector.raspbian.org/raspbian/ jessie/main ssl-cert all 1.0.35 [20.9 kB]
Fetched 1,759 kB in 7s (245 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libapr1:armhf.
(Reading database ... 113276 files and directories currently installed.)
Preparing to unpack .../libapr1_1.5.1-3_armhf.deb ...
Unpacking libapr1:armhf (1.5.1-3) ...
Selecting previously unselected package libaprutil1:armhf.
Preparing to unpack .../libaprutil1_1.5.4-1_armhf.deb ...
Unpacking libaprutil1:armhf (1.5.4-1) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3:armhf.
Preparing to unpack .../libaprutil1-dbd-sqlite3_1.5.4-1_armhf.deb ...
Unpacking libaprutil1-dbd-sqlite3:armhf (1.5.4-1) ...
Selecting previously unselected package libaprutil1-ldap:armhf.
Preparing to unpack .../libaprutil1-ldap_1.5.4-1_armhf.deb ...
Unpacking libaprutil1-ldap:armhf (1.5.4-1) ...
Selecting previously unselected package liblua5.1-0:armhf.
Preparing to unpack .../liblua5.1-0_5.1.5-7.1_armhf.deb ...
Unpacking liblua5.1-0:armhf (5.1.5-7.1) ...
Selecting previously unselected package apache2-bin.
Preparing to unpack .../apache2-bin_2.4.10-10+deb8u8_armhf.deb ...
Unpacking apache2-bin (2.4.10-10+deb8u8) ...
Selecting previously unselected package apache2-utils.
Preparing to unpack .../apache2-utils_2.4.10-10+deb8u8_armhf.deb ...
Unpacking apache2-utils (2.4.10-10+deb8u8) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../apache2-data_2.4.10-10+deb8u8_all.deb ...
Unpacking apache2-data (2.4.10-10+deb8u8) ...
Selecting previously unselected package apache2.
Preparing to unpack .../apache2_2.4.10-10+deb8u8_armhf.deb ...
Unpacking apache2 (2.4.10-10+deb8u8) ...
Selecting previously unselected package ssl-cert.
Preparing to unpack .../ssl-cert_1.0.35_all.deb ...
Unpacking ssl-cert (1.0.35) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u6) ...
Setting up libapr1:armhf (1.5.1-3) ...
Setting up libaprutil1:armhf (1.5.4-1) ...
Setting up libaprutil1-dbd-sqlite3:armhf (1.5.4-1) ...
Setting up libaprutil1-ldap:armhf (1.5.4-1) ...
Setting up liblua5.1-0:armhf (5.1.5-7.1) ...
Setting up apache2-bin (2.4.10-10+deb8u8) ...
Setting up apache2-utils (2.4.10-10+deb8u8) ...
Setting up apache2-data (2.4.10-10+deb8u8) ...
Setting up apache2 (2.4.10-10+deb8u8) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Setting up ssl-cert (1.0.35) ...
Processing triggers for libc-bin (2.19-18+deb8u7) ...
Processing triggers for systemd (215-17+deb8u6) ...
pi@raspberrypi:~ $ 
cs


라즈베리 파이 3에서는 문서 루트가 /var/www/html 로 바뀌었다. 이것을 알고 설정하면 되겠다.

pi유저로 원할한 작업을 위해 “pi” 유저가 웹 서버의 문서 폴더인 “/var/www/” 폴더 및 파일 등의 소유 권한을 갖도록 소유권 설정을 한다.


1
2
3
 
$sudo chown pi -/var/www/html
 
cs

 

라즈베리 파이가 다음 기동할 때부터 apache2 를 자동적으로 기동하도록 설정한다.


1
2
3
 
$sudo update-rc.d apache2 defaults
 
cs

 

이 상태에서 크롬 브라우저에서 라즈베리 아이피 주소를 접속하면 아래와 같은 화면이 나온다. 제대로 설치가 된 것이다.


2) MySQL 설치

아래와 같은 명령어로 설치한다.

1
2
3
 
$sudo apt-get install mysql-server mysql-client libmysqlclient-dev
 
cs

설치를 시작하면 99.3M의 디스크가 필요하다고 하는데 ‘Y’를 누르고 계속 진행하자. 아래는 설치가 진행되면서 화면에 나오는 메세지를 보여준다. 볼 필요는 없고 아래 설명을 본다.

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
pi@raspberrypi:~ $ sudo apt-get install mysql-server mysql-client libmysqlclient-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl mysql-client-5.5 mysql-common mysql-server-5.5
  mysql-server-core-5.5
Suggested packages:
  libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl mailx tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient-dev libmysqlclient18 libterm-readkey-perl mysql-client mysql-client-5.5
  mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5
0 upgraded, 12 newly installed, 0 to remove and 95 not upgraded.
Need to get 9,284 kB of archives.
After this operation, 94.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-common all 5.5.54-0+deb8u1 [81.2 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libmysqlclient18 armhf 5.5.54-0+deb8u1 [622 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main libdbi-perl armhf 1.631-3+b1 [807 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main libdbd-mysql-perl armhf 4.028-2+deb8u2 [113 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main libterm-readkey-perl armhf 2.32-1+b2 [26.1 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-client-5.5 armhf 5.5.54-0+deb8u1 [1,453 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-server-core-5.5 armhf 5.5.54-0+deb8u1 [3,462 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-server-5.5 armhf 5.5.54-0+deb8u1 [1,600 kB]
Get:9 http://mirrordirector.raspbian.org/raspbian/ jessie/main libhtml-template-perl all 2.95-1 [66.8 kB]
Get:10 http://mirrordirector.raspbian.org/raspbian/ jessie/main libmysqlclient-dev armhf 5.5.54-0+deb8u1 [894 kB]
Get:11 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-client all 5.5.54-0+deb8u1 [79.3 kB]
Get:12 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-server all 5.5.54-0+deb8u1 [79.5 kB]
Fetched 9,284 kB in 7s (1,312 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 113964 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.5.54-0+deb8u1_all.deb ...
Unpacking mysql-common (5.5.54-0+deb8u1) ...
Selecting previously unselected package libmysqlclient18:armhf.
Preparing to unpack .../libmysqlclient18_5.5.54-0+deb8u1_armhf.deb ...
Unpacking libmysqlclient18:armhf (5.5.54-0+deb8u1) ...
Selecting previously unselected package libdbi-perl.
Preparing to unpack .../libdbi-perl_1.631-3+b1_armhf.deb ...
Unpacking libdbi-perl (1.631-3+b1) ...
Selecting previously unselected package libdbd-mysql-perl.
Preparing to unpack .../libdbd-mysql-perl_4.028-2+deb8u2_armhf.deb ...
Unpacking libdbd-mysql-perl (4.028-2+deb8u2) ...
Selecting previously unselected package libterm-readkey-perl.
Preparing to unpack .../libterm-readkey-perl_2.32-1+b2_armhf.deb ...
Unpacking libterm-readkey-perl (2.32-1+b2) ...
Selecting previously unselected package mysql-client-5.5.
Preparing to unpack .../mysql-client-5.5_5.5.54-0+deb8u1_armhf.deb ...
Unpacking mysql-client-5.5 (5.5.54-0+deb8u1) ...
Selecting previously unselected package mysql-server-core-5.5.
Preparing to unpack .../mysql-server-core-5.5_5.5.54-0+deb8u1_armhf.deb ...
Unpacking mysql-server-core-5.5 (5.5.54-0+deb8u1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up mysql-common (5.5.54-0+deb8u1) ...
Selecting previously unselected package mysql-server-5.5.
(Reading database ... 114321 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.5_5.5.54-0+deb8u1_armhf.deb ...
Unpacking mysql-server-5.5 (5.5.54-0+deb8u1) ...
Selecting previously unselected package libhtml-template-perl.
Preparing to unpack .../libhtml-template-perl_2.95-1_all.deb ...
Unpacking libhtml-template-perl (2.95-1) ...
Selecting previously unselected package libmysqlclient-dev.
Preparing to unpack .../libmysqlclient-dev_5.5.54-0+deb8u1_armhf.deb ...
Unpacking libmysqlclient-dev (5.5.54-0+deb8u1) ...
Selecting previously unselected package mysql-client.
Preparing to unpack .../mysql-client_5.5.54-0+deb8u1_all.deb ...
Unpacking mysql-client (5.5.54-0+deb8u1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.5.54-0+deb8u1_all.deb ...
Unpacking mysql-server (5.5.54-0+deb8u1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u6) ...
Setting up libmysqlclient18:armhf (5.5.54-0+deb8u1) ...
Setting up libdbi-perl (1.631-3+b1) ...
Setting up libdbd-mysql-perl (4.028-2+deb8u2) ...
Setting up libterm-readkey-perl (2.32-1+b2) ...
Setting up mysql-client-5.5 (5.5.54-0+deb8u1) ...
Setting up mysql-server-core-5.5 (5.5.54-0+deb8u1) ...
Setting up mysql-server-5.5 (5.5.54-0+deb8u1) ...
170606  5:11:26 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
170606  5:11:26 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
170606  5:11:26 [Note] /usr/sbin/mysqld (mysqld 5.5.54-0+deb8u1) starting as process 19266 ...
Setting up libhtml-template-perl (2.95-1) ...
Setting up libmysqlclient-dev (5.5.54-0+deb8u1) ...
Setting up mysql-client (5.5.54-0+deb8u1) ...
Setting up mysql-server (5.5.54-0+deb8u1) ...
Processing triggers for libc-bin (2.19-18+deb8u7) ...
Processing triggers for systemd (215-17+deb8u6) ...
pi@raspberrypi:~ $
 
cs

진행이 되면 Package configuration 화면이 나온다. 두 번 정도 패스워드를 입력하는 화면에서 패스워드를 입력하고 잘 기억한다. Root 유저에 대한 암호를 여기서는 root 로 암호를 입력한다


외부에서도 MySQL에 접속할 수 있도록 다음의 명령어를 이용하여 “my.conf” 파일을 열고, 다음의 항목과 같이 코멘트 아웃(앞에 #을 입력한다)하여 비활성화 시킨다.

$sudo nano /etc/mysql/my.cnf  문서를 편집기로 연다.

1
2
3
 
$sudo nano /etc/mysql/my.cnf
 
cs

60 라인 근처의

#

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.

bind-address           = 127.0.0.1

#

위 문장에서 bind-address 문장의 앞에 #을 추가한다.

#bind-address = 127.0.0.1

Ctrl-x (컨트롤 키 ctrl 키와 x 키를 동시에 누르는 기능)를 눌러 저장하겠냐는 물음에 y 를 누르고, 파일 이름은 동일하니 enter 키를 누르고 빠져나온다.

여기서 아래 명령어를 입력하여 잘 설치되었는지 버전을 확인해보자. 아래처럼 버전이 나오면 설치가 잘 된것이다. 설치날자는 2017년 6월 6일 현충일 2시 16분이다.

1
2
3
4
5
 
pi@raspberrypi:~ $ mysql --version
mysql  Ver 14.14 Distrib 5.5.54for debian-linux-gnu (armv7l) using readline 6.3
pi@raspberrypi:~ $
 
cs


3)PHP 설치

php는 이래 명명어로 설치한다.

1
2
3
 
pi@raspberrypi:~ $ sudo apt-get install php5
 
cs


설치시 메모리 공간이 필요하다고 메시지가 나오면 y를 누르고 설치를 계속한다. 아래는 설치하면서 나오는 메세지를 보여준다. 바로 아래로 넘어가자.


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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
pi@raspberrypi:~ $ sudo apt-get install php5
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libapache2-mod-php5 libonig2 libperl4-corelibs-perl libqdbm14 lsof php5-cli php5-common php5-json php5-readline
Suggested packages:
  php-pear php5-user-cache
The following NEW packages will be installed:
  libapache2-mod-php5 libonig2 libperl4-corelibs-perl libqdbm14 lsof php5 php5-cli php5-common php5-json php5-readline
0 upgraded, 10 newly installed, 0 to remove and 95 not upgraded.
Need to get 5,087 kB of archives.
After this operation, 18.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libonig2 armhf 5.9.5-3.2 [101 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libperl4-corelibs-perl all 0.003-1 [43.6 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main lsof armhf 4.86+dfsg-1 [321 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main libqdbm14 armhf 1.8.78-5+b1 [86.0 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-common armhf 5.6.30+dfsg-0+deb8u1 [721 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-json armhf 1.3.6-1 [16.9 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-cli armhf 5.6.30+dfsg-0+deb8u1 [1,911 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5 all 5.6.30+dfsg-0+deb8u1 [1,318 B]
Get:9 http://mirrordirector.raspbian.org/raspbian/ jessie/main libapache2-mod-php5 armhf 5.6.30+dfsg-0+deb8u1 [1,874 kB]
Get:10 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-readline armhf 5.6.30+dfsg-0+deb8u1 [11.2 kB]
Fetched 5,087 kB in 4s (1,027 kB/s)
Selecting previously unselected package libonig2:armhf.
(Reading database ... 114497 files and directories currently installed.)
Preparing to unpack .../libonig2_5.9.5-3.2_armhf.deb ...
Unpacking libonig2:armhf (5.9.5-3.2) ...
Selecting previously unselected package libperl4-corelibs-perl.
Preparing to unpack .../libperl4-corelibs-perl_0.003-1_all.deb ...
Unpacking libperl4-corelibs-perl (0.003-1) ...
Selecting previously unselected package lsof.
Preparing to unpack .../lsof_4.86+dfsg-1_armhf.deb ...
Unpacking lsof (4.86+dfsg-1) ...
Selecting previously unselected package libqdbm14.
Preparing to unpack .../libqdbm14_1.8.78-5+b1_armhf.deb ...
Unpacking libqdbm14 (1.8.78-5+b1) ...
Selecting previously unselected package php5-common.
Preparing to unpack .../php5-common_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking php5-common (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package php5-json.
Preparing to unpack .../php5-json_1.3.6-1_armhf.deb ...
Unpacking php5-json (1.3.6-1) ...
Selecting previously unselected package php5-cli.
Preparing to unpack .../php5-cli_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking php5-cli (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package libapache2-mod-php5.
Preparing to unpack .../libapache2-mod-php5_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking libapache2-mod-php5 (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package php5.
Preparing to unpack .../php5_5.6.30+dfsg-0+deb8u1_all.deb ...
Unpacking php5 (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package php5-readline.
Preparing to unpack .../php5-readline_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking php5-readline (5.6.30+dfsg-0+deb8u1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up libonig2:armhf (5.9.5-3.2) ...
Setting up libperl4-corelibs-perl (0.003-1) ...
Setting up lsof (4.86+dfsg-1) ...
Setting up libqdbm14 (1.8.78-5+b1) ...
Setting up php5-common (5.6.30+dfsg-0+deb8u1) ...
 
Creating config file /etc/php5/mods-available/pdo.ini with new version
php5_invoke: Enable module pdo for apache2 SAPI
php5_invoke: Enable module pdo for cli SAPI
 
Creating config file /etc/php5/mods-available/opcache.ini with new version
php5_invoke: Enable module opcache for apache2 SAPI
php5_invoke: Enable module opcache for cli SAPI
Setting up php5-json (1.3.6-1) ...
php5_invoke: Enable module json for apache2 SAPI
php5_invoke: Enable module json for cli SAPI
Setting up php5-cli (5.6.30+dfsg-0+deb8u1) ...
update-alternatives: using /usr/bin/php5 to provide /usr/bin/php (php) in auto mode
update-alternatives: using /usr/bin/phar5 to provide /usr/bin/phar (phar) in auto mode
 
Creating config file /etc/php5/cli/php.ini with new version
Setting up libapache2-mod-php5 (5.6.30+dfsg-0+deb8u1) ...
 
Creating config file /etc/php5/apache2/php.ini with new version
Module mpm_event disabled.
Enabling module mpm_prefork.
apache2_switch_mpm Switch to prefork
apache2_invoke: Enable module php5
Setting up php5 (5.6.30+dfsg-0+deb8u1) ...
Setting up php5-readline (5.6.30+dfsg-0+deb8u1) ...
 
Creating config file /etc/php5/mods-available/readline.ini with new version
php5_invoke: Enable module readline for apache2 SAPI
php5_invoke: Enable module readline for cli SAPI
Processing triggers for libc-bin (2.19-18+deb8u7) ...
Processing triggers for libapache2-mod-php5 (5.6.30+dfsg-0+deb8u1) ...
pi@raspberrypi:~ $
 
 
cs


설치하고 다음의 명령어로 버전을 나타내보자. 아래처럼 나오면 설치가 잘 된 것이다. 설치날자는 2017년 6월 6일 현충일 2시 19분이다.


1
2
3
4
5
6
7
8
 
pi@raspberrypi:~ $ php -version
PHP 5.6.30-0+deb8u1 (cli) (built: Apr 14 2017 16:20:58)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
pi@raspberrypi:~ $
 
cs


여기서 php 가 제대로 설치가 되었는지 확인을 위해 한가지 더 하고 넘어가자. 설치된 PHP 정보를 확인하는 작업이다.

우선 phpinfo.php 파일을 /var/www/html 폴더에 만들어 준다. 아래 명령어를 사용한다.

1
2
3
 
$sudo nano /var/www/html/phpinfo.php
 
cs

나노 에디터에서 아래처럼 입력을 한다. 

1
2
3
4
5
 
<?
phpinfo()
?>
 
cs

에디터를 빠져 나올때는 에디터 화면에서 Ctrl-x 를 누르고 Y 를 누르고 엔터키를 입력하면 저장하고 나오게 된다.

브라우저에서 http://192.168.1.242/phpinfo.php 치면 아래와 같은 정보가 뜨게 되는데 혹시 백지로 나오는 현상이 발생하면 위의 phpinfo.php 파일을 다시 열어 아래처럼 수정해 주고 다시 열면 정상적으로 나오게 된다.

1
2
3
4
5
 
<?php
phpinfo();
?>
 
cs



4)phpMyAdmin 설치

phpMyAdmin 툴은 브라우저에서 데이터베이스를 관리하는 툴이다. 편하게 데이터베이스를 조회, 생성, 업데이트, 삭제 작업을 할 수 있도록 설치해 준다.

아래 명령어를 사용한다

1
2
3
 
$sudo apt-get install phpmyadmin
 
cs

설치할 때 웹서버 인증할꺼 물어보는데 아래와 같은 화면에서 디폴트로 apache2 를 선택하도록 한다. 선택 후 Enter를 입력하여 다음 단계로 넘어간다.



실행을 하게 되면 중간에 메모리 허용을 물어오게 된다. Y 를 누르고 설치를 진행한다. 아래는 설치화면 메세지를 보여준다. 중간에 사용자 패스워드를 물어오는데 잊지 말고 기억해 두어야 한다.


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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
pi@raspberrypi:~ $ sudo apt-get install phpmyadmin
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  dbconfig-common libmcrypt4 php-gettext php-tcpdf php5-gd php5-mcrypt php5-mysql
Suggested packages:
  libmcrypt-dev mcrypt php5-imagick
The following NEW packages will be installed:
  dbconfig-common libmcrypt4 php-gettext php-tcpdf php5-gd php5-mcrypt php5-mysql phpmyadmin
0 upgraded, 8 newly installed, 0 to remove and 95 not upgraded.
Need to get 12.5 MB of archives.
After this operation, 46.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main dbconfig-common all 1.8.47+nmu3+deb8u1 [628 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libmcrypt4 armhf 2.5.8-3.3 [64.2 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main php-gettext all 1.0.11-1 [17.3 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main php-tcpdf all 6.0.093+dfsg-1 [7,878 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-gd armhf 5.6.30+dfsg-0+deb8u1 [23.2 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-mcrypt armhf 5.6.30+dfsg-0+deb8u1 [13.4 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main php5-mysql armhf 5.6.30+dfsg-0+deb8u1 [52.2 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main phpmyadmin all 4:4.2.12-2+deb8u2 [3,853 kB]
Fetched 12.5 MB in 9s (1,377 kB/s)
Preconfiguring packages ...
Selecting previously unselected package dbconfig-common.
(Reading database ... 114664 files and directories currently installed.)
Preparing to unpack .../dbconfig-common_1.8.47+nmu3+deb8u1_all.deb ...
Unpacking dbconfig-common (1.8.47+nmu3+deb8u1) ...
Selecting previously unselected package libmcrypt4.
Preparing to unpack .../libmcrypt4_2.5.8-3.3_armhf.deb ...
Unpacking libmcrypt4 (2.5.8-3.3) ...
Selecting previously unselected package php-gettext.
Preparing to unpack .../php-gettext_1.0.11-1_all.deb ...
Unpacking php-gettext (1.0.11-1) ...
Selecting previously unselected package php-tcpdf.
Preparing to unpack .../php-tcpdf_6.0.093+dfsg-1_all.deb ...
Unpacking php-tcpdf (6.0.093+dfsg-1) ...
Selecting previously unselected package php5-gd.
Preparing to unpack .../php5-gd_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking php5-gd (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package php5-mcrypt.
Preparing to unpack .../php5-mcrypt_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking php5-mcrypt (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package php5-mysql.
Preparing to unpack .../php5-mysql_5.6.30+dfsg-0+deb8u1_armhf.deb ...
Unpacking php5-mysql (5.6.30+dfsg-0+deb8u1) ...
Selecting previously unselected package phpmyadmin.
Preparing to unpack .../phpmyadmin_4%3a4.2.12-2+deb8u2_all.deb ...
Unpacking phpmyadmin (4:4.2.12-2+deb8u2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for libapache2-mod-php5 (5.6.30+dfsg-0+deb8u1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Setting up dbconfig-common (1.8.47+nmu3+deb8u1) ...
 
Creating config file /etc/dbconfig-common/config with new version
Setting up libmcrypt4 (2.5.8-3.3) ...
Setting up php-gettext (1.0.11-1) ...
Setting up php-tcpdf (6.0.093+dfsg-1) ...
Setting up php5-gd (5.6.30+dfsg-0+deb8u1) ...
 
Creating config file /etc/php5/mods-available/gd.ini with new version
php5_invoke: Enable module gd for apache2 SAPI
php5_invoke: Enable module gd for cli SAPI
Setting up php5-mcrypt (5.6.30+dfsg-0+deb8u1) ...
 
Creating config file /etc/php5/mods-available/mcrypt.ini with new version
php5_invoke: Enable module mcrypt for apache2 SAPI
php5_invoke: Enable module mcrypt for cli SAPI
Setting up php5-mysql (5.6.30+dfsg-0+deb8u1) ...
 
Creating config file /etc/php5/mods-available/mysql.ini with new version
php5_invoke: Enable module mysql for apache2 SAPI
php5_invoke: Enable module mysql for cli SAPI
 
Creating config file /etc/php5/mods-available/mysqli.ini with new version
php5_invoke: Enable module mysqli for apache2 SAPI
php5_invoke: Enable module mysqli for cli SAPI
 
Creating config file /etc/php5/mods-available/pdo_mysql.ini with new version
php5_invoke: Enable module pdo_mysql for apache2 SAPI
php5_invoke: Enable module pdo_mysql for cli SAPI
Setting up phpmyadmin (4:4.2.12-2+deb8u2) ...
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf
 
Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version
 
Creating config file /etc/phpmyadmin/config-db.php with new version
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql...  done.
dbconfig-common: flushing administrative password
Processing triggers for libc-bin (2.19-18+deb8u7) ...
Processing triggers for libapache2-mod-php5 (5.6.30+dfsg-0+deb8u1) ...
pi@raspberrypi:~ $
 
cs

설치하는 중간에 패스워드와 설정을 물어오는데 디폴트로 설정하면 되고 비밀번호도 동일하게 입력해주면 된다여기서는 root 로 설정한다. 사용자 비번을 3번 정도 물어보는데 입력하면 된다.


여기까지 수행하면 기본적으로 모두 설치가 된것이다. DB를 만들고 데이터를 저장하는 것은 뒷장의 실습에서 수행할 것이다


다음으로 apache 설정 추가하기. 아래 명령어로 아피치 컨피그 파일을 연다. 나노에디터를 사용한다.

1
2
3
 
$sudo nano /etc/apache2/apache2.conf
 
cs


1
Include /etc/phpmyadmin/apache.conf 

이 명령어를 마지막줄에 넣어준다.

1
2
3
4
5
6
7
8
9
10
11
12
.
.
.
.
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Include /etc/phpmyadmin/apache.conf
cs


빠져 나올때는 ctrl-x 누르고 y 누르고 엔터치면 저장하고 빠져 나온다.

그리고 아파치를 재가동 한다.

$sudo service apache2 restart


webserver 접속하기

이제 웹으로 접속해 본다.

웹 브라우저를 열고 주소줄에 다음을 넣아 확인한다. http://192.168.1.242/phpmyadmin/

저같은 경우 192.168.1.218/phpmyadmin 으로 접속해 아래와 같은 화면이 나오면 잘 된것이다.


그럼 이렇게 로그인 페이지가 나옵니다.


id :바꾸지 않았다면 root


pw : 이건 아까 넣어준 pw


이 상태에서 웹브라우져에서 라즈베리의 주소를 아래와 같이 입력하여 화면을 확인하고, 안뜰경우 아래에 해결방법을 설명한다.


참고로 라즈베리파이 APM 설치후 phpmyadmin 안뜰때 해결 방법을 알려주면 다른 교재나 책에 나와 있는대로 잘 설치를 하였는데 http://192.168.1.242/phpmyadmin/ 해도 화면이 안나오는 경우가 있다. 이럴경우에는 아래 명령어로 아파치 설정 파일을 열어서 편집하도록 한다.


$sudo nano /etc/apache2/apache2.conf

그래서 적당한 곳에 아래 설정을 추가한다. (맨 아래 넣는다.)

# Enable PhpMyAdmin

Include /etc/phpmyadmin/apache.conf

이렇게 하고 나면 당연히 아파치를 재시작해야 한다.

sudo /etc/init.d/apache2 restart

이후 접속이 잘 될것이다.

참고 주소

http://sonhc.tistory.com/435

http://mytory.net/archives/1711

http://answerofgod.tistory.com/entry/Raspberry-Pi-%EC%97%90-APM-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0apache-php-mysql

수고 하셨습니다. 즐 개발~~ 2017년 6월 6일.



반응형