🟨 목 차 🟨
1. APM[ Apache+PHP+MySQL ]
1-1. Apache(Apache HTTP server)
1-2. PHP(Personal Home Page)
1-3. MySQL
1-4. APM[ Apache+PHP+MySQL ]의 구동원리
2. 빌린 AWS의 ec2-ubuntu에 Apache 설치하기
3. 빌린 AWS의 ec2-ubuntu에 Apache 설치 후 index.html 생성 및 이동
4. 빌린 AWS의 ec2-ubuntu에 PHP 설치 및 PHP 실행
5. 똑같은 코드를 apache(웹 서버)와 PHP에 적용하여 차이 확인하기
이번 시간에는 내가 빌린 AWS의 ec2-ubuntu에 Apache, PHP를 설치해보도록 해보겠습니다.
우선
1. Apache, PHP를 설치하기 이전에 이것들이 무엇인지 공부하고 설치를 진행
2. 빌린 AWS의 ec2-ubuntu에서 Apache, PHP를 설치
3. 퍼블릭 IP주소(탄력적 IP 주소)를 입력을 하였을시에 우분투의 기본페이지가 아닌 내가 작성한 코드의 내용이 나오게 하기 (index.html 생성)
4. PHP를 사용 (index.php생성)
5. 똑같은 코드를 apache(웹 서버)와 PHP에 적용하여 차이 확인하기
정도를 공부해보겠습니다. :)
◼️ 1. APM[ Apache+PHP+MySQL ] ◼️
APM이란 Apache+PHP+MySQL를 합쳐서 부르는 말이다.
쉽게 말을 해보면 Apache는 서버, PHP는 웹 프로그래밍언어, MySQL은 DB의 구축 및 언어를 의미한다.
동적인 웹 페이지 : 사용자의 요구에 따라서 가공처리한 후 생성되어 다양한 웹 페이지를 제공하고, 이를 구성하기 위해 PHP와 MySQL 데이터베이스를 연계하여 사용한다.
◼️ 1-1. Apache(Apache HTTP server)
정적인 웹 서버 : 단순히 HTML 문서,미리 저장된 파일을 사용자에게 그대로 제공하기 때문에 아파치 웹 서버 하나면 된다.
웹 서비스를 제공해주는 서버로, 사용자가 웹 사이트에 접속하면 웹 서버에게 HTML 파일을 요청하게 되는데 요청을 받은 웹 서버가 클라이언트 컴퓨터에 HTML 파일을 제공함으로써 사용자는 해당 웹 페이지를 볼 수 있게 된다.
[ 웹 서버 : Apache , IIS, Nginex ]
즉, 웹 서버는 클라이언트 요청을 받아 해당 요청에 대해 응답하여 서비스를 제공한다.
◼️ 1-2. PHP(Personal Home Page)
웹 프로그래밍 언어로서 서버에서 실행되는 언어를 말한다. HTML로는 DB에 대한 접속이나 그 외 고급 기능(쿼리 등)은 구현 못하므로 그것을 실현시키기 위해 쓰는 언어이다.
웹 개발 및 HTML에 포함하기에 적합한 언어이며, 오픈 소스 스크립트 언어이다.
자바스크립트(JavaScript)와는 다르게 서버에서 실행하여 HTML을 생성하고 전송한다.
PHP는 Apache 웹 서버와 연동하여 동작하며 PHP는 .php 파일을 Apache는 HTML 파일을 처리한다.
PHP는 웹상에서 서버를 연동해 실행하는 대표적인 언어며, 인터프리터 방식(처리 속도 빠름)으로 편리하게 사용 가능한 언어이다.
◼️ 1-3. MySQL
가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS : Relational DBMS)이며, 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용이 가능하다.
[ MySQL에 대해 깊게 공부하고 싶다면 아래 링크를 참고해주세요. ]
◼️ 1-4. APM[ Apache+PHP+MySQL ]의 구동원리
클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ 간단하게 말하자면 클라이언트에서 출발하여 DB에 있는 정보까지 도달하면, 다시 클라이언트로 되돌아오는 형태이다. ]
- 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ 클라이언트에서 원하는 정보(데이터)를 서버에 요청한다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ Apache는 데이터베이스에 저장되어 있는 요청된 데이터에 대해 응답하라고 PHP에 명령한다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ PHP는 Apache에서 받은 명령을 MySQL에 명령한다.] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ MySQL은 요청 받은 정보를 데이터베이스에서 찾는다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ 요청 받은 정보가 데이터베이스에 있다면 다음 단계로 넘어간다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ MySQL 데이터베이스에 저당된 데이터를 PHP에 반환한다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ PHP는 데이터베이스에서 가져온 데이터와 PHP 코드를 모두 HTML 형태로 변환한 후 Apache에 전달한다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ Apahce는 PHP에서 전달 받은 HTML 파일을 클라이언트에 전달한다. ] - 클라이언트 -> Apache -> PHP -> MySQL -> DB -> MySQL -> PHP -> Apache -> 클라이언트
[ 서버에 요청한 정보(데이터)를 응답 받는다.(=화면에 나타난다.) ]
◼️ 2. 빌린 AWS의 ec2-ubuntu에 Apache 설치하기 ◼️
설치 전 저장소의 패키지 목록을 업데이트하고 기존에 설치되어 있는 패키지를 업그레이드 한다.
$ sudo apt update && sudo apt upgrade
1. Apache2 설치
$ sudo apt-get install apache2
2. 설치된 Apache2 버전 확인
$ apache2 -v
3. Apache2 구동 명령어
$ sudo service apache2 start // 시작
$ sudo service apache2 restart // 재시작
$ sudo service apache2 stop // 멈춤
4. 인바운드 규칙 추가
4-1. 다시 AWS로 돌아와서 인스턴스탭에서 인스턴스 클릭 -> 보안 클릭 -> 보안 그룹 클릭 한다.
4-2. 인바운드 규칙 편집을 클릭한다.
4-3. 규칙 추가 클릭 -> 유형 HTTP , 포트 범위 80(html의 기본포트), 사용자 지정, 0.0.0.0/0 선택 -> 규칙 저장 클릭
5. 주소창에 퍼블릭 IP주소(탄력적 IP 주소)로 접속하면 우분투의 기본 페이지가 나온다.
◼️ 3. 빌린 AWS의 ec2-ubuntu에 Apache 설치 후 index.html 생성 및 이동 ◼️
나의 퍼블릭 IP주소(탄력적 IP 주소)를 입력을 하였을시에 우분투의 기본페이지가 아닌 내가 작성한 코드의 내용이 나오기 위해선 html 파일을 만들고 적정한 위치에 이동을 시켜줘야한다. 시작해보자.
1. apache 설정 파일의 경로는 /etc/apche2/apache2.conf 이다. cat 명령어를 통해 해당 설정 파일을 읽어본다.
cat /etc/apache2/apache2.conf
2. 아래의 사진을 보게되면 중간에 <Directory /var/www> 부분을 볼 수 있는데, 이 부분이 root디렉토리의 경로이다. 이것을 확인하자.
3. cd /var/www 폴더로 이동하자.
cd /var/www
4. cd /var/www 폴더 이동후 ls 명령어를 사용하여 html 폴더가 있음을 확인한다. 그 후 sudo vi index.html 파일을 만든다.
ls
sudo vi index.html
5. sudo vi index.html을 입력하게 되면 편집모드로 들어가게 되는데, Hello PHP를 입력 후 esc를 누른다. 그 후 :wq! 를 입력해 파일을 저장하고 나온다.
6. sudo apachectl restart 명령어를 통해 apache 서버를 재시작해준다.
sudo apachectl restart
7. 우리가 만든 index.html 파일을 html폴더에 이동시켜야한다. 이동시키기 위해 sudo mv index.html /var/www/html 명령어를 입력해 파일을 이동한다.
sudo mv index.html /var/www/html
8. 주소창에 퍼블릭 IP주소(탄력적 IP 주소)로 접속하면 우분투의 기본 페이지가 아닌 우리가 입력한 Hello PHP! 가 잘 나올 것이다.
◼️ 4. 빌린 AWS의 ec2-ubuntu에 PHP 설치 및 PHP 실행 ◼️
1. sudo apt-get install pht 명령어를 입력하여 PHP를 설치해준다.
sudo apt-get install php
2. PHP가 성공적으로 설치되었는지 확인하기 위해 /var/www/html위치에 sudo vi index.php 명령어를 이용해 간단한 php 파일을 만들기
cd /var/www/html
sudo vi index.php //html폴더안에 파일을 만드는 것이 맞는지 확인하기
3. sudo vi index.php 명령어를 입력하면 편집화면에 들어오게 되는데 <?php phpinfo(); ?> 코드를 입력해주고 esc 누르고 :wq!를 입력후 엔터를 눌러 파일을 저장하고 나온다.
<?php phpinfo(); ?>
4. 주소창에 퍼블릭 IP주소(탄력적 IP 주소)/index.php 로 접속하면 php 정보가 출력되는것을 확인할 수 있다.
◼️ 5. 똑같은 코드를 apache(웹 서버)와 PHP에 적용하여 차이 확인하기 ◼️
5-1. HTML 코드
try
{
throw new Exception("예외 메시지"); // 예외 객체 던짐.
}
catch(Exception $ex) // 예외 처리
{
echo $ex->getMessage()."<br>";
echo "예외가 발생한 파일 경로 : ".$ex->getFile()."<br>";
echo "예외가 발생한 라인 번호 : ".$ex->getLine();
}
5-2. PHP 코드
<?php
try
{
throw new Exception("예외 메시지"); // 예외 객체 던짐.
}
catch(Exception $ex) // 예외 처리
{
echo $ex->getMessage()."<br>";
echo "예외가 발생한 파일 경로 : ".$ex->getFile()."<br>";
echo "예외가 발생한 라인 번호 : ".$ex->getLine();
}
?>
위의 사진의 코드는 PHP(웹 프로그래밍 언어)에서 사용하는 예외처리 코드이다.
공부할때 HTML에는 내용을 그대로 표출하고, PHP는 웹 프로그래밍 언어라 다양한 함수라던지 로직들에 의해 작동된다고 공부했다.
직접 시험하고 싶어 PHP에서 사용하는 예외처리 코드를 HTML과 PHP 둘 다 넣어 결과를 확인해보고 싶었다.
5-3. HTML 결과
5-4. PHP 결과
역시나 이 결과로 인해 HTML은 정적인 홈페이지로 직관적인 것만 출력을 하고 PHP는 동적 홈페이지로 사용자의 요구에 따라서 가공처리한 후 생성되어 다양한 웹 페이지를 제공 할 수 있다는 것을 까먹지 않고 기억할 수 있을 것이다.
'Android > Android 통신(PHP)' 카테고리의 다른 글
Android PHP MySQL 통신(MySQL을 이용한 회원가입 예제) (2) | 2022.09.01 |
---|