리눅스라는 컴퓨터 운영체제가 있습니다.
GPLv2 를 따르며 오픈소스이며, 매우 오래된 역사를 가지고 있습니다. 오랜 시간을 통해 검증이 된 운영체제이죠.
리눅스의 파생 운영체제로는 Ubuntu, Debian, CentOS, Fedora, Amazon Linux, Android, AIX, Redhat 등이 있습니다.
Ubuntu, Debian 는 데비안 계열의 운영체제이며 최신기술의 빠른 적용과 자동화가 특징인 운영체제입니다.
CentOS, Fedora, Amazon Linux, Android, AIX, Redhat 은 CentOS 계열이라고 하는데, 이 운영체제들 끼리는 명령어 및 폴더의 구조가 비슷합니다.
CentOS 및 Fedora 는 무료 오픈소스인데, 최신기술 적용이 심각하게 느립니다.
Redhat 은 유료 운영체제입니다. 1년에 120만원쯤 사용료가 있습니다.
Android 는 모바일 운영체제입니다.
AIX 는 IBM 서버에서만 쓸 수 있는 운영체제입니다.
Amazon Linux 는 Amazon Web Service 에서만 쓸 수 있는 운영체제입니다.
패키지 업데이트가 엄청나게 느린 CentOS 와는 다르게, Amazon Linux 가 최신 소프트웨어 설치를 제공하므로, 좋은 운영체제로 판단하고 이것의 설치법을 여기에 적어봅니다.
매우 자세히 적지만, 중간중간 과정생략이 있습니다.
* 서버 세팅방법
먼저 AWS 에 가입이 되어 있어야 합니다.
1. 운영체제 선택
Amazon Linux AMI(Amazon Machine Image) 를 선택합니다. 서버 생성 첫페이지 목록에서 고르세요.
Amazon Linux 2 라는 것이 생겨서 살펴봤는데, 아직 실사용하기엔 문제가 있어보이더군요. Amazon Linux AMI 를 선택합니다.

2. 기타 설정은 생략합니다. 사양만 잘 고르고 다음다음 누르시면 됩니다.
아무튼 쉘에 로그인

3. 현재 운영체제에 설치되어 있는 프로그램 최신버전 패치
# yum update
Amazon Linux 는 CentOS 계열이며 패키지 관리자 프로그램으로 yum 을 사용합니다.
4. 시스템 시간 설정 - Linux Timezone Setting
# vi /etc/sysconfig/clock
UTC 를 찾아서 Asia/Seoul 로 변경
![]()
이 부분을 찾아서
![]()
이렇게 변경.
다음의 명령어도 실행합니다.
# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
시간 확인
# date

5. Nginx 웹서버 설치
어떤 버전이 설치되는지 확인하기
# yum info nginx

1.12.1 버전이 설치되겠네요. 충분히 최신버전입니다.
# yum install nginx
# service nginx start
http://당신의서버아이피/ 로 접속해서

이 화면이 나오면 됩니다.
6. PHP-FPM 설치
php 패키지 검색
# yum search php
많이 나올텐데
php56 또는 php70 또는 php71 을 설치하세요.
php 7.2 는 호환성 이슈가 있어서 설치하는 것을 추천하지 않습니다.
이 블로그 글에서는 php 7.1 을 설치하겠습니다.
# yum install php71-fpm

패키지 설치시에 어떤 것들이 추가로 설치되는지 한번쯤을 봐보세요.
* 널리 쓰이는 PHP 모듈 설치
# yum install php71-curl php71-mbstring php71-mcrypt php71-gd
추가로 설치하고 싶은 모듈이 있으면 yum search 명령어로 패키지명 확인 후 설치해보세요.
# service php-fpm-7.1 start
연동작업은 나중에 합니다.
7. MYSQL 설치
DB 서버 설치는 다루지 않겠습니다. 아마도 RDS 를 쓰겠죠.
여기서는 MYSQL 클라이언트 프로그램만 설치합니다.
# yum install mysql56
# mysql
![]()
이렇게 에러 메세지가 나오면 정상입니다.
* PHP MYSQL native driver 설치
# yum install php71-mysqlnd
php 에서 mysqli 및 pdo 함수를 사용할 수 있게 됩니다.
8. PHP Default timezone 설정하기
php 의 date 함수가 참조하는 timezone 을 설정합니다.
어느 파일을 수정해야 하는지 탐색
# cat /etc/php-7.1.d/php.ini
# ll /etc/php.ini
# ll /etc/alternatives/php.ini
결과적으로 php 콘솔에서 참조하는 파일은 /etc/php-7.1.ini 이고, php-fpm 에서 참조하는 파일은 /etc/php-fpm-7.1.conf 입니다.
# vi /etc/php-7.1.ini
# vi /etc/php-fpm-7.1.conf
date.timezone 값을 찾아서 주석을 제거하고 시간을 설정해주세요.

이 값을 찾아서

이렇게 변경.
9. 부팅시 자동실행 설정
자동으로 실행되는 서비스목록 확인하기
# chkconfig --list

저 2개의 서비스의 자동실행을 켜야 합니다.
# chkconfig nginx on
# chkconfig php-fpm-7.1 on

# chkconfig --list
* 테스트를 위해서 재부팅
# reboot
재부팅 후 다음 명령어로 확인
# service nginx status
# service php-fpm-7.1 status

10. 연동 설정
nginx 에서 php-fpm 으로 변수를 전달하는 파일(fastcgi_params) 수정
# vi /etc/nginx/fastcgi_params
https://blog.lael.be/demo-generator/ami-nginx/fastcgi_params.php 이 링크 문서에 쓰여진 내용대로 수정합니다.

일치하지 않는 도메인 요청 연결 사이트 (기본사이트) 수정
# vi /etc/nginx/conf.d/default.conf
https://blog.lael.be/demo-generator/ami-nginx/default.conf.php 의 문서를 참조합니다.
이 글에서는 첫번째 옵션인 일치하지 않는 도메인 모두 차단을 사용하겠습니다.

nginx 환경설정 수정
nginx.conf 의 기본값이 조금 이상하므로 다음과 같이 수정합니다. 왜 이렇게 바꾸는지 설명은 생략합니다. 적당히 이해해보세요.
# vi /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf; 다음 위치에 } 괄호를 입력하여 구문을 종료하고, 그 다음 내용을 모두 삭제한다.
그 후 그림과 같이 다음 구문 추가
[code language="bash"]
gzip on;
gzip_min_length 10240;
gzip_buffers 32 32k;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript text/xml text/css;
gzip_vary on;
server_tokens off;
[/code]

최종적으로 이런 모습이어야 합니다.
제대로 작업했는지 확인 후 서비스 재시작
# service nginx configtest
# service nginx restart

11. 웹 사용자 추가
사용자 추가
# adduser myuser1
사용자 비밀번호 설정
# passwd myuser1
웹서버 사용을 위해서 권한 설정
# chmod 701 /home/myuser1
사용자 전환 후 웹 디렉토리 생성
# su -l myuser1
# mkdir www
# exit
12. 사용자 php-fpm 추가
https://blog.lael.be/demo-generator/ami-nginx/php-fpm-user.php 을 보고 추가합니다.
사용자당 1개의 파일을 작성해야 합니다.
# vi /etc/php-fpm-7.1.d/myuser1.conf
/etc/php-fpm-7.1.d/ 위치에 기본 파일 (www.conf) 이 있는데 그대로 내버려둡니다.
13. 사용자 nginx 파일 추가
https://blog.lael.be/demo-generator/ami-nginx/my-example-site.com.php 을 보고 설정합니다.
사이트 주소, 웹루트 디렉토리, 사용자 아이디를 입력합니다.
# vi /etc/nginx/conf.d/samplesite.com.conf
14. 설정파일 적용 및 테스트
# service nginx restart
# service php-fpm-7.1 restart
/home/myuser1/www 웹루트 위치에 적절한 파일을 업로드한 후에 웹브라우저로 접속해보세요.
세팅 완료!!
이제 원하는 서비스를 구동하시면 됩니다.
Conversation
In the margins
0 notes
No comments yet. Be the first to leave a note.