centos에 nginx, mysql, php5 설치 및 설정하기

51
CentOS에 nginx, PHP, MySQL 설치하기 경성대학교 컴퓨터공학부 2014858110 정 준 혁 1

Upload: jun-jung

Post on 18-Aug-2015

57 views

Category:

Software


5 download

TRANSCRIPT

Page 1: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

CentOS에 nginx, PHP, MySQL 설치하기

경성대학교 컴퓨터공학부 2014858110 정 준 혁

1

Page 2: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. yum 소개 및 간단한 사용법 2. CentOS 버전 확인하는 방법 3. nginx 설치 4. php-fpm 및 라이브러리 설치 5. php-fpm을 nginx와 연동 6. PHP 수호신 설치 7. MySQL 설치 및 설정

목차

[email protected]에 nginx, PHP, MySQL 설치하기 2

Page 3: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•Yellow dog Updater, Modified의 약자로, RPM 기반의 패키지 관리 프로그램 •레드햇 계열의 리눅스에서 사용됨 (데비안 계열의 리눅스에서는 APT를 사용) •기존 리눅스에서 불편했던 패키지 설치 및 제거를 편리하게 만들어 줌

•Package 관리 프로그램 YUM 소개

3 [email protected]에 nginx, PHP, MySQL 설치하기

Page 4: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•패키지 검색은 다음과 같은 방법으로 하실 수 있습니다.

•예> gcc 라는 패키지의 검색 결과 (search 명령어)

•YUM의 간단한 사용법 - 패키지 검색

yum search <패키지_포함_단어> yum list <패키지_이름>

4 [email protected]에 nginx, PHP, MySQL 설치하기

검색 결과는 다음과 같이 나와요!

Page 5: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•패키지 설치는 다음과 같은 방법으로 하실 수 있습니다.

•예> gcc 라는 패키지의 설치

•YUM의 간단한 사용법 - 패키지 설치

sudo yum install <패키지_이름>

5 [email protected]에 nginx, PHP, MySQL 설치하기

의존 패키지도 함께 설치돼요!

패키지 설치에는 관리자 권한이 필요해요!

현재 설치하는 패키지 알림

Page 6: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•다음과 같이 여러개의 패키지를 한번에 설치할 수도 있습니다.

•중간중간 <y/N>과 질문의 대답을 모두 y로 주고싶다면, 다음과 같이 하면 됩니다.

•만약 설치하다가 문제가 생겼다면, 다음을 통해 재설치를 할 수 있습니다.

•YUM의 간단한 사용법 - 패키지 설치 - Tip

sudo yum install <패키지_이름_1> <패키지_이름_2> <패키지_이름_3> …………

6 [email protected]에 nginx, PHP, MySQL 설치하기

sudo yum -y install <패키지_이름>

sudo yum reinstall <패키지_이름>

Page 7: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•패키지 제거는 다음과 같은 방법으로 하실 수 있습니다.

•예> gcc 라는 패키지를 제거하려고 했을 때

•YUM의 간단한 사용법 - 패키지 제거

sudo yum erase <패키지_포함_단어>

7 [email protected]에 nginx, PHP, MySQL 설치하기

여기에 지워질 애들이 나타납니다!

Page 8: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•패키지 배포서버의 리스트는 다음 위치 내에 파일로 저장되어 있습니다.

•기본 파일은 다음과 같이 저장되어 있으며, 확장자는 repo를 가집니다.

•YUM의 간단한 사용법 - 패키지 배포서버 추가 - 1

/etc/yum.repos.d/

8 [email protected]에 nginx, PHP, MySQL 설치하기

Page 9: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•repo 파일의 기본적인 구조는 다음과 같습니다.

•YUM의 간단한 사용법 - 패키지 배포서버 추가 - 2

[패키지 명]

name= 배포 패키지 명

mirrorlist= 미러 리스트 주소

baseurl= 배포 서버 주소

gpgcheck= GPG 인증 사용 유무 (1 = True, 0 = False)

gpgkey= GPG 인증키 파일 위치

enabled= 패키지 서버 활성화 유무 (1 = Enabled, 0 = Disabled)

9 [email protected]에 nginx, PHP, MySQL 설치하기

2개 중 하나만 적을 수 있음!

Page 10: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•nginx 배포서버 추가를 예로 들자면, 먼저 다음을 통해 repo 파일을 만들어주시고,

•그리고 다음 내용을 vim 에디터나 emacs 등을 통해 넣어 저장해주시면 됩니다.

•YUM의 간단한 사용법 - 패키지 배포서버 추가 - 3

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

10 [email protected]에 nginx, PHP, MySQL 설치하기

sudo touch /etc/yum.repos.d/nginx.repo

Page 11: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•저장이 완료 되었으면, 다음 명령어를 통해 yum DB를 업데이트 해주세요.

•그러면 list 또는 search 결과로, nginx 패키지가 나오는 것을 확인하실 수 있습니다.

•YUM의 간단한 사용법 - 패키지 배포서버 추가 - 4

11 [email protected]에 nginx, PHP, MySQL 설치하기

yum update

Page 12: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•YUM Repo 패키지 외의 패키지를 설치할 땐 자세한 리눅스 배포버전을 알아야 합니다. •터미널에서 다음 명령어를 통해 자신의 Linux 배포버전을 확인하실 수 있습니다.

•결과 값 예제

•Linux 배포버전 확인하기

12 [email protected]에 nginx, PHP, MySQL 설치하기

lsb_release -a

Page 13: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•Apache나 lighttpd와 비슷한 역할을 하는 HTTP 서버 프로그램 중 하나 •최근 빠른 반응속도 때문에 Apache 서버에서 NginX로 옮겨가는 기업이 많아짐 •Fast-CGI 를 지원하기 때문에 서버사이드-스크립트 언어의 속도면에서 강점을 보임

•러시아산 HTTP 서버 NginX 소개

13 [email protected]에 nginx, PHP, MySQL 설치하기

Page 14: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•기본으로 제공되는 YUM Repository에는 Nginx의 배포 서버가 포함되어 있지 않습니다. •따라서 다음을 통해, repo 파일을 생성해주시고,

•그리고 다음 내용을 vim 에디터나 emacs 등을 통해 넣어 저장해주시면 됩니다.

•Nginx 설치 - YUM에 배포 서버 추가 - 1

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

14 [email protected]에 nginx, PHP, MySQL 설치하기

sudo touch /etc/yum.repos.d/nginx.repo

Page 15: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•저장이 완료 되었으면, 다음 명령어를 통해 yum DB를 업데이트 해주세요.

•그리고 다음 명령어를 통해 nginx 배포 서버가 잘 추가되었는지 확인해주세요.

•Nginx 설치 - YUM에 배포 서버 추가 - 2

15 [email protected]에 nginx, PHP, MySQL 설치하기

yum update

yum list nginx

이렇게 뜨면 성공!

Page 16: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•다음 명령어를 통해 nginx를 설치해주세요.

•다음과 같이 뜬다면, 설치가 완료된 것입니다.

•Nginx 설치 (초간단)

16 [email protected]에 nginx, PHP, MySQL 설치하기

sudo yum -y install nginx

Page 17: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•먼저 다음 명령어를 통해 nginx서비스를 시작해주세요.

•그리고 다음 두 명령어를 통해 80번 포트를 방화벽에서 열어주시고,

•다음을 통해 저장해주시고, 서비스를 재시작 해주세요.

•Nginx 서비스 시작 및 테스트 - 1

17 [email protected]에 nginx, PHP, MySQL 설치하기

sudo nginx

iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT iptables -I OUTPUT 1 -p tcp --dport 80 -j ACCEPT

service iptables save /etc/init.d/iptables restart

Page 18: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•그리고 외부에서 접속하였을 때 다음과 같이 나오면 성공한 것입니다.

•Nginx 서비스 시작 및 테스트 - 2

18 [email protected]에 nginx, PHP, MySQL 설치하기

Page 19: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•nginx 서비스의 시작은 다음 명령어를 통해 하실 수 있습니다.

•nginx 서비스의 종료, 리로드, 설정 리로드는 다음 명령어를 통해 하실 수 있습니다.

•더 자세한 내용은 nginx 사이트 또는 다음 명령어를 통해 확인하실 수 있습니다.

•기본적인 NginX 명령어들

sudo nginx

sudo nginx -s <명령어> | <명령어> 자리에는 stop, quit, reload, reopen 등이 들어갈 수 있음

nginx -h

19 [email protected]에 nginx, PHP, MySQL 설치하기

Page 20: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 먼저 다음을 복사·붙여넣기 하여 기본 설정 폴더들을 생성해줍니다.

2. 그리고, 다음을 복사·붙여넣기 하여 웹사이트가 운영될 폴더들을 생성해줍니다.

•NginX 기본 설정하기 - 기본폴더 생성

mkdir -p /etc/nginx/sites-available mkdir -p /etc/nginx/sites-enabled mkdir -p /etc/nginx/ssl

sudo mkdir -p /var/www sudo chown :nginx /var/www sudo chmod 775 /var/www

사용 할 사이트 설정 폴더현재 돌아가고 있는 사이트 목록(심볼릭)

HTTPS 연결에 사용되는 인증서 저장폴더

웹사이트가 운영될 폴더 (루트폴더)

20 [email protected]에 nginx, PHP, MySQL 설치하기

Page 21: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 다음 파일을 에디터로 여서서, 내용을 다 지우시고 아래의 내용을 붙여넣기 해주세요.

•NginX 기본 설정하기 - 권장설정 붙여넣기

/etc/nginx/nginx.conf

21 [email protected]에 nginx, PHP, MySQL 설치하기

user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 100; index index.html index.php; gzip on; include /etc/nginx/sites-enabled/*; }

Page 22: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 다음 명령어를 통해 기본 설정파일을 하나 생성해주세요.

2. 그리고 vim등의 에디터로 여셔서 다음을 붙여넣기 하고 저장해주세요.

•NginX vHost 설정하기 - 설정 파일 생성 - 1

sudo touch /etc/nginx/sites-available/default

22

server { listen 80; server_name localhost; root /var/www/default; access_log /var/log/nginx/default.access.log main; location / { include /etc/nginx/conf.d/php-fpm; }

error_page 404 /404.html; error_page 403 /403.html; }

[email protected]에 nginx, PHP, MySQL 설치하기

Page 23: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

3. 그리고 다음 명령어를 통해 심볼릭 링크를 생성해줍니다.

4. 해당 폴더 내에 잘 생성되었는지 확인하신 후, 다음을 통해 서비스를 reload 해주세요. 이런 오류가 뜨더라도 정상입니다. (아직 PHP-fpm을 설치하지 않았기에..ㅎㅎ)

•NginX vHost 설정하기 - 설정 파일 생성 - 2

sudo ln /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

23 [email protected]에 nginx, PHP, MySQL 설치하기

sudo nginx -s reload

Page 24: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 서버에 접속하였을 때, 다음 페이지가 보이면 잘 된 것입니다. (아직 아무것도 없으므로)

•NginX vHost 설정하기 - 테스트

24 [email protected]에 nginx, PHP, MySQL 설치하기

Page 25: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•NginX 기본 설정하기 - vHost 설정파일 구조보기 server { listen 80; server_name localhost; root /var/www/default; access_log /var/log/nginx/default.access.log main; location / { include /var/log/nginx/conf.d/php-fpm; }

error_page 404 /404.html; error_page 403 /403.html; }

리스닝 포트 설정

호스팅 될 파일들이 저장된 위치이 사이트로 넘길 호스트 명 설정

•V-Host 사용법 : 연결시킬 도메인을 server_name 부분에 넣고, root 부분에 폴더 위치를 지정해주면 됨 •location 이란 : 위에서 지정된 폴더 내로 들어온 request 부분에 대한 처리를 맵핑하는 부분 (URL 필터와 비슷하게 동작) (rewrite나 스크립트 해석기등을 추가할 때 여기서 가능)

25

이 호스트에 대한 로그파일

php-fpm 설정파일 포함폴더 내 파일에 대한 처리기 맵핑 부분

[email protected]에 nginx, PHP, MySQL 설치하기

Page 26: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•JSP와 같은 인기있는 서버-사이드 프로그래밍 언어 중 하나 •전체적인 코드 및 언어가 직관적이고 간결하며, 프레임워크가 많아 개발하기가 쉽다 •현재 PHP5로 넘어오며 객체지향과 MVC 모델에 맞춘 함수 및 기능이 추가됨

•PHP 소개

26 [email protected]에 nginx, PHP, MySQL 설치하기

Page 27: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•PHP with FastCGI Process Manager 의 줄임말 •이전에는 PHP 처리를 웹서버 내 Worker 프로세스 혼자가 처리한 반면, FastCGI는 커넥션 수 만큼 소켓 및 쓰레드를 생성하여, 다중처리가 가능 (속도가 비약적으로 향상됨)

•PHP-fpm 소개

27 [email protected]에 nginx, PHP, MySQL 설치하기

Page 28: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 다음 명령어를 통해 php-fpm을 설치해줍니다.

2. 그리고 다음 명령어를 통해 기타 필요한 라이브러리들도 설치해줍니다.

3. 마지막으로 다음을 통해 php-fpm Damon을 실행해주세요.

•PHP-fpm 설치 및 실행

sudo yum -y install php-fpm php-common

28

sudo yum -y install php-pear php-mysqlnd php-pecl-memcache php-pecl-memcached php-gd php-mcrypt

sudo /etc/init.d/php-fpm start

[email protected]에 nginx, PHP, MySQL 설치하기

Page 29: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 다음 명령어를 입력해주세요.

2. 아래와 같이 “php-fpm”이 9000 포트를 LISTEN 하고 있으면 성공입니다.

•PHP-fpm Damon 실행 확인하기

netstat -anp | grep ":9000"

29 [email protected]에 nginx, PHP, MySQL 설치하기

Page 30: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 다음을 통해 php-fpm 설정파일을 만들어주시고, vim 등으로 열어주세요.

2. 그리고 다음을 붙여넣기 하신 후 저장해주세요.

•PHP-fpm과 NginX 연동 - 1

30

sudo touch /etc/nginx/conf.d/php-fpm

location ~ \.php$ { try_files $uri = 404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

[email protected]에 nginx, PHP, MySQL 설치하기

Page 31: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

3. 다음 명령어를 통해 nginx를 재시작 해주세요.

4. 그리고 테스트를 위해 다음을 통해 파일을 생성해주세요.

5. 생성한 파일을 vim등으로 여셔서 다음 내용을 붙여넣기 하시고, 저장해주세요.

•PHP-fpm과 NginX 연동 - 2

31

sudo nginx -s reload

sudo touch /var/www/default/phpinfo.php

<?php phpinfo(); ?>

[email protected]에 nginx, PHP, MySQL 설치하기

Page 32: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

6. 브라우저에서 서버의 phpinfo.php 파일을 열었을 때, 다음이 보이면 잘 된 것입니다

•PHP-fpm과 NginX 연동 - 3

32 [email protected]에 nginx, PHP, MySQL 설치하기

Page 33: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•PHP 내 존재하는 보안 문제점을 해결해주는 외부 플러그인 •PHP파일 내 원격 코드를 작성하여, 서버에서 실행될 수 있는 취약점들을 보완해 줌 •라이선스는 PHP License를 따르므로 상업적 이용시에도 문제는 없음

•PHP 수호신 소개

33 [email protected]에 nginx, PHP, MySQL 설치하기

Page 34: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 먼저 임시 작업을 할 폴더인 /tmp 폴더로 들어가주세요.

2. 그리고 다음 명령어를 통해 EPEL Repo 파일을 다운로드 해줍니다.

3. 마지막으로 다음을 통해 EPEL Repo를 설치해주세요.

•PHP-Suhosin 설치 - EPEL Repo 활성화

cd /tmp

34 [email protected]에 nginx, PHP, MySQL 설치하기

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

sudo rpm -ivh epel-release-6-8.noarch.rpm

Page 35: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 먼저 다음을 통해 Package Repo DB를 업데이트 해주세요.

2. 그리고 다음 명령어를 통해 php-suhosin을 설치해주세요.

•PHP-Suhosin 설치

yum update

35 [email protected]에 nginx, PHP, MySQL 설치하기

sudo yum -y install php-suhosin

Page 36: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. php-fpm 프로세스를 다음 명령어를 통해 재시작 해주세요.

2. 그리고 이전에 생성했었던 phpinfo.php 파일에 다음과 같은 항목이 있으면 성공입니다.

•PHP와 php-suhosin 연동 확인 - 1

sudo service php-fpm restart

36 [email protected]에 nginx, PHP, MySQL 설치하기

Page 37: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 또는 다음 명령어를 입력하였을 때 아래와 같이 뜬다면 성공입니다.

•PHP와 php-suhosin 연동 확인 - 2

php-fpm -v

37 [email protected]에 nginx, PHP, MySQL 설치하기

Page 38: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•세계에서 가장 널리 사용되는 관계형 데이터베이스 프로그램 중 하나 •각 플랫폼 및 언어들과의 호환성이 높은 장점을 가지고 있음 •현재는 Oracle에서 관리하고 있어서 다운로드시 회원가입이 필요하게 됨

•MySQL 소개

38 [email protected]에 nginx, PHP, MySQL 설치하기

Page 39: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 터미널을 실행하셔서, 다음 명령어를 통해 MySQL을 설치해주세요..

2. 그리고 다음 명령어를 통해 mysql 서비스를 시작해주세요.

•HomeBrew를 통한 MySQL 설치 - 1

sudo yum install mysql mysql-server

39 [email protected]에 nginx, PHP, MySQL 설치하기

sudo service mysqld start

Page 40: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 다음 명령어를 통해 MySQL 세팅을 진행합니다.

2. 지시되는 사항에 따라 맞춰서 잘 입력해주세요. (아래는 권장사항) •현재 설정된 패스워드 입력(첫 설치시에는 없음) •root 계정에 패스워드를 설정할 것인가? [Y] •root 패스워드 입력: (복잡한 비밀번호) •anonymous 계정 제거? [Y] •원격 로그인 차단? [Y] •테스트 데이터이스 제거 및 차단? [Y] •권한 테이블 새로고침? [Y]

•MySQL 설정 - 1

40

sudo /usr/bin/mysql_secure_installation

[email protected]에 nginx, PHP, MySQL 설치하기

Page 41: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

3. 설정이 완료되었으면, 다음을 통해 MySQL 서버에 잘 연결되는지 테스트 합니다.

4. 아래와 같이 콘솔이 뜬다면 MySQL 설정 완료.

•MySQL 설정 - 2

41

mysql -uroot -p

[email protected]에 nginx, PHP, MySQL 설치하기

Page 42: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•MySQL DB를 더 편리하게 관리할 수 있게 해주는 PHP 웹 프로그램 •직관적인 UI로 사용이 쉬움 •단, 보안에는 치명적일 수도 있으므로, 내부에서만 접속가능하게 하는 것이 필수

•phpMyAdmin 소개

42 [email protected]에 nginx, PHP, MySQL 설치하기

Page 43: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 터미널을 실행하셔서, 다음 명령어를 통해 phpmyadmin을 설치합니다.

•phpMyAdmin 설치

sudo yum -y install phpmyadmin

43 [email protected]에 nginx, PHP, MySQL 설치하기

Page 44: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 터미널을 실행하셔서, 다음을 통해 pma vHost 설정파일을 생성해주세요.

2. 그리고 vim에디터 등으로 열어 다음을 붙여넣기 하시고, 저장해주세요.

•phpMyAdmin과 NginX 연동 - No HTTPS - 1

sudo touch /etc/nginx/sites-available/pma_nohttps

44

server { listen 81; server_name localhost; root /usr/share/phpMyAdmin;

error_log /var/log/nginx/phpmyadmin.error.log; access_log /var/log/nginx/phpmyadmin.access.log main; include /etc/nginx/conf.d/php-fpm; }

[email protected]에 nginx, PHP, MySQL 설치하기

Page 45: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

3. 저장 이후, 다음을 통해 심볼릭 링크를 sites-enabled 폴더에 생성해주세요.

4. 그리고 다음을 통해 nginx를 리로드 해줍니다.

5. 그리고 다음을 통해 방화벽에 81포트에 대해 예외를 추가해주세요.

•phpMyAdmin과 NginX 연동 - No HTTPS - 2

45

nginx -s reload

sudo ln /etc/nginx/sites-available/pma_nohttps /etc/nginx/sites-enabled/pma_nohttps

[email protected]에 nginx, PHP, MySQL 설치하기

iptables -I INPUT 1 -p tcp --dport 81 -j ACCEPT iptables -I OUTPUT 1 -p tcp --dport 81 -j ACCEPT service iptables save /etc/init.d/iptables restart

Page 46: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

6. http로 81포트로 접속하였을 때, 다음과 같은 로그인 페이지가 뜨면 성공입니다.

•phpMyAdmin과 NginX 연동 - No HTTPS - 3

46 [email protected]에 nginx, PHP, MySQL 설치하기

Page 47: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

1. 먼저 다음 명령어를 통해 nginx 인증서 폴더에 인증서를 하나 생성해주세요.

2. 다음과 같이 뜨면 암호화 인증서 생성이 완료된 것 입니다.

•phpMyAdmin과 NginX 연동 - With HTTPS - 1

47

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=State/L=Town/O=Office/CN=phpmyadmin" -keyout /etc/nginx/ssl/phpmyadmin.key -out /etc/nginx/ssl/phpmyadmin.crt

[email protected]에 nginx, PHP, MySQL 설치하기

Page 48: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

3. 터미널을 실행하셔서, 다음을 통해 SSL pma vHost 설정파일을 생성해주세요.

4. 그리고 다음을 붙여넣기 하시고, 저장해주세요.

•phpMyAdmin과 NginX 연동 - With HTTPS - 2

sudo touch /etc/nginx/sites-available/pma_withhttps

48

server { listen 82; server_name localhost; root /usr/local/share/phpmyadmin;

error_log /usr/local/etc/nginx/logs/phpmyadmin.error.log; access_log /usr/local/etc/nginx/logs/phpmyadmin.access.log main;

ssl on; ssl_certificate ssl/phpmyadmin.crt; ssl_certificate_key ssl/phpmyadmin.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; include /usr/local/etc/nginx/conf.d/php-fpm; }

[email protected]에 nginx, PHP, MySQL 설치하기

Page 49: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

5. 저장 이후, 다음을 통해 심볼릭 링크를 sites-enabled 폴더에 생성해주세요.

6. 그리고 다음을 통해 nginx를 리로드 해줍니다.

7. 그리고 다음을 통해 방화벽에 82포트에 대해 예외를 추가해주세요.

•phpMyAdmin과 NginX 연동 - With HTTPS - 3

49

nginx -s reload

sudo ln /etc/nginx/sites-available/pma_withhttps /etc/nginx/sites-enabled/pma_withhttps

[email protected]에 nginx, PHP, MySQL 설치하기

iptables -I INPUT 1 -p tcp --dport 82 -j ACCEPT iptables -I OUTPUT 1 -p tcp --dport 82 -j ACCEPT service iptables save /etc/init.d/iptables restart

Page 50: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

8. https로 82포트로 접속하였을 때, 다음과 같은 로그인 페이지가 뜨면 성공입니다.

•phpMyAdmin과 NginX 연동 - With HTTPS - 4

50 [email protected]에 nginx, PHP, MySQL 설치하기

Page 51: CentOS에 Nginx, MySQL, PHP5 설치 및 설정하기

•만약 php의 모듈 로드에 오류가 뜬다면, php-fpm 서비스를 재시작 해보세요. •phpMyAdmin에 의존적인 php 모듈들은 모두 정상적으로 설치가 되었으나, php-fpm 프로세스가 재시작 되지 않아 이전 설정파일을 읽어오기 때문입니다.

•PHP Session 관련 오류가 나는 경우, 다음을 통해 세션 폴더를 생성해주세요.

•php 설치 이후, 해당 폴더는 직접 생성해 주어야 합니다. (보통 세션보다는 쿠키를 사용하기에…)

•phpMyAdmin Trouble Shooting - 대표적인 오류들

51 [email protected]에 nginx, PHP, MySQL 설치하기

sudo mkdir -p /var/lib/php/session sudo chmod 777 /var/lib/php/session