티스토리 뷰

활동/42Seoul

[ft_server] 실행 순서(Window - WSL2)

geonwoopaeng@gmail.com 2021. 1. 22. 22:47

나의 환경

  • 주의 -

 

  • docker 안의 상태인지 아닌지 잘 파악
  • dockerfile에서 RUN, CMD등 실행 순서 잘 파악
  • 절대 경로, 상대경로 잘 파악

- wsl2를 사용 -

 

1. Docker 설치

 

https://hub.docker.com/editions/community/docker-ce-desktop-windows

 

  • General 탭에서 Use the WSL2 based engine 옵션 클릭
  • Resource -> WSL Integration 페이지로 이동해서 설정을 확인

 

2. Debian(buster) 사용

 

  • docker hub에서 debian:buster이미지 가져오기

$sudo docker pull debian:buster

 

3. docker로 debian(buster)환경 실행 및 접속(debian bash 접속)

 


$sudo docker run -it --name con_debian -p 80:80 -p 443:443 debian:buster 

#docker

root@324234:/# apt-get update

root@324234:/# apt-get upgrade 

 

+ 옵션

 

-i -> interactive(입 출력)
-t -> tty(터미널)활성화
--name [컨테이너 이름] -> 컨테이너 이름 지정
-p 컨테이너포트번호:호스트포트번호 -> 컨테이너의 포트를 개방한 뒤 호스트포트와 연결한다.

 

4. debian buster에서 Nginx, cURL 설치

 

cURL은 서버와 통신할 수 있는 commend 명령어 툴
(url을 가지고 할 수 있는 것들을 다 할 수 있다.)
cURL -> https://shutcoding.tistory.com/23

 


#docker

root@324234:/# apt-get -y install nginx curl 

 

+옵션

 

-y -> 설치하겠냐는 물음에 y를 눌러주는 것

 

5. Nginx 서버 에러확인/실행/확인/중지

 


#docker

root@324234:/# nginx -t

root@324234:/# service nginx start

root@324234:/# service nginx status

root@324234:/# curl localhost 

root@324234:/# service nginx stop

 

+

 

localhost가 확인 안되면 127.0.0.1를 입력해서 확인하자
아니면 history에서 캐시등을 다 지운 다음에 해보자

 

5. self-signed SSL 인증서 만들기

 

  • SSL 위에서 돌아가는 HTTP => HTTPS를 실행하기 위한 인증서
  • openssl이용(개인 키(.key), 서면요청파일(.csr), 인증서파일(.crt))

 


#docker
root@324234:/# apt-get -y install openssl

root@324234:/# openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout ft_server.key -out ft_server.crt -days 365 -subj "/C=KR/ST=SEOUL/L=SEOUL/O=42/OU=gon/CN=localhost"
# => ft_server.key, localhost.crt 생성

root@324234:/# mkdir /etc/nginx/ssl

root@324234:/# mv ft_server.key /etc/nginx/ssl/

root@324234:/# mv ft_server.crt /etc/nginx/ssl/

root@324234:/# chmod 600 /etc/nginx/ssl/*
#=> 보안 및 인증 관련 파일은 권한을 root만 허용

 

+옵션

 

req: 인증서 요청 및 인증성 생성 유틸
-x509: 인증서 요청 대신 자체 서명된 인증서를 출력(테스트 인증서 or 자체 서명 루트 CA생성하는 데 사용)
-newkey: 개인키 생성
rea:4096: SSL/TLS에 가장 많이 쓰이는 공개키 암호화 알고리즘
-nodes: 개인키를 암호화하지 않기 위한 옵션(없을 시 4자리 이상 암호 입력)
-sha256: SHA-256 기반 인증서 생성
-keyout [key 파일 이름]: 키 파일 생성(키 파일이름 지정)
-out [인증서 이름]: 인증서 생성(인증서 이름 지정)
days 365: 인증서의 유효기간
-subj"": subject를 입력하기 위한 옵션 ex) -subj"CN=localhost" => CN입력

 

nginx ssl 설정하기(https로 리다이렉션 설정)

 

 


#docker

root@324234:/# apt-get -y install vim

root@324234:/# cd /etc/nginx/sites-available 

root@324234:/# vim default (수정)

 

+수정내용

 

  • 301(permanently moved)는 이 페이지는 영구적으로 이동되었으므로 이 주소로 연결하시오
  • $host, $request_uri는 nginx의 변수로
    (http://localhost/wordpress 접속하면 host = localhost, request_uri = /wordpress)
  • 80번 포트로 들어오는 것은 https://domain으로 이동

#docker

root@324234:/# sudo service nginx reload

 

7. http://localhost가 안전하지 않은 사이트여서 나오지 않을 경우

 

    1. NET::ERR_CERT_REVOKED 오른쪽 빈칸아무대나 마우스 좌클릭
    1. 이상한 것 많이 보인다
    1. 그냥 키보드로 thisisunsafe 친다. (치는 것이 보이지 않는다.)

 

8. php-fpm 설치 / Nginx 설정

 

#docker

root@324234:/# apt-get -y install php-fpm

root@324234:/# cd /etc/nginx/sites-available 

root@324234:/# vim default (수정)

root@324234:/# service php7.3-fpm start

root@324234:/# service php7.3-fpm status

 

+수정내용

 

#PHP 추가 부분

 

9. Nginx autoindex 설정

 


#docker

root@324234:/# cd /etc/nginx/sites-available 

root@324234:/# vim default (수정)

 

10. mariadb(mysql 진화판)/ php-mysql / php-mbstring 설치

 

  • debian9 버전 이후부터 mariadb지원 하기 때문
  • php-mysql은 php에서 mysql(데이터베이스)에 접근하도록 해주는 모듈
  • php-mbstring은 2바이트 확장 문자를 읽도록하는 확장자(경고 방지용)

 


#docker

root@324234:/# apt-get -y install mariadb-server

root@324234:/# apt-get -y install php-mysql

root@324234:/# apt-get -y install php-mbstring

 

11. Wordpress 설치

 

  • 웹서버로부터 직접받아와야한다(wget) + apt-get으로 설치 X

 


#docker

root@324234:/# apt-get install wget 

root@324234:/# wget https://wordpress.org/latest.tar.gz

root@324234:/# tar -xvf latest.tar.gz 

 

+옵션

 

-x: 묶음 해제
-v: 묶음/해제 과정을 화면에 표시
-f: 파일 이름을 지정

 

#docker

root@324234:/# cd wordpress

root@324234:/# cp -rp wp-confing-sample.php wp-config.php 

root@324234:/# vim wp-config.php(수정)

 

+ 수정

 

database_name_here -> wordpress
username_here -> gpaeng
password_here -> gpaeng

 


#docker

root@324234:/# cd ..

root@324234:/# rm -rf latest.tar.gz

root@324234:/# mv wordpress/ /var/www/html/

root@324234:/# chown www-data:www-data /var/www/html/wordpress

 

+명령어

 

chown: 권한 설정으로 wordpress의 유저, 그룹을 www-data로 설정

 

12. Database 설정

 

  • Database에 wordpress 추가

 

#docker, mysql

root@324234:/# service mysql start

root@324234:/# mysql 

MariaDB [(none)]> CREATE DATABASE wordpress;

MariaDB [(none)]> SHOW DATABASES;

MariaDB [(none)]> CREATE USER 'gpaeng'@'localhost' IDENTIFIED BY 'gpaeng'; 
# + 아이디 gpaeng 비밀번호 gpaeng 생성

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'gpaeng'@'localhost' WITH GRANT OPTION;
# + @'localhost'는 로컬 접속만 허용(권한 부여), @'%'이면 외부접속 허용

MariaDB [(none)]> USE wordpress;

MariaDB [wordpress]> SHOW TABLES;

MariaDB [wordpress]> exit;

root@324234:/# service nginx reload

root@324234:/# service php7.3-fpm restart

 

13. phpmyadmin 설치

 

#docker

root@324234:/# cd ..

root@324234:/# wget <https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz>

root@324234:/# tar -xvf phpMyAdmin-5.0.2-all-languages.tar.gz 

root@324234:/# rm -rf phpMyAdmin-5.0.2-all-languages.tar.gz

root@324234:/# mv phpMyAdmin-5.0.2-all-languages phpmyadmin

root@324234:/# cp -rp config.sample.inc.php config.inc.php

root@324234:/# vim config.inc.php(수정)

+

 

암호생성 사이트
https://phpsolved.com/phpmyadmin-blowfish-secret-generator/?g=%5Binsert_php%5Decho%20$code;%5B/insert_php%5D
들어가면 config.inc.php를 어떻게 바꿔야 하는지 나옵니다.

 

#docker

root@324234:/# mv phpmyadmin /var/www/html/

root@324234:/# service nginx reload

 

14. Database 설정

 


#docker 

root@324234:/# service mysql start 

root@324234:/# mysql < var/www/html/phpmayadmin/sql/create_tables.sql

 

 

https://github.com/GeonWooPaeng/02_ft_server42/tree/master

반응형

'활동 > 42Seoul' 카테고리의 다른 글

[miniRT, cub3D] Man 설명  (0) 2021.01.25
[miniRT] Subjects  (0) 2021.01.25
[ft_server] 개념  (0) 2021.01.22
42 Seoul La Piscine 후기  (0) 2020.12.19
42 Seoul La-Piscine 확인  (0) 2020.10.23
공지사항
최근에 올라온 글