Docker로 웹 앱 환경 구축

소개



본 기사는 동영상( htps: //같다. 베 / vY2 ~ 후오 h6s )에서 설명에 사용하고 있다
슬라이드를 기사화한 것입니다. 동영상과 함께 봐주세요.
vY2z-fOOh6s

※기사화할 때에 보충 설명을 가필하고 있어, 내용은 동영상의 슬라이드와 다릅니다.
※본 기사의 내용은 2020년 3월 시점의 내용입니다. OS나 미들웨어, Docker의 버전이 다르므로 기재된 내용으로 완료되지 않는 경우가 있습니다.

구축할 환경 구성


  • O S: Cent OS 7.7
  • 웹 서비스: Apache 2.4.6
  • DB 서비스 : MariaDB 10.4.6
  • 웹 앱 언어: PHP 7.3.x


  • OS 준비



    마지막 동영상: https://www.youtube.com/watch?v=oT-GSZD8bE4
    마지막 동영상 개요: Dokcer 설치, CentOS 설치.
    1. 컨테이너 시작
        dos > docker run --privileged -d -p 22:22 -p 80:80 -p 8080:8080 -p 443:443 --name [作成コンテナ名] [イメージ名] /sbin/init
        dos > docker exec -it [コンテナ名] /bin/bash
        コンテナ > yum update
    
  • 사용자 추가
  • root > useradd [ユーザ名]
    root > passwd [ユーザ名]
    
  • SSH 설치 및 연결!
  • root > yum install openssh-server
    root > systemctl enable sshd.service
    root > systemctl start sshd.service
    

    연결은 TeraTerm을 설치하여 연결.

    웹 서비스 준비


  • Apache 설치
  • root > yum install httpd
    

    ※ CentOS 표준 apache 설치

    DB 서비스 준비


  • MariaDB 리포지토리 추가
  • root > curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |  bash
    
  • MariaDB 설치
  • root > yum install MariaDB-server
    
    ※MariaDBパッケージにアップデートがある場合は
    root >  yum update MariaDB-server
    
  • DB 서버 설정
  • root > vi /etc/my.ini/
    
  • 서버 자동 시작 설정 및 서버 시작
  • root > systemctl enable mariadb
    root > systemctl start  mariadb
    
  • 사용자 설정
  • root > mysql
    mysql > GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
    mysql > FLUSH PRIVILEGES;
    

    웹 앱 언어 설치


  • 리포지토리 추가
  • > yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    
  • 버전 확인
  • > yum info --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
    
  • PHP 설치
  • > yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
    
  • PHP 설치 확인
  • > php -v
    

    웹 서비스 설정


  • 문서 루트 설정
  • root > mkdir /var/www/webapp
    root > chown takemi:takemi webapp
    root > vi /etc/group
    

    takemi: x :1000: → takemi : x : 1000 : apache
    ※takemi는 adduser 작성한 일반 유저입니다. adduser한 타이밍에 유저와 동명의 그룹도 작성됩니다.
    root > systemctl restart httpd
    user > vi /var/www/webapp/index.html
    

    index.html
    <html>
        <head>
            <title>Takemi Index</title>
        </head>
        <body>
            <div>Test Page</div>
        </body>
    </html>
    
    root > vi /etc/httpd/conf/httpd.conf
    

    httpd.conf
            DocumentRoot=/var/www/html      →  DocumentRoot=/var/www/webapp
            <Directory “/var/www/html”>     → <Directory “/var/www/webapp”>
            Options Indexes FollowSymLinks      → Options Indexes FollowSymLinks  ExecCGI
            AllowOverride None          → AllowOverride All
    
  • 설정 확인
    브라우저에서 http://<컨테이너 IP>에 액세스
  • PHP의 동작 확인
    브라우저에서 http://<컨테이너 IP>에 액세스
  • PHP의 동작 확인
  • user > vi /var/www/webapp/info.php
    

    info.php
    <?php phpinfo();
    

    브라우저에서 http://<컨테이너 IP>/info.php에 액세스합니다.
    phpinfo()의 내용이 표시된다.

    이상입니다!
    이제 HTML도 PHP도 작동하여 웹 앱 환경이 완성되었습니다!
    미안해.

    좋은 웹페이지 즐겨찾기