[2주차-4] AWS 1~2장, 워드프레스 설치, 데이터베이스 설치

ka02·2023년 9월 21일

cloudcamp

목록 보기
8/15

AWS 1~2장(교재)

AWS, Google cloud platform, Microsoft Azure, LG CNS cloud, 네이버 클라우드

구글 클라우드 플랫폼 → 쿠버네티스가 나오고 인터넷이 한단계 더 진화함
(쿠버네티스란? 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다.)

온프레미스: 자사가 서버 등을 구축하는 것. 네트워크나 장소를 임대하는 경우

로드 밸런서: 서버 여러 대에 분배하는 장치
이중화: 시스템이나 서버에 문제가 생겨도 계속 가동할 수 있도록 조치하는 것

  • (p.64) SaaS, Paas, IaaS 중 제일 기본이 되는 건 IaaS
    IaaS 서버 ovf 파일 만들어서 공유 가능
    SaaS: 어플리케이션까지 제공, PaaS는 플랫폼까지 제공, IaaS는 인프라만 제공

  • LAN을 구성하는 기술

  • 네트워크 만들기, 망 구성하기, 네트워크 대역에 대한 개념이 있어야 한다. TCP/IP 확인하기
    (참고: https://imweb.me/blog?idx=102)

  • DNS와 도메인

    tcp 데이터 잘받았니? 확인하는거
    upd 잘받았는지 확인까지는 하지 않는

    도메인에 접속하고 싶다 → DNS 서버 → ip로 DNS 서버 찾기

  • 프로토콜, 호스트, 도메인
    https://www.aws.com
    프로토콜명: https://
    호스트명: www
    도메인명: aws.com
  • CGI: 서버에서 처리하는 프로그램을 말한다.

  • 웹사이트에 대한 공격 방법(pp.82)

  • 보안 그룹 생성

VPC는 자동, 소스는 접속 가능한 자 설정할 수 있음
https 는 보안접속

명령어

cd /proc : 프로세스 관리하는 디렉토리
ls로 조회 가능
cat cpuinfo로 내가 만든 내용을 확인할 수 있음
free -h 메모리 확인 가능

인스턴스 확인
• processor 확인
• cat /proc/cpuinfo

메모리 확인
• free –h

디스크 확인 → root 파티션만 보면 된다
• df -h

wordpress 설치하기

재시동시 계속 ip가 바뀐다 사설 ip 배당, 명령어가 조금 다르다

  • html 페이지 만들기

1) nginx가 권한을 가질 수 있도록
2) www.data에서 하는게 맞는지 ps -ef |grep nginx를 통해서 어떤 계정으로 운영되는지 찾아보기 nginx인가? 하고 id nginx 쳐보면 아이디 자체가 nginx다.
3) vi /etc/nginx/
내려가면 include 보면 아래 서버가 바로 들어가 있음, 파일이 없고 아래 server에 root를 보면 위치가 나와있음.
⭐위치 찾는게 정말 중요 중요

!php 워드프레스 연동해보자!
* nginx, mysql 서버가 설치가 되어있는 환경
**yum** install nginx
which yum **# /usr/bin/yum 에 있음.**
netstat -anp | grep 80 **# 잘 구동되는지 확인하기** 
systemctl enable nginx  **#시작시 nginx 자동실행** 
systemctl start nginx

**0. 워드프레스 다운로드  ------------**
wget https://wordpress.org/latest.tar.gz **#설치파일 다운로드** 
tar xvzf latest.tar.gz **#압축해제** 
mkdir /usr/share/nginx/html/wordpress
cp -rf ./wordpress/* /usr/share/nginx/html/wordpress **#nginx, wordpress 위치 확인하기**
chown -R nginx.nginx /usr/share/nginx/html/wordpress
				invalid user: www-data  **#권한변경**
 ps -ef | grep nginx **#www가 아니라 nginx로 되어 있음.** 
→ id nginx 하면 nginx가 있음. 
→ nginx.nginx로 소유자 변경 필요, (아이디).(프로세스)
→ (밑에) /usr/share/nginx/html/wordpress (홈디렉토리) **#압축한 걸 이 경로에 넣고 권한 바꾸기**

**1. php 설치   ---------------**
sudo yum install php-cli php-fpm php-mysql**nd**

yum list | grep php | grep mysql
→ mysqlnd라고 나옴 > mysql이 아니라 mysqlnd로 설치해야 함을 찾아내야 함.
→ 버전 빼고 이름만 명시하면 가장 적합한 패키지(보통 최신버전)로 설치해줌.

**2. vi ~~/etc/nginx/sites-available/default~~에 다음을 저장**
→ sites-available이라는 폴더가 없고, 설정파일에 다른데 있음.
→ /etc/nginx/nginx.conf

server {
        listen 80 default_server;
				root /usr/share/nginx/html/wordpress; **#워드프레스 설치한 폴더로.**
        index index.html index.htm index.nginx-debian.html index.php;
        server_name _;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {  → **변경없음**
                include 
                fastcgi_pass unix:
								find / -name "php-fpm*" -print
								/usr/lib/systemd/system/php-fpm.service 이런 폴더를 찾을 수 있음.
								systemctl start php-fpm : 수동으로 시작할 수 있음.
								systemctl enable php-fpm : 자동실행목록에 추가

								→ 위치 알 수 잇도록 cd /run/php-fpm/  (tab)
								ls
								www.sock이 있는 걸 알 수 있음. 이 위치로 적어줘도 됨.

								ps -ef | grep php-fpm 으로 보니 nginx가 아닌 apache로 되어 있음.
								grep "apache" -r ./  이렇게 했는데 nginx로 안 뜸

								vi ./php-fpm.d/www.conf 
								→ user와 group을 apache에서 nginx로 변경 필요 =apache → =nginx로 바꾸기
								ps -ef | grep php-fpm 에서 nginx로 바뀌어졌는지 확인
								systemctl restart php-fpm
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
                expires max;
                log_not_found off;
        }
}

3. 서비스 재구동
systemctl restart nginx

4. 데이터베이스 생성
mariadb 설치하기
yum list | grep "mariadb" #검색해보면 mariadb105 라고 나오니까 105로 설치하기!
yum install mariadb105-server
systemctl restart mariadb

netstat -anp | grep "3306" # 3306 포트 떠 있는지 확인

오류: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
-> systemctl start mariadb

  • DB 테이블 만들기
mysql -u root
create database myhome;
use myhome;

create table userInfo ( uid int, uname varchar(20), pass varchar(128), profile varchar(200), priority int );

insert into userInfo (uid, uname, pass, profile, priority)values(0, "admin", password("1234"), "관리자", 0);
insert into userInfo (uid, uname, pass, profile, priority)values(1, "user1", password("1234"), "행인1", 1);
insert into userInfo (uid, uname, pass, profile, priority)values(2, "user2", password("1234"), "행인2", 1);
insert into userInfo (uid, uname, pass, profile, priority)values(3, "user3", "abcd", "행인3", 1);

데이터베이스 이름 : myhome
데이터베이스 아이디 : mydb
암호 : abcd

아이디:
비밀번호:

워드프레스 운용 계정 생성

use mysql;
create user 'wpuser'@'%' identified by 'abcd';
grant all privileges on *.* to 'wpuser'@'%';
flush privileges;

5. 브라우저를 통해 접속, 셋업
http://192.168.0.81:80







0개의 댓글