본문 바로가기

개발자/Raspberry Pi

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

반응형



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


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


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

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


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

 

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


1) Apache 웹 서버 설치


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


1
$sudo apt-get install apache2
cs

 

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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]?
cs


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


$sudo chown pi -R /var/www

 

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


$sudo update-rc.d apache2 defaults

 

2) MySQL 설치


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


$sudo apt-get install mysql-server mysql-client libmysqlclient-dev


설치를 시작하면 99.3M의 디스크가 필요하다고 하는데 ‘Y’를 누르고 계속 진행하자.


$ 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:

  heirloom-mailx libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient16 libmysqlclient18

  mysql-client-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5

Suggested packages:

  exim4 mail-transport-agent libipc-sharedcache-perl libterm-readkey-perl tinyca

Recommended packages:

  mailx

The following NEW packages will be installed:

  heirloom-mailx libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient-dev libmysqlclient16

  libmysqlclient18 mysql-client mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5

0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.

Need to get 11.6 MB of archives.

After this operation, 99.4 MB of additional disk space will be used.

Do you want to continue [Y/n]?


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





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


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

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 키를 누르고 빠져나온다.


여기서 아래 명령어를 입력하여 잘 설치되었는지 버전을 확인해보자


pi@raspberrypi:~/test $ mysql --version

mysql  Ver 14.14 Distrib 5.5.54, for debian-linux-gnu (armv7l) using readline 6.3



3)PHP 설치


$sudo apt-get install php5


설치시 메모리 공간이 필요하다고 메시지가 나오면 y를 누르고 설치를 계속한다.


$ sudo apt-get install php5

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  apache2-mpm-prefork libapache2-mod-php5 libonig2 libqdbm14 lsof php5-cli php5-common

Suggested packages:

  php-pear

The following packages will be REMOVED:

  apache2-mpm-worker

The following NEW packages will be installed:

  apache2-mpm-prefork libapache2-mod-php5 libonig2 libqdbm14 lsof php5 php5-cli php5-common

0 upgraded, 8 newly installed, 1 to remove and 0 not upgraded.

Need to get 6,136 kB of archives.

After this operation, 17.5 MB of additional disk space will be used.

Do you want to continue [Y/n]?


4)phpMyAdmin 설치


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




$sudo apt-get install phpmyadmin


실행을 하게 되면 중간에 메모리 허용을 물어오게 된다. Y 를 누르고 설치를 진행한다.


$ sudo apt-get install phpmyadmin

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  apache2-mpm-prefork dbconfig-common libapache2-mod-php5 libmcrypt4 libonig2 libqdbm14 lsof php5-cli php5-common

  php5-gd php5-mcrypt php5-mysql

Suggested packages:

  php-pear libmcrypt-dev mcrypt

The following packages will be REMOVED:

  apache2-mpm-worker

The following NEW packages will be installed:

  apache2-mpm-prefork dbconfig-common libapache2-mod-php5 libmcrypt4 libonig2 libqdbm14 lsof php5-cli php5-common

  php5-gd php5-mcrypt php5-mysql phpmyadmin

0 upgraded, 13 newly installed, 1 to remove and 0 not upgraded.

Need to get 11.7 MB/12.3 MB of archives.

After this operation, 34.9 MB of additional disk space will be used.

Do you want to continue [Y/n]?


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

여기서는 root 로 설정한다. 사용자 비번을 3번 정도 물어보는데 입력하면 된다.





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


phpinfo 파일 만들기


$sudo nano /var/www/phpinfo.php


------------------------------------

<?

phpinfo();

?>

-------------------------------------


다음으로 apache 설정 추가하기


$sudo nano /etc/apache2/apache2.conf


마지막줄에 넣어주세요.


----------------------------------------

Include /etc/phpmyadmin/apache.conf

----------------------------------------


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


$sudo service apache2 restart


webserver 접속하기


이제 웹으로 접속해 본다.


자신의 pi의 ip에다가 /phpmyadmin을 추가해 주세요.


저같은 경우 192.168.0.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/1711http://answerofgod.tistory.com/entry/Raspberry-Pi-%EC%97%90-APM-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0apache-php-mysql)


또 하나 확인할 것은 웹서버가 실행되어 홈페이지가 잘나오나 확인


http://192.168.1.218/ 접속해서 아래와 같은 화면 확인





http://192.168.1.218/phpinfo.php 로 접속하여 아래와 같은 화면 확인


여기서 아래 화면이 백지로 나올경우가 있다.




그럴때는 아래처럼 php.ini 파일을 찾아서 


pi@raspberrypi:~ $ which php

/usr/bin/php

pi@raspberrypi:~ $ php --ini | grep php.ini

Configuration File (php.ini) Path: /etc/php5/cli

Loaded Configuration File:         /etc/php5/cli/php.ini

pi@raspberrypi:~ $


중간에 short_open_tag = Off    를 short_open_tag = On  으로 수정한다.


아니면 phpinfo.php 파일을 

<?php
phpinfo();
?>


이렇게 수정하고 다시 확인한다.


수고 하셨습니다. 즐 개발~~




반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^