저번 구입한 아두이노를 통해 전자회로 세계와 접하게 되었었는데 이번 라즈베리 파이 3 구입을 통해선 리눅스 OS와 서버, 컴퓨터 원격조작의 세계와 접하게 되었다.

'라즈베리 파이 활용백서' 를 보고 라즈베리 파이 3에 Apache, MySQL, PHP, phpMyAdmin 설치를 해봤다.

역시 서버로 이용되는 일이 많은 리눅스 OS라 그런지 설치들은 쉽고 간단하다.

16/12/12 월

[라즈베리 파이에 Apache, MySQL, PHP, phpMyAdmin 설치하기]

* Apache 설치:
sudo apt-get install apache2 로 설치.
sudo chown pi -R /var/www 로 pi 유저가 웹 서버 문서폴더 /var/www 폴더와 파일 소유권 갖도록 설정.
sudo update-rc.d apache2 defaults 로 다음 부팅때부터 apache2 자동 기동하게 설정.

* MySQL 설치:
sudo apt-get install mysql-server mysql-client libmysqlclient-dev로 설치.
중간에 root의 암호를 설정하는 창이 뜨는데 사용할 패스워드를 정해준다.
sudo nano /etc/mysql/my.cnf로 에디트 창 띄운 뒤 중간쯤 있는
bind-address = 127.0.0.1을 #bind-address = 127.0.0.1로 변경해 비활성화 처리.

* PHP 설치:
sudo apt-get install php5 로 설치.

* phpMyAdmin 설치:
sudo apt-get install phpmyadmin 으로 설치. 설치 중 선택화면이 뜨면 apache2를 선택하고 설치 계속. phpMyAdmin의 설정화면이 뜨는데 잘 모르겠어서 Cancel로 취소하고 설치 종료.

================================================================

* MySQL 기본 사용법:
mysql -u root -p 입력한 뒤 위에 설정한 비번을 입력하면 mysql>로 바뀐다.
(exit 하면 원래의 라즈베리 파이 커맨드 라인으로 돌아온다.)
show databases; 하면 현재 생성된 데이터 베이스를 보여준다.
create database testdb; 로 testdb란 이름의 새 데이터베이스 생성.
use testdb; testdb 데이터베이스 선택.
show tables; 테이블 보기.
create table testdata( name char(19) primary key, age int, addr char(20), tel char(11) ); 로 4개의 항목으로 구성된 테이블 생성.
explain testdata; 로 생성한 테이블의 구조 보기.
insert into testdata values("ace", 20, "ave 15-3", "555-3456"); 테이블에 자료 넣기.
select * from testdata; testdata 테이블 내 자료들 모두 보기.
delete from testdata where name = "ace"; testdata 테이블 속 name이 ace인 데이터 지우기.
grant all privileges on *.* to root@localhost identified by '비밀번호'; 모든 데이터베이스와 테이블을 root란 아이디의 사용자가 '비밀번호'로 접근하도록 설정.
flush privileges; 설정 반영시키기.

================================================================

* 데이터 베이스의 내용을 웹 상에서 보여주기:
cd /var/www/html 하여 이동해 보면 index.html 하나만 덩그러니 있는데 이곳에 html이나 php 파일들을 넣고 (예를 들어 test.htm이란 파일을 하나 만들어 넣고) 웹 브라우저 주소창에 내 파이의 고정 아이피 주소/test.htm을 입력하면 해당 htm의 내용이 보여진다.

이를 이용해 이곳에 아래 내용과 같이 viewdb.php란 파일을 만들어 넣고 고정 아이피 주소/viewdb.php을 입력하면 해당 php에의해 위에 만든 testdb의 테이블 내용들이 보여지고 8초마다 갱신된다.
($connect = mysql_connect("localhost", "root", "비밀번호") 부분의 "비밀번호"엔 위 MySQL 생성시 만든 비밀번호를 넣어준다.)

* viewdb.php :
<script type="javascript">
//8초에 한번씩 페이지 갱신
window.setTimeout('window.location.reload()', 8000); 
</script>

<?php
$connect = mysql_connect("localhost", "root", "비밀번호") 
or die("Connect Fail: ". mysql_error()); echo "Connect Success!"; mysql_select_db("testdb") or die("Select DB Fail."); $query = "select * from testdata"; $result = mysql_query($query) or die("Query Fail: ".mysql_error()); echo "<table>\n"; echo "<tr><td>Name--</td><td>Age--</td><td>Address--</td><td>Tel-</td></tr>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n"; mysql_free_result($result); mysql_close($connect); ?>


viewdb.php가 웹 브라우저 상에서 실행된 모습 캡쳐.