2017년 1월 25일 수요일

Amazon Web Service - 2.LinuxLAMP 웹 서버 설치

LinuxLAMP 웹 서버 설치

1. Amazon Linux에서 LAMP 웹 서버 설치 및 시작

1) 인스턴스 연결
Linux 가상 머신 시작 [3. Instance 연결] 참고

2) 퀵 소프트웨어 업그레이드 실행

[ec2-user ~]$ sudo yum update -y
cs

3) Apache 웹 서버, MySQL, PHP 소프트웨어 패키지 설치

1
[ec2-user ~]$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd
cs

4) Apache 웹 서버 시작

[ec2-user ~]$ sudo service httpd start
cs

5) Apache 웹 서버 시스템 부팅시 자동 시작 설정

[ec2-user ~]$ sudo chkconfig httpd on
cs

6) 웹 서버 테스트
Insance의 Public DNS 주소 또는 Public IP 주소 입력 후 Apache 테스트 페이지 확인

2. 파일 권한 설정


pache httpd가 처리하는 'Apache document root' 디렉터리에 보관된 파일을 처리. Amazon Linux Apache document root는 /var/www/html

1) www그룹을 인스턴스에 추가

[ec2-user ~]$ sudo groupadd www
cs

2) 사용자를 www그룹에 추가

[ec2-user ~]$ sudo usermod --G www ec2-user
cs

3) 재로그인 후 멤버십 확인

[ec2-user ~]$ exit
cs

[ec2-user ~]$ groups
ec2-user wheel www
cs

4) /var/www 및 콘텐츠의 소유권을 www 그룹으로 변경

[ec2-user ~]$ sudo chown -R root:www /var/www
cs

5) /var/www 및 하위 디렉터리의 디렉터리 권한을 변경해 그룹 쓰기 권한을 추가하고 미래 하위 디렉터리에서 그룹 ID 설정

[ec2-user ~]$ sudo chmod 2775 /var/www
cs

[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
cs

6) /var/www 및 하위 디렉터리의 파일 권한을 계속 변경해서 그룹 쓰기 권한 추가

[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
cs

3. LAMP 웹 서버 테스트

1) Apache 문서 루트에서 PHP 테스트 파일을 생성

[ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
cs

2) PHP 테스트 파일 확인
웹 브라우저에서 파일의 URL입력. Instance의 Public DNS 주소에 슬래시(/)와 파일이름이 추가된 형태
http://my.public.dns.amazonaws.com/phpinfo.php
페이지가 확인되지 않았을 경우 다음 명령어를 이용해 패키지가 모두 설치되었는지 확인

[ec2-user ~]$ sudo yum list installed httpd24 php56 mysql55-server php56-mysqlnd
cs

3) PHP 테스트 파일 삭제
테스트로 생성한 PHP파일의 내용은 보안상의 이유로 공개되면 안되기 때문에 삭제

[ec2-user ~]$ rm /var/www/html/phpinfo.php
cs

4. MySQL 서버 보안 유지

1) MySQL 서버 시작

[ec2-user ~]$ sudo service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK
 
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
 
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
...
 
Starting mysqld:                                           [  OK  ]
cs

2) mysql_secure_installation 실행

[ec2-user ~]$ sudo mysql_secure_installation
cs

a) 현재 root 암호 입력창. 기본은 없음. Enter로 넘어감.
b) Y를 눌러 암호 설정 모드 진입 후 암호 2회 입력
c) Y를 눌러 익명 사용자 계정 제거
d) Y를 눌러 원격 root 로그인 비활성화(활성화시 N)
c) Y를 눌러서 테스트 데이터베이스 제거
d) Y를 눌러서 권한 테이블을 다시 로드하고 변경사항 저장

3) MySQL 시스템 부팅시 자동 시작 설정

[ec2-user ~]$ sudo chkconfig mysqld on
cs

5. phpMyAdmin 설치

1) EPEL(Extra Packages for Enterprise Linux) 리포지토리를 활성화

[ec2-user ~]$ sudo yum-config-manager --enable epel
cs

2) phpMyAdmin 패키지 설치

[ec2-user ~]$ sudo yum install -y phpMyAdmin
cs

3) 로컬 시스템 액세스 허용
로컬 IP 주소 확인 후 서버 IP 주소를 로컬 IP 주소로 대체

[ec2-user ~]$ sudo sed --'s/127.0.0.1/your_ip_address/g' /etc/httpd/conf.d/phpMyAdmin.conf
cs

4) Apache 웹 서버 재시작

[ec2-user ~]$ sudo service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
cs

5) MySQL 서버 재시작

[ec2-user ~]$ sudo service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
cs

6) phpMyAdmin 접속 확인
웹 브라우저에서는 phpMyAdmin 설치의 URL을 입력.
Instace의 Public DNS 주소에 슬래시(/) 및 phpmyadmin이 추가된 형태
http://my.public.dns.amazonaws.com/phpmyadmin

참고 : phpMyAdmin 외부망 접속 수동 설정

1) phpMyAdmin.conf 설정

[ec2-user ~]$ cd /etc/httpd/conf.d
cs

[ec2-user ~]$ sudo vi phpMyAdmin.conf
cs

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
cs

위의 부분을 아래와 같이 수정
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Order Allow,Deny
   Allow from All
</Directory>
cs

2) httpd.conf 설정

[ec2-user ~]$ cd /etc/httpd/conf
cs

[ec2-user ~]$ sudo vi httpd.conf
cs

<Directory />
    AllowOverride none
    Require all denied 
</Directory>
cs

위의 부분을 아래와 같이 수정. 보통 102번째 라인에서 확인됨.
<Directory />
    AllowOverride none
    Require all granted 
</Directory>
cs

참고 사이트


Amazon LinuxLAMP 웹 서버 설치 가이드 참고

댓글 없음:

댓글 쓰기