아파치 웹 서비스 프로그램 시작 systemctl status httpd →동작 시작sudo systemctl start httpd
동작 확인 sudo systemctl status httpd → Active : active(running) 동작 중임
웹 서버 접속 확인 웹 브라우저 주소창에 인스턴스 주소를 입력하면 test 페이지가 뜨면 서비스가 되고 있는 것(그림1) 그림 1. 웹 서버 접속 확인
index.html sudo vi /var/www/html/index.html(그림2) 그림 2.
PHP가 잘 동작하는지 확인 아파치가 기본적으로 사용하는 DocumentRoot는 /var/www/html sudo vi /var/www/html/phpinfo.php ------------------ <?php phpinfo(); ?> 작성 후 :wq ------------------ sudo systemctl restart httpd → php 적용을 위해서 재시작
phpinfo.php 확인 윈도우 웹 브라우저 주소창에 EC2인스턴스 IP주소/phpinfo.php 입력 →웹 브라우저에 php관련 내용이 표시(그림3) 그림 3. phpinfo.php 확인
DB 시작 및 접속 DB는 MySQL 또는 Maria DB를 사용 systemctl status mariadb sudo systemctl mariadb → mariadb 서비스 시작 mysql -u root → mariadb monitor 프로그램 동작 → MariaDB접속 show databases; ※database(Mariadb)안에 mysql db(schema : table을 가지고 있음)가 있음 create database wpDB; → wpDB DB생성 show databases; → wpDB가 생성되었는지 확인 ※명령어는 보통 대문자, 외에는 소문자로 사용함! ex) SHOW DATABASES;
워드프레스가 DB와 연동될 때 사용할 사용자 생성(grant 권한 on 대상 to 사용자 identified by 비밀번호) grant all on wpDB.* to wpUser@localhost identified by '1234'; → 비밀번호 1234로 설정된 wpUser가 wpDB 데이터베이스의 모든 테이블들에 대해 읽고, 쓰고, 수정, 삭제하는 모든 권한이 부여되었다는 뜻 ※all : CRUD(Create, Select(Read), Update, Delete) flush privileges; → 사용자에 대한 설정을 한 후 적용을 시켜줘야함 exit → 이후 MariaDB 종료
워드프레스 프로그램 설치 wget https://ko.wordpress.org/wordpress-4.9.6-ko_KR.tar.gz → wget 명령어를 통해 워드프레스 압축 파일 다운로드 ls → wordpress.4.9.6.-ko.KR.tar.gz 파일이 있는지 확인 tar xfz wordpress-4.9.6-ko_KR.tar.gz → 압축 해제 → 해당 디렉토리에 'wordpress' 디렉토리(폴더)가 생성
wordpress 위치 이동 아피치의 documentRoot /var/www/html로 이동 sudo mv wordpress /var/www/html → /var/www/html 아래에 wordpress와 같은 이름으로 파일을 이동 →파일 이동 시 변경하고자하는 이름이 있다면 html/이름 을 써주면 됨. ex) 해당 파일 또는 디렉토리를 다른 이름으로 저장하고 싶다면 sudo mv wordpress /var/www/html/a → a라는 이름으로 바껴서 이동 ls -l /var/www/html
소유자 변경 현재 wordpress 디렉토리의 소유자는 'ec2-user' wordpress는 apache가 사용할 디렉토리이므로 소유자를 apache로 변경하는 것이 좋음 chown 소유자.소유그룹 대상 ※chown change owner sudo chown -R apache.apache /var/www/html/wordpress ※ -R : wordpress 아래의 모든 디렉토리와 파일에 대한 권한을 한꺼번에 변경, 넣어주지 않으면 wordpress 아래의 파일에 대한 권한은 ec2-user임. ls -l /var/www/html → drwxr-xr-x 5 apache apache 4096 Jun 10 2018 wordpress →소유자 ec2-user에서 소유자 apache로 변경됨. sudo chomd 777 /var/www/html/wordpress →권한 변경 → 소유자, 그룹, 그외 사용자에게 읽기, 쓰기, 실행 권한을 부여 → drwxrwxrwx 5 apache apache 4096 Jun 10 2018 wordpress
※ 소유권, 퍼미션 퍼미션(permission) : 파일을 읽고(R), 쓰고(W), 실행(X) 할 수 있는 일련의 과정들을 권한이라고 함 퍼미션(권한)의 확인은 ls -l 명령어를 통해서 확인할 수 있음 ls -l 을 입력하면(그림 4) 그림 4.
-rw-r--r-- 1 root root 5 Dec 1 00:37 index.html → index.html에 대한 권한이 'rw-r--r--'으로 설정되어 있고 해석을 하면 소유자(root)는 rw-(읽고, 쓰기 가능), 소유그룹(root)은 r--(읽기만 가능), 그 밖에 유저(other)은 r--(읽기만 가능)
파일 허가권 -rw-r--r-- 표현되는 부분을 파일허가권이라고 함. 3자리씩 끊어서 보면 되며, 앞에서부터 소유자, 그룹, 그 외 사용자의 권한에 대해 설명 파일 허가권은 rwx로 표현되는 '심볼릭모드'와 644(숫자)로 표현되는 '옥탈모드'가 있음 touch a.txt → 비어있는 a.txt가 해당 디렉토리 생성 ls → a.txt를 확인할 수 있음. 파일명만 보이고 파일허가권은 보이지 않음 ls -l → -rw-rw-r-- 1 ec2-user ec2-user 0 Dec 1 02:17 a.txt → a.txt에 대해 소유자 ec2-user는 rw-(읽고 쓰기), 그룹 ec2-user는 rw-(읽고 쓰기), 그밖에 유저 other은 r--(읽기만) useradd a → 유저 a 생성되고, 그룹 a 생성 cf) useradd a -g root ※groupadd → 그룹만 따로 생성할 수 있음 만약 sudo touch a.txt를 했다면 소유자 소유그룹이 바뀜. 파일 허가권 수정 chmod 명령어 사용 ※chmod(chage modify) [권한변경사항] [파일이름] 심볼릭모드를 이용한 변경 소유자 : u, 그룹 : g, 그 외 사용자 : o 읽기 : r, 쓰기 : w, 실행 : x 권한 변경 방법 : '+' 또는 '-' 기호를 통해서 권한 변경 chmod o+w a.txt → other에게 쓰기권한(w)를 추가 -rw-rw-rw- 1 ec2-user ec2-user 0 Dec 1 02:17 a.txt chmod o-w a.txt → other에게 쓰기권한(w)를 제거 -rw-rw-r-- 1 ec2-user ec2-user 0 Dec 1 02:17 a.txt
실습1) a.txt에 대해 소유자는 rwx를 그룹은 r--를 그외 사용자는 rw-로 설정하기 현재권한 : rw-rw-r-- 변경할 권한 : rwxr--rw-- chmod u+x a.txt chmod g-w a.txt chmod o+w a.txt → -rwxr--rw- 1 ec2-user ec2-user 0 Dec 1 02:17 a.txt 옥탈모드를 이용한 변경 --- → 2^2 2^1 2^0으로 생각 첫번째 자리의 숫자 4, 두번째 자리의 숫자 2, 세번째 자리의 숫자 1, 세자리를 합친 10진수의 숫자 7 심볼릭 모드를 통해서 변경한 권한(실습1)을 옥탈모드를 이용해서 원래대로 변경 현재권한 : rwxr--rw--(746) 변경할 권한 : rw-rw-r-- (664) chmod 664 a.txt → -rw-rw-r-- 1 ec2-user ec2-user 0 Dec 1 02:17 a.txt 소유자 다중 사용자 시스템(Multi-user system)인 리눅스 운영체제는 많은 파일들이 저장되어 있음. 이러한 파일들을 어떤 소유자(리눅스 계정)에 속하게 됨. 속한다는 말은 x 사용자로 로그인되어 있는 상태에서 a.txt 파일을 생성하면 그 파일의 소유자는 x가 됨. 이를 특정 파일에 대한 계정의 소유권이라고 함.
wordpress 디렉토리로 이동 cd /var/www/html/wordpress wp-config.php 파일이 필요, 해당 파일을 생성해야함. wp-config-sample.php를 이용할 예정 cp wp-config-sample.php wp-config.php vi wp-config.php
23번 라인 'database_name_here' → wpDB 변경 26번 라인 'username_here' →wpUser 변경 29번 라인 'password_here' → 1234로 변경 변경 완료 후 esc :wq
아파치 웹 서비스 설정 파일 변경 sudo vi /etc/httpd/conf/httpd.conf → 아파치 웹 서비스 설정 파일 :set nu :119 :119 라인 DocumentRoot "/var/www/html"를 DocumentRoot "/var/www/html/wordpress"로 변경 → 외부에서 웹 브라우저를 통해 IP 주소를 주소창에 입력시 /var/www/html/wordpress 디렉토리(폴더)에서 index.html을 찾게 됨 :131 라인 "/var/www/html"를 "/var/www/html/wordpress"로 변경 ※아파치#주석 파란색글은 주석임. : 151 라인 AllowOverride None를 AllowOverride ALL로 변경 변경 완료 후 esc :wq
sudo systemctl restart httpd → 아파치 웹 서비스 재시
워드프레스 설치 웹 브라우저 EC2 인스턴스 IP 주소를 입력(그림 5) → http://43.201.73.230/wp-admin/install.php 사이트 제목 : aws 사용자명 : user ※비밀번호의 경우 약한 비밀번호를 입력하면 약한 비밀번 사용 확인이라는 체크박스가 나타나고 체크 이메일 주소 : 사용하는 이메일 주소 입력 정보가 입력되었으면 왼쪽 아래 '워드프레스 설치하기' 클릭(그림 6) 로그인 하기 아이디, 비밀번호 입력 로그인을 하게 되면 관리자창이 뜸(그림 7) 또 다른 웹 페이지를 실행하여 EC2 인스턴스 IP 주소를 입력(그림 8)
그림 5. 워드 프레스 설치
그림 6. 정보가 입력되었으면 왼쪽 아래 '워드프레스 설치하기' 클릭 후 나타나는 화면그림 7. 로그인된 모습그림 8. EC2 인스턴스 IP 주소 입력