20210210(수) - jungcow/42Cursus GitHub Wiki
- 2021-02-10(수)
- 13:00 ~ 19:00(스터디룸) / 22:00 ~ 00:00 (집)
- nginx 서버 설치
- php 연동
- 데비안 os에 nginx 웹서버 설치 및 php 연동하여 웹 띄우기
→ 클라이언트: 정보를 요청하는 쪽
→ 서버: 정보를 제공하는 쪽
: Hypertext Transfer Protocol
→ 브라우저같은 응용프로그램을 통해 클라이언트와 서버 사이에 정보를 주고 받기 위한 프로토콜
→ 즉, 요청은 어떤 방식을 사용해서, 응답은 어떤 방식으로 해야하는지 정해놓은 약속
: HTTP Server 라고 한다.
→ 웹브라우저의 카운터 파트너
→ 서버쪽에서 정보를 제공해주는 소프트웨어를 의미
→ ex) 아파치(Apache)
-
웹서버 중 하나
-
개발된 목적: 아파치(Apache)의 C10K 문제(한 시스템에 동시접속자 수가 1만명이 넘을 때)를 해결하기 위해
-
특징: 비동기, Event-Driven 구조로 만든 웹 서버 SW.
-
사용 예 : OSI 7 6레벨인 Presentation Layer에서 NGINX 같은 웹 서버가 HTTP 통신을 제공하게 된다.
-
단어 설명:
→
비동기: 데이터를 처리하는 방식 중 하나.- 다른 작업이 끝나기를 기다리지 않음, 그 시간 동안 다른 작업을 진행
- 자원을 효율적으로 사용 가능.
→
event-driven 구조: event-driven 프로그래밍을 다른 말로asynchronous model이라고 한다.- 이벤트 기반 프로그래밍 → 이벤트가 일어나야 다음 어떤 것을 실행할 지 또는 어떤 순서로 진행할 지 결정됨
https://sleepyeyes.tistory.com/73
위 링크를 순서대로 참고하면 된다.
: 빠른 php언어 번역기
: PHP FastCGI Process Manger 의 약자로, CGI보다 빠른 버전.
→ CGI란? : Common Gateway Interface,
- 정적 페이지가 아닌 동적 페이지를 위한 양방향 정보교환을 위해 필요함
- 웹서버(정보제공측)와 클라이언트(정보이용측)간에 필요한 정보교환을 가능하게 해주는 일종의 웹인터페이스(일종의 프로그램).
- 웹 서버에서 요청을 받아 외부 프로그램에 넘겨주면, 외부 프로그램은 그 파일을 읽어 html로 변환하는 단계를 거치는 것.
⇒ 아래 자료를 참고하면 CGI에 대해서 더 자세한 내용을 알 수 있다.
※ 참고: https://www.linux.co.kr/unixwebhosting/cgi/cgi01.htm
→ Fast CGI는 요청할때마다 이미 생성된 프로세스를 가지고 구동하기 때문에 처리가 CGI보다 빠릅니다
→ 아파치(Apache)는 php모듈이 있기에 처리가 가능
→ 하지만, nginx는 php-fpm 을 따로 설치하여 연동을 시켜줘야 한다.
→ apt install nginx로 nginx를 설치하려고 하자 다음과 같은 오류 발생
E: Unable to locate package nginx
[사진]
→ 이 때, 포트 80번으로 포워딩 해주는 이유는 nginx 기본 포트가 80번이기 때문이다.
Basically, the ‘apt update’ command builds a local cache of available packages.
→ install 명령어는 apt 패키지 매니저에서 그 버전 정보와 패키지를 가져오기 위해 cache를 살핀다.
→ 그리고 이 저장소를 네트워크를 통해서 다운로드하게 된다.
→ 만약에 패키지가 cache에 없다면, 내 system은 이걸 설치하지 못할 것.
→ 만약 리눅스 시스템을 새로이 설치했다면, cache는 비어있을 것이다.
⇒ 따라서, 처음 사용하는 거라면, apt update를 바로 해줘야 한다.
※ 처음 사용한 것이 아니더라도, apt cache를 update 시켜주는 것은 항상 좋다.
⇒ 즉, apt-get update && apt-get upgrade 이 두개를 패키지 설치전에 미리 해놓아야 한다.
위 방법으로 해결 함
: 보통 패키지를 다운받을 땐 웹사이트에 나와있는 그대로를 따라하는 것일 텐데, 왜 웹사이트에서 소개하고 있는 방식에선 잘 되는데, 내 시스템에서는 왜 안될까??
※ 참고: https://itsfoss.com/unable-to-locate-package-error-ubuntu/
⇒ localhost:80 으로 실행한 결과
[사진]
→ <?php ?>대신 <? ?> 로 짧게 쓸 수 있다.
→ php 5.4.0 이전에는 <? echo. 를 <?= 으로 쓸 수 있다.
- nginx 와 php의 개념에 대해 학습한 후 두개를 같이 설치 후 연동시켜 연동 된 모습을 보면서 학습을 진행하니 확실히 더욱 어떻게 쓰이는지 어떨 때에 사용해야하는지에 대한 개념이 잘 잡히게 되었다. 이런식으로 하나하나 하위 개념들을 잡고 서로 엮어서 어떻게 동작하는지를 살펴보며 학습을 진행해야겠다.
- mysql에 대해서
- phpMyAdmin 에 대해서
- exam02 printf 로직 다시 짜기