왜 하는가?
목적: 본인의 컴퓨터 이외의 환경, 다른 운영체제에서 테스트 위함.
- 별도로 컴퓨터를 마련해서 리눅스 테스트 환경을 갖추기에는 종류도 다양하고 번잡
진행 과정 개요
주의
- 에러의 늪에 빠지고 싶지않다면 에러 있는지 중간중간 잘 체크
- 시간이 오래걸리니 미리 염두해둘 것
- apache - mysql - php 순서로 설치를 추천한다.
- php는 설치시 apache 경로와 mysql 경로를 지정합니다. 그래서 php를 마지막에 설치합니다.
※ 소스컴파일을 통해 APM을 설치할 때 주의할 점은 최신 버전의 소스 파일을 사용한다고 꼭 좋은 것은 아니라는 점이다. 각기 다른 프로그램 세 개를 연동해 운영하는 것이므로, 각 프로그램끼리 잘 어울리는 버전이 별도로 있다는 사실을 기억하자.
출처:https://linuxstory1.tistory.com/entry/소스를-컴파일해서-APM을-설치하자Fedora-19
가상머신
Virtual박스 설치
- VirtualBox는 오라클이 개발 중인 무료 가상화 소프트웨어로 여러가지 운영체제(리눅스, MacOS, 솔라리스, 윈도우 등)를 가상화 하여 운영해 볼 수 있다. 현재 사용중인 OS와 다른 OS를 설치해 테스트 PC나 서버 운영 등 사용 가능
- 즉, 버추얼박스(VirtualBox) 를 이용해서 다양한 OS 를 자신의 컴퓨터에 설치
- 홈페이지에서 windows hosts 로 설치
- 기본경로: C:\Program Files\Oracle\VirtualBox\
운영체제 설치
VM에 ubuntu 설치
- 참고: https://mainia.tistory.com/2379
**메모리**
: 현재 자신이 보유하고 있는 메모리가 최대값 입니다. 어떤 용도로 사용할 것인지 생각해서 메모리 크기를 정합니다. 간단하게 테스트할 용도인지 아니면 각종 서버를 설치할 것인지를 정한 후 메모리를 결정합니다.
- 가상 하드 디스크 만들기: 가상 OS 에 어떤 내용들이 들어갈지 모르겠다면 동적 할당 으로 선택 ⇒ 하지만 속도를 위해 고정 할당으로 진행. 그리고 D 드라이드에 vdi 설정
Ubuntu 22.04 LTS
환경설정
- 고정할당 40GB이상 추천: mysql 설치시에 많은 디스크 용량이 필요. 45GB
속도를 위한 환경 설정
VBoxVGA를 통해 설치 과정에서 화면을 늘릴 수 있다.
- 기타
- grub에 들어가서 nomodest 추가 / apt install xserver-xorg-input-all 추가
Ubuntu 설치
APM 이란?
- APM은 여러 뜻이 있지만 여기서의 APM은 Apache, PHP, Mysql 세가지가 연동되어 운영되도록 만든 환경이다. Apache와 MySQL이 PHP와 호환성이 좋기 때문에, 주로 세 프로그램을 묶어 사용
- APM 구동방식
- 클라이언트가 웹브라우저에서 URL을 입력하면, 80번 포트를 통해 서버에 Request를 합니다. 서버는 Response로 클라이언트에게 HTML, CSS 등의 웹사이트의 정보를 넘겨주게 됩니다.
- 클라이언트가 로그인 같은 서비스나 다른 정보를 서버에 Request
- 서버는 해당되는 정보를 주기 위해 PHP에게 스크립트 실행을 Request
- PHP는 미리 작성된 프로그램을 통해 MySQL에 Request(query)
- MySQL은 질의문(query)에 대한 결과데이터를 PHP에 Response로 넘겨줌
- PHP는 받은 결과데이터와, 코드를 모두 HTML로 변경 후 서버에 Response
- 서버는 받은 HTML파일을 클라이언트 측 웹 브라우저에 Response
참고사이트: https://velog.io/@jiyoonoh-dev/APM이란
🔥 쉽게 말하면, 클라이언트는 url을 요청해서 응답만 받으면 된다. 그러면 서버는 클라이언트와 소통 및 전달, 프로그래밍언어는 프로그램 실행, DB는 데이터만 전담한 것. 각자 알맞게 분업이 되어있는 것이다.
Apache
- 세계에서 가장 많이 쓰이는 HTTP 웹서버 중 하나다.
- 역할은 서비스 사용자가 URL을 입력하면 URL에 해당하는 서버에 설치된 apache가 실행되고, 사용자가 요청한 URL에 따라서 html, image와 같은 파일(resource)을 제공해준다.
PHP
- Apache와 같이 웹페이지를 제공하는 역할을 한다. Apache는 파일 형식으로 된 html을 수동적으로 전달하는 역할을 하는 반면, Php는 프로그래밍적 요소를 더해서 동적으로 웹페이지를 생성해내는 것이다. Mysql 같은 데이터베이스에서 데이터를 꺼내서 제공하는 역할도 한다.
Mysql
- 데이터베이스 제품 중 하나이고, 데이터를 관리하는 역할을 해준다. 원래는 파일에다가 데이터를 저장하지만, 파일들이 많아지고, 많은 양의 데이터를 관리해야하는 상황에서 효율적인 데이터 관리를 제공한다.
수동설치 vs 자동설치
-
apt 명령어를 이용한 설치는 소스 설치가 아니다. wget 등으로 소스파일 다운로드 후 컴파일,
설치를 진행하는 게 소스설치(수동설치)다.
-
자동설치 설치 과정 링크: https://yoshikixdrum.tistory.com/214
-
수동설치를 해야하는 이유?
- 패키지 설치로 간편하게 설치할 수 있지만, 불필요하게 설치되는 파일들이 시스템의 자원을 사용하게 되고 패키지 단위로 설치되기에 관리적으로 문제가 발생 가능성 있음
-
수동설치 시, /usr/local에 설치하는 것이 관례
명령어
sudo apt-get install @@@
sudo apt-get update
sudo apt-get upgrade
wget
tar xvfz
배운점
BIOS 란?
-
컴퓨터의 가장 중요한 시작 프로그램인 BIOS, 또는 기본 입출력 시스템(Basic Input/Output System)은 시스템 부팅을 담당하는 내장 코어 프로세서 소프트웨어입니다.
-
BIOS는 컴퓨터 전원을 켜면 맨 처음 운영 체제를 로딩하는 시스템으로, 컴퓨터를 나만의 것으로 만들어주는 모든 개인 설정이 이곳에 담겨 있습니다.
-
컴퓨터 내에서 VM 서버에 접속하기 링크
-
리눅스 명령어
해당 경로에서 vi 편집기: sudo vi @@@
저장 ESC → :wq
내용 지우기: clear
관리자 권한으로 계속 작성: $ sudo su => 이걸 하고나면 sudo 안 붙여도 됨
파일찾기: find [찾을 경로] [형식] "찾을 파일 이름.확장자"
모든 디렉토리에서 확장자가 jpg로 끝나는 파일 찾기 : find / -name '*.jpg'
만약, ls: cannot access ./run/user/1000/gvfs:
Permission denied 이런 에러가 나는 경우, -xdev 옵션을 추가하면 해결된다.
즉, find / -xdev -name 'ab*' 이렇게 하면 된다.
- 리눅스 속도 문제
- 해결: OS설정 변경 참고
- Virtual Box에서 Ubuntu를 실행하면 화면 깜빡임이 너무 심했고, 렉도 많이 걸렸다. 정확한 원인은 잘 모르겠지만 디스플레이의 3D 가속엔진과 시스템 프로세서 추가 할당을 하니까 증상은 좀 나아졌다.
- 최적화
Make란?
https://devbin.kr/2021/makefile-작성하기-gnu-make-사용하기/
리눅스 파일 색깔별 종류
- 일반파일 : 하얀색
- 디렉토리 파일 : 파란색
- 링크 파일 : 하늘색
- 실행 파일 : 초록색
- 압축 파일 : 빨간색
느낀점
-
검색을 잘 하는 것이 중요하다.
- 구글링을 할 때 기간 설정과 “” 설정의 중요성
- 해결 방법은 있다. 키워드를 잘 모를뿐. 검색을 하다보면 내가 어떤 키워드로 검색해야하는지 아는 경우도 있다.
-
해결방법이 도저히 보이지않을 때
- 잘 알지 못하더라도 정면 돌파한다. 특히, 에러를 잘 읽자
- 여러 곳에서 검색한 자료들을 짜집기하다보면 힌트를 얻을 수 있다.
-
참고했던 사이트 잘 정리하면서 과정 진행
-
검색을 할 떄, 한국말로 된 블로그를 주로 봤었는데, 이번 기회에 영어, 중국, 일본어 까지 접하는 계기가 되었다.