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 nginx-mod-http-geoip
# service nginx start
http://당신의서버아이피/ 로 접속해서
이 화면이 나오면 됩니다.
+ 추가 설정 : 방문자의 위치 정보를 알려주는 모듈을 설치합니다.
# cd /usr/share/GeoIP
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
# gzip -d GeoLiteCity.dat.gz
# rm GeoLiteCity.dat.gz
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; 다음 위치에 } 괄호를 입력하여 구문을 종료하고, 그 다음 내용을 모두 삭제한다.
그 후 그림과 같이 다음 구문 추가
1 2 3 4 5 6 7 8 9 10 11 | 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; geoip_country /usr/share/GeoIP/GeoIP .dat; geoip_city /usr/share/GeoIP/GeoLiteCity .dat; |
최종적으로 이런 모습이어야 합니다.
제대로 작업했는지 확인 후 서비스 재시작
# 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 웹루트 위치에 적절한 파일을 업로드한 후에 웹브라우저로 접속해보세요.
세팅 완료!!
이제 원하는 서비스를 구동하시면 됩니다.
'WEB SERVER' 카테고리의 다른 글
[ HTTP ] 응답코드 정리 (0) | 2019.04.02 |
---|