워크박스

구름IDE - PHP 컨테이너 생성 및 이용후기 본문

구름IDE(goormIDE)/시작하기

구름IDE - PHP 컨테이너 생성 및 이용후기

오픈빌더 2020. 9. 6. 20:20

구름IDE(goormIDE)에서 기본적으로 제공되는 여러 소프트웨어 스택 중 PHP 컨테이너를 생성하는 방법에 대해서 알아보도록 하겠습니다. 또한 간략하게 기본 제공되는 PHP 환경에 대해서도 알아보도록 하겠습니다. 정리차원에서 작성된 글인 만큼 부족한 내용이 있을수 있는점 미리 양해부탁드립니다.

PHP 컨테이너 생성

  1. 로그인후 대시보드로 이동합니다.

  2. [+새 컨테이너 생성] 버튼을 클릭합니다.

  3. 컨테이너 생성 창에서 필수 항목인 이름을 입력합니다.

  4. 설명, 지역, 공개 범위, 템플릿, 배포 항목에서 지역의 경우 접속지역과 가까운곳을 선택합니다. 나머지 항목은 필요하다면 수정하시면 됩니다.

  5. 소프트웨어 스택 항목에서 PHP를 선택합니다.

    • Template: PHP 프로젝트를 선택합니다.(PHP 빈 프로젝트 선택해도 상관없습니다. 이유는 아래 내용을 보시면 아시게 됩니다.)
    • OS: 최신 버전인 Ubuntu 18.04 LTS를 선택합니다.
    • PHP: 7.3.8 (기본 설치되는 버전)
    • Apache Web Server: 2.4.29


  6. [추가모듈/패키지] 항목에서 MySQL설치, mysql-ctl명령 추가설치 항목을 선택합니다.



  7. 상단의 [생성(Ctrl + M)]을 클릭하거나 단축키(Ctrl + M) 컨테이너를 생성합니다.

컨테이너 실행

컨테이너 생성이 완료되었다면 컨테이너를 실행합니다.


다크테마의 구름IDE 에디터 화면 열렸다면 좌측 [ 프로젝트 ] 탐색 창에서 index.php 파일을 열어보도록 하겠습니다. 프로젝트 생성시 선택한 템플릿 내용을 볼수 있으며, 간단한 PHP echo함수가 작성되어 있습니다. 추가로 PHP정보를 확인하기 위해서 phpinfo()를 추가합니다.


기본 제공되는 PHP 실행 환경

  1. [ 메뉴 ] > [ 프로젝트 ] > [ 실행 ]을 클릭합니다.

  2. 실행창이 열리면서 php -S 0.0.0.0:80 -t /workspace/php 스크립트가 수행되어서 PHP에 내장된 빌트인 웹서버(Built-in web server)가 실행됩니다.



  3. 하단에 표시된 도메인주소를 클릭하게되면 브라우저의 새로운 탭이 열리면서 탐색창의 index.php 파일에 내용을 볼수 있습니다.



  4. 아파치 웹서버와 포트 충돌이 있기때문에 빌트인 웹서버 포트변경 글를 참조해서 포트를 변경해줍니다.

웹서버인 아파치(Apache) 실행 및 설정

  1. PHP 빌트인 웹서버를 중지후 상단 메뉴에서 [프로젝트] > [실행 URL과 포트]를 클릭합니다.

  2. 프로젝트 속성창이 열리며 서버 실행에 사용되는 도메인주소를 확인할 수 있습니다.

  3. 새 창 열기 버튼이나 복사버튼을 클릭하여 해당 도메인주소로 접속해봅니다. 아쉽게도 정상적으로 접속이 되지 않고 오류화면을 보여줍니다.


  4. 웹서버인 아파치(Apache)가 중지된 상태이기때문에 연결에 문제가 생겼습니다. 에디터로 돌아와 하단의 터미널을 이용할 수도 있지만 상단 메뉴 > [창] > [새 터미널 창] 클릭하여 새창을 열도록합니다.

  5. systemctl명령어는 사용할수 없기때문에 service명령어를 사용하여 아파치를 실행합니다.

     service apache2 start
  6. 도메인주소로 다시 접속을 시도해봅니다. 아래와 같은 화면이 보인다면 정상적으로 아파치 웹서버가 작동하는 것입니다.


  7. php 디렉터리(컨테이너 생성할 때 설정한 이름)를 클릭하여 페이지를 이동하면, PHP 빌트인 웹서버와 마찬가지로 “Hello goorm Contents here”와 PHP정보가 표시됩니다.

추가 설치한 MySQL 작동확인 및 설정

  1. 터미널에 mysql 명령어를 입력해봅니다. 실행중이지 않기때문에 다음과 같은 에러 메세지를 확인할 수 있습니다.

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

  2. MySQL 역시 설치만 된 상태이기 때문에 터미널에 service 명령어를 사용하여 실행합니다.

     service mysql start
  3. MySQL의 실행 및 버전을 확인하기 위해 터미널에 mysql를 입력합니다. 정상적으로 설치 및 실행이 되었다면 Server version: 5.7.31 문구를 볼 수 있습니다.

     root@goorm:/workspace/php# mysql
     Welcome to the MySQL monitor.  Commands end with ; or \g.
     Your MySQL connection id is 5
     Server version: 5.7.31-0ubuntu0.18.04.1 (Ubuntu)
     Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
     Oracle is a registered trademark of Oracle Corporation and/or its
     affiliates. Other names may be trademarks of their respective
     owners.
     Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     mysql>
  4. 데이터베이스(DB) 및 DB에 권한이 있는 사용자를 추가로 만듭니다. 예제로 DB 이름: webuser, 사용자: webuser, 비밀번호: password로 설정했습니다.

     CREATE DATABASE webuser;
     GRANT ALL ON webuser.* TO 'webuser' IDENTIFIED BY 'password';
  5. MySQL shell 에서 exit명령어를 입력하여 빠져나옵니다.

  6. mysql_secure_installation 도구를 사용하여 초기설정 및 보안 옵션을 구성합니다. 이 도구로 MySQL root 계정에 대한 새 암호를 설정할 수 있습니다.

     mysql_secure_installation

    설정 질문에 대해서는 Y를 입력합니다.

    • Remove anonymous users?
    • Disallow root login remotely?
    • Remove test database and access to it?
    • Reload privilege tables now?

PHP와 MySQL 연결 테스트

연결 테스트를 위해서 Adminer를 사용할것이며, 다른 방법도 있지만 이글에서는 터미널을 이용해서 다운받도록하겠습니다.

사전 준비

  1. 먼저 다운받기 위해서 wget 패키지를 설치합니다.

     apt install wget
  2. Adminer 다운로드 페이지에서 마우스 우클릭해서 [링크 주소 복사] 클릭합니다. 터미널에 다음과 같이 입력하거나 복사&붙여넣기 합니다. 글 작성 시점에서는 4.7.7이 최신버전입니다.

     wget https://github.com/vrana/adminer/releases/download/v4.7.7/adminer-4.7.7.php
  3. PHP MySQL 확장모듈 및 MySQL 클라이언트가 설치 안되어 있기때문에 설치하도록합니다.

     apt install php7.3-mysql mysql-client

PHP 빌트인 웹 서버로 연결 테스트

설정한 PHP 빌트인 웹 서버 도메인 주소와 Adminer 파일명을 입력해서 데이터베이스 로그인 페이지로 이동합니다.
위에서 생성한 MySQL 정보를 입력하고 로그인을 시도합니다.

정상적으로 로그인이 되었다면 아래와 같은 화면을 볼수 있습니다.


아파치 웹서버로 연결 테스트

설정한 아파치 웹서버 도메인 주소로 Adminer 로그인 페이지로 이동합니다.
PHP 빌트인 웹 서버와 동일하게 정상적으로 작동하는지 확인합니다.

마무리

이것으로 구름IDE(goormIDE)에서 기본적으로 제공되는 PHP 스택의 생성 및 PHP 개발 환경에 대해서 알아보았습니다. 입문자라면 그대로 복사&붙여넣기로 따라하지 마시고 일부 오류 발생을 직접 체험해보시는것도 좋은 선택이라고 생각합니다.

Comments