25일차 - 리눅스 (미니프로젝트1-DB, WEB서버)

Jk Lim·2023년 5월 16일
0

MLOps 부트캠프

목록 보기
24/34

25일차는

  1. 미니프로젝트의 DB서버와
  2. WEB서버를 설정하였다.

  • 목표 : 웹서버에 wordpress라는 게시판 php 소스를 올려서 구현
  • Wordpress 설치 요구사항 확인 → 해당하는 버전 설치

1. DB Server setting

  • MariaDB 패키지 버전 확인 : repository는 버전이 너무 낮음 → 사이트에서 직접 다운
[root@db ~]# vim /etc/yum.repos.d/MariaDB.repo
...
# MariaDB 10.3 CentOS repository list - created 2023-05-16 01:18 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.3/centos/$releasever/$basearch
baseurl = https://mirrors.xtom.jp/mariadb/yum/10.3/centos/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.xtom.jp/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

  • sudo yum install MariaDB-server MariaDB-client : 패키지 설치
  • sudo systemctl start maraidb.service : 서비스 실행
  • sudo systemctl enable mariadb.service
  • sudo mysql_secure_installation : 보안 설정 (관리자 pw입력, 다음 전부 y로 설정)
  • ps -ef | grep mysql : 실행 계정 확인 → mysql
  • grep mysql /etc/passwd : mysql 계정 생성된 것 확인
  • ss -antp : 열린 포트 확인 → mysqld는 3306 포트 사용
  • sudo firewall-cmd --list-all : 현재 방화벽 정책 확인
  • sudo firewall-cmd --add-port=3306/tcp --zone=public (--permanent도 추가) : 3306포트 허용
  • mysql -u root -p : 로컬에서 db접속 (root는 로컬에서만 접속 가능 → user를 생성하면 접속 가능한 host를 기록해야한다.)
  • CREATE USER dbmanager@'10.0.2.20' IDENTIFIED BY 'qwer1234';
  • CREATE USER dbmanager@'localhost' IDENTIFIED BY 'qwer1234';
  • flush privileges;

2. Web server setting

  • MariaDB-Client 설치
  • mysql -u dbmanager -p -h 10.0.2.30 : 원격 접속 확인

(1) 아파치 설치 (httpd) 및 실행

  • sudo yum install httpd
  • sudo systemctl start httpd : 서비스 실행 (enable, status)
  • ps -ef | grep httpd, grep apache /etc/passwd, ss -antp | grep :80 → 정보확인
  • sudo firewall-cmd --add-service http (--permanent도 추가)

(2) php 설치 (7.4버전)

[root@web ~]#yum clean all
[root@web ~]# yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@web ~]# yum repolist
[root@web ~]# yum install -y yum-utils  ### 버전 변경을 위한 yum유틸설치
[root@web ~]# yum-config-manager --disable remi-php54 ### php5.4버전 끄기
[root@web ~]# yum-config-manager --enable remi-php74  ### php7.4버전 켜기
[root@web ~]# yum install php74     ### php74 또는 필요한 라이브러리 같이 설치하기
[root@web ~]# yum install -y php74-php php-cli php74-scldevel \
> php74-php-xml php74-php-xmlrpc php74-php-soap \
> php74-php-process php74-php-pgsql php74-php-pdo \
> php74-php-opcache php74-php-mbstring php74-php-ldap \
> php74-php-json php74-php-ioncube-loader php74-php-intl \
> php74-php-gmp php74-php-gd php74-php-fpm php74-php-devel \
> php74-php-dba php74-php-common php74-php-cli \
> php74-php-bcmath php74-php-phpiredis  php74-php-pecl-igbinary \
> php74-php-pecl-imagick-im7 php74-php-pecl-imagick-im7-devel \
> php74-php-pecl-igbinary-devel php74-php-pecl-geoip \
> php74-php-pecl-xdebug php74-php-pecl-mysqlnd-azure
  • sudo systemctl restart httpd.service : php 설치했으므로 재시작
  • php test → 테스트 하고 test.php는 제거
vim /var/www/html/test.php
...
<?php
        phpinfo();
?>
vim /etc/httpd/conf/httpd.conf
...
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
### 설정 파일 변경 후 데몬 재시작

(3) Wordpress 설치

  • yum install -y wget

  • wget https://wordpress.org/latest.tar.gz

  • tar -xvzf latest.tar.gz -C /var/www/html  : 아카이브 및 압축 해제 (위치지정- 아카이브 해제 되는 디렉토리를 확인해야함. 특정 디렉토리내에 아카이브가 해제되기도 함.) (별도 스토리지를 사용할 경우, 해당 디렉토리로 압축을 해제해야함.)

  • mkdir /var/www/html/wordpress/uploads (게시판을 그림파일 올릴때 해당 디렉토리 생성

  • cp wp-config.sample.php wp-config.php : 샘플 파일 복사

  • vim /var/www/html/wordpress/vp-config.php 수정 (DB와 연결)

  • DB서버 세팅 (root 유저는 localhost에서만 접근 가능)

    MariaDB [(none)]> CREATE DATABASE wordpress;
    MariaDB [(none)]> CREATE USER adminuser@10.0.2.20 IDENTIFIED BY 'qwer1234';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO adminuser@'10.0.2.20' IDENTIFIED BY 'qwer1234';
    MariaDB [(none)]> FLUSH PRIVILEGES;
  • username : admin. password : &4Wp#VruVHM31ZzX4g

(4) HTTPS 설정

  • sudo yum install mod_ssl : 웹서버에 ssl 모듈 추가 설치
  • openssl genrsa -out private.key 2048 : 개인키 생성
  • openssl req -new -key private.key -out cert.csr : CSR(서명 요구서) 생성
  • openssl x509 -rq -signkey private.key -in cert.csr -out cert.crt : 인증서 생성
  • sudo mv ~/private.key /etc/pki/tls/private/private.key
  • sudo mv ~/cert.crt /etc/pki/tls/certs/certs.crt
  • /etc/httpd/conf.d/ssl.conf : 해당 파일에 인증 관련 설정이 되어 있음 → 설정 변경
  • sudo systemctl restart httpd : 시스템 재시작
  • ss -antp : 열린 포트 확인
  • sudo firewall-cmd --add-service https : 방화벽 추가 (--permanent 도 설정)

0개의 댓글