본 수업은 웹 애플리케이션 만들기 수업으로 대체 되었고, 2015년 6월 이후에 폐지됩니다. 개편된 수업에서 뵙겠습니다.http://opentutorials.org/course/1688
다음 동영상은 서버란 무엇인가에 대해서 설명한다.
이번 시간에는
웹서비스를 사용자에게 제공하기 위한 환경을 구축한다. 이 환경 위에서 HTML이나 CSS 또는 PHP와 같은 언어를 이용해서 실제 서비스를 구현하게 된다. 각각의 개념에 대해서 아래와 같이 정리했다. 하지만 개념들은 읽어보지 않고 바로 설치하기로 넘어가도 무방하다. 이번 시간에 당신이 해야 할 일은 이 소프트웨어들을 단지 설치하는 것이기 때문이다. 개념은 차차로 알게 된다. 개념의 바다에서 빠지지 않도록 한다.
서버란?
웹서비스를 제공하는 컴퓨터를 서버라고 부른다. 이전 시간에 운영체제를 설치했는데, 여기서 virtualbox는 서버 컴퓨터의 하드웨어가 되는 것이고, 그 안에 설치된 우분투는 서버 운영체제인 셈이다. 여기에 apache나 php, mysql등을 설치하면 웹서비스를 하기 위한 실질적인 준비가 모두 끝난다.
다음 동영상은 Apache, PHP, MySQL에 대해서 설명한다.
apache
통상 웹서버라고 분류되는 소프트웨어다. 유서 깊은 역사를 가지고 있고 현재까지도 최고의 웹서버 소프트웨어로 손꼽히는 오픈소스다. 방문자가 브라우저에 URL을 입력하면 그 URL에 해당하는 서버에 설치된 apache가 실행되고, apache는 사용자가 요청한 URL에 따라서 HTML, image와 같은 파일을 제공해준다. 이러한 파일을 보통 리소스(resource)라고도 부른다. 경쟁제품으로는 IIS, Nginx가 있다. (Apache 홈페이지 바로가기)
mysql
데이터베이스라는 장르에 해당하는 제품이다. 데이터베이스란 (예를들어, 블로그의 제목, 회원의 닉네임과 같은) 데이터를 저장하고, 읽고, 수정하는 작업등을 편리하게 할 수 있도록 도와주는 소프트웨어로 웹 개발에서 빼놓을 수 없는 소프트웨어다. MySQL은 오픈소스고 무료면서 편의성이나 성능이 상당하기 때문에 매우 폭넓게 사용되는 데이터베이스 시스템이다. 경쟁제품으로는 ORACLE, mssql이 있고, 생활코딩에서 mysql에 대한 기본 수업을 학습한다. (생활코딩 mysql 수업)
PHP
PHP의 최종적인 목적은 웹페이지를 동적으로 생성하는 것이다. 여기서 '동적'이라는 말은 '정적'이라는 말과 대비되는 것인데, 정적인 웹페이지는 사람이 직접 작성한 html 문서를 의미한다. '동적'이라는 의미는 컴퓨터가 문서를 자동으로 생성해준다는 의미다. 예를들어, 현재 시각을 웹페이지에 표시해서 페이지 '새로고침' 될 때마다 현재의 시간을 보여주고 싶다면 PHP를 사용하면 된다. PHP는 서버쪽 컴퓨터에게 현재 시각을 물어보고 이 정보를 바탕으로 사용자가 요청할 때마다 현재 시각이 포함된 웹페이지를 생성해서 사용자에게 전송해주는데 이런 것을 '동적'이라고 한다.
PHP의 주요한 임무 중의 하나는 데이터베이스에 저장된 정보를 가져와서 이 정보를 바탕으로 웹페이지를 '동적'으로 생성하는 것이다. 또 다른 임무는 사용자가 업로드한 파일을 저장하거나, 이 파일이 이미지인 경우 사이즈를 변경하는 작업과 같은 일을 하는 것이다. 경쟁제품으로는 ASP, JSP, Python, Ruby, Perl 등이 있고, 생활코딩 PHP수업을 통해서 기본적인 내용을 학습한다. (생활코딩 PHP 수업)
설치
조디악님의 블로그를 참고했습니다. http://zodiac12k.egloos.com/1235908
다음 동영상은 Apache, PHP, MySQL을 설치하는 방법에 대한 동영상이다.
지금부터 리눅스에 Apache, PHP, MySQL을 설치해보겠다.
1. 터미널을 실행한다. 해커가 나오는 영화를 본 적이 있다면 컴컴한 화면에 토닥토닥 명령을 입력하는 장면을 본 적이 있을 것이다. 바로 그 해커들이 사용하는 프로그램이 터미널이다. 마우스를 이용해서 컴퓨터를 조작하는 것과 마찬가지로 터미널에 명령을 입력해서 컴퓨터를 제어할 수 있다. Dash home 버튼을 누르고 검색창에 terminal을 입력한다.
2. terminal 아이콘을 클릭해서 터미널을 실행한다.
3. 아래와 같이 생긴 프로그램이 터미널이다. 지금부터 여기에 명령을 입력해서 Apache, PHP, MySQL을 설치할 것이다.
4. 아래와 같이 명령을 입력한다. sudo는 관리자의 권한으로 따라오는 명령어를 실행하겠다는 의미다. 그렇기 때문에 관리자 권한이 있는지를 확인하기 위해서 비밀번호를 물어볼 것이다. 비밀번호를 입력한 후에 엔터를 친다.아래의 명령을 입력해서 패키지를 새 버전으로 업데이트한다. (패키지 업데이트의 의미는 지금은 몰라도 된다.)
sudo apt-get update;
이제 apache를 설치한다. apt-get install은 우분투에서 어떤 프로그램을 설치하는 명령인데, 그 뒤에 따라오는 문자에 해당하는 소프트웨어를 설치하겠다는 의미가 된다. 아래의 명령에서는 apache2를 설치하겠다는 의미다. 설치가 시작되면 리눅스가 알아서 서버에 접속해서 apache2를 다운로드 받고 컴퓨터에 설치할 것이다. 얼마나 편한가?
sudo apt-get install apache2;
5. mysql 인증 모듈을 설치한다.
sudo apt-get install libapache2-mod-auth-mysql
6. mysql을 설치한다. 아래 명령을 입력한다.
sudo apt-get install mysql-server mysql-client
7. 데이터베이스는 자체적으로 사용자 인증 시스템을 가지고 있기 때문에, mysql을 관리할 사용자(root)의 비밀번호를 지정한다. root는 수퍼유저를 의미하는데 모든 작업을 다 할 수 있는 절대권력의 사용자를 의미한다. 실습을 위해서 111111을 입력한다.(실제 서비스에서는 절대로 이렇게 단순한 비밀번호를 사용해서는 안 된다)
8. PHP를 설치한다.
sudo apt-get install php5-common php5 libapache2-mod-php5
9. PHP와 MySQL을 연동하기 위한 모듈을 설치한다.
sudo apt-get install php5-mysql
10. apache를 재시작한다.
sudo /etc/init.d/apache2 restart
11. mysql 을 재시작한다.
sudo /etc/init.d/mysql restart
12. 잘 설치 됐는지 테스트해보기 위해서 아래의 명령을 입력한다. 만약 에디터가 실행되지 않는다면 우분투를 재시작해본다. 재시작을 할 때는 명령어 입력창에 'sudo reboot'라고 입력하면 된다.
sudo gedit /var/www/phpinfo.php
참고 : gedit는 GUI 환경에서만 사용할 수 있기 때문에 명령어 환경에서 실습을 하고 있다면 nano와 같은 에디터를 사용한다. 아래를 참고한다.
sudo nano /var/www/phpinfo.php
13. 아래 문구를 삽입하고 저장한다.
<?php phpinfo(); ?>
14. 파이어폭스를 실행하고 주소 표시줄에 아래와 같이 입력한다.
http://localhost/phpinfo.php
15. 아래와 같은 화면이 출력된다면 PHP와 Apache 설치에 성공한 것이다.
16. 이번에는 MySQL을 잘 설치했는지 확인하기 위해서 아래와 같이 입력해보자. 비밀번호를 물어보면 mysql을 설치할 때 입력한 비밀번호를 입력한다. (7번 과정 참고)
mysql -uroot -p
17. 아래와 같은 화면을 보게 된다면 mysql의 설치에 성공한 것이다.
* 이 상태에서 빠져나올 때는 exit;를 입력하고 엔터를 치면 된다.
여기까지 잘 따라왔다면 여러분은 직접 리눅스를 설치하고, 거기에 웹서비스를 서비스하기 위한 준비를 모두 마친 것이다. 다음 시간에는 개발을 편리하고 안전하게 하기 위해서 개발도구를 설치하는 방법에 대해서 알아본다.