본문 바로가기
Linux

Linux(개발환경 구축하기)

by 글로리. 2020. 8. 22.

VM(Virtual Machine, 가상머신) 소프트웨어 설치

VMWare Workstation 설치

  • CentOS 설치 이미지 내려받기
  • VMWare 설치
    • http://www.vmware.com/kr.html -> "다운로드"메뉴 -> Workstation Pro -> 윈도우 버전 내려받기
    • 필수 환경설정 : Edit -> Preferences -> Shared vMs -> Disable Sharing 클릭
  • VMWare에 가상 컴퓨터 생성
    • Create -> Typical -> 내려받은 centos ISO이미지 경로설정

리눅스 설치

  • 1) "Install CentOS 7" 클릭
  • 2) 소프트웨어 선택 -> 개발 및 창조를 위한 워크스테이션
  • 3) 설치 대상 -> "파티션을 설정합니다" 클릭 -> 완료
  • 4) 수동으로 파티션 설정 -> 표준 파티션 -> "+" 버튼 -> 마운트 지점:swap / 2G -> "+" 버튼 -> 마운트 지점: /
  • 5) 네트워크 및 호스트명 -> 이더넷(ens33) 켬
  • 6) 설치시작 -> 설치 후 계정설정

YUM으로 각종 패키지 설치 (관리자 계정으로 전환 후 설치)

  • yum list installed (설치된 패키지 확인, 설치 후 제대로 설치 되었는지 확인)

1) Sublime Text 3 설치


2) Open JDK 설치

  • yum list java\djk-devel (설치 가능한 JDK버전 확인)
  • yum install -y java-1.8.0-openjdk-devel.x86_64 (1.8버전 설치)
  • javac -version (설치 결과 확인) -> 설치한 버전 값 출력, 예) javac 1.8.0.262
  • echo $JAVA_HOME, echo $PATH (자바변수 확인) -> 설정 전이기 때문에 빈 값으로 출력됨
  • readlink -f /usr/bin/javac (java의 심볼링 링크 경로 확인), 심볼릭 링크의 경로 중 '/bin/javac' 제외 후 복사
  • vi /etc/profile 을 열고 맨 아랫부분에 아래 내용 3개 추가
  • (1) export JAVA_HOME=/(심볼릭링크에서 복사한 경로)
  • (2) export PATH=$PATH:$JAVA_HOME/bin (기존의 $PATH값에 $JAVA_HOME의 bin디렉토리 추가)
  • (3) export CLASSPATH=.:$JAVA_HOME/lib/tools.jar (쉘의 현재 디렉토리(.)과 JDK포함된 tools.jar파일 경로 등록)
  • source /etc/profile (셀 초기화 파일 재로드)
  • echo $JAVA_HOME, echo $PATH (위에서 입력한 내용 출력됨)

zsh 설치

  • yum -y install zsh ('-y'를 입력하면 설치과정 중 물음에 자동으로 'y'로 응답해줌)
  • yum -y install git (Git 클라이언트 설치)
  • chsh -s /bin/zsh (쉘 환경 변경)
  • sh -c"$(curl-fsSL https://raw.github.com/robbyrussell/oh-myzsh/master/tools/install.sh)" (Oh-my-zsh설치)
  • git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting (명령어 문법 강조 플러그인)
  • git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
    (명령어 자동완성 플러그인)
  • vi ~/.zshrc -> 테마변경 / 'plugins' 부분에 zsh-syntax-highlighting, zsh-autosuggestions 입력 (설치한 플러그인 적용)
  • source ~/.zshrc (적용)

openssh-server 설치

  • yum -y install openssh-server

SELinux

  • SELinux 정책은 SSH, 웹 서버, FTP, MySQL 등의 기능을 하나의 리눅스 안에서 하나만 구동할 수 있게 설정 되어 있는것임.
  • 그래서 여러서버를 하나의 리눅스에서 운영하기 위해서는 이 기능을 비활성화 할 필요가 있다.
  • vi /etc/sysconfig/selinux -> "SELINUX=disable" 로 변경.
  • reboot (SELinux는 재부팅 후에만 반영됨)

SSH서비스 실행 (부팅시 자동실행 등록)

  • systemctl start sshd.service
  • systemctl status sshd.serivce | grep Active (서비스 상태 확인)
  • systemctl enable sshd.service (부팅시 자동실행 되도록 등록)
  • systemctl list-unit-files | grep sshd.service (등록결과 확인)

SSH서버 설정

  • vi /etc/ssh/sshd_config
  • "Port" 항목을 찾아 주석해제, 적용할 포트 명시 (9901)
  • "PermitRootLogin yes"라는 라인을 찾아 주석해제, 값을 no로 변경
  • systemctl restart sshd.service (재시작)

방화벽 설정

  • firewall-cmd --state (방화벽 실행 여부 확인)
  • firewall-cmd --zone=public --list-services | grep ssh (방화벽에 ssh 서비스 등록 여부 확인)
  • firewall-cmd --permanent --zone=public --remove-service ssh (서비스가 등록되어 있다면 ssh의 기본 서비스 차단)
  • firewall-cmd --permanent --zone=public --remove-service telnet (telnet의 기본 서비스 차단)
  • firewall-cmd --permanent --zone=public --add-port=9901/tcp (ssh에서 설정한 포트번호 추가)
  • firewall-cmd --reload (방화벽 재시작)

vsftp 설치

  • yum -y install vsftpd
  • systemctl start vsftpd.service (vsftpd 서비스 시작)
  • systemctl status vsftpd.service | grep Active (vsftpd 서비스 구동상태 확인)
  • systemctl enable vsftpd.service (부팅시 vsftpd 서비스 자동시작 등록)
  • systemctl list-unit-files | grep vsftpd.service (서비스 등록 확인)
  • firewall-cmd --permanent --zone=public -add-service=ftp (ftp 서비스 방화벽 등록)
  • firewall-cmd --reload (방화벽 리로드)

vsftpd 설정파일 수정(vi /etc/vsftpd/vsftpd.conf)

anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
# 맨 아랫줄에 추가 입력
allow_writeable_chroot=YES
listen_port=9902
pasv_enable=YES
pasv_min_port=10090
pasv_max_port=10100

수정 후 방화벽 설정

  • firewall-cmd --permanent --zone=public --add-port=9902/tcp
  • firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
  • firewall-cmd --reload
  • systemctl restart vsftpd

MariaDB 설치

  • yum -y install mariadb mariadb-server
  • systemctl start mariadb.service
  • systemctl enable mariadb.service
  • mysql_secure_installation

httpd 서버 구성 실습

  • yum -y install httpd
  • systemctl start httpd
  • systemctl enable httpd
  • systemctl status httpd
  • firewall-cmd --permanent --zone=public --add-service http
  • firewall-cmd --permanent --zone=public --add-service https
  • firewall-cmd --reload
  • firewall-cmd --list-services
  • http://(리눅스아이피) 입력 후 화면으로 확인

PHP 설치

  • yum -y install epel-release (php를 설치할 수 있는 추가 저장소 설치)
  • rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm (remi 저장소 설치)
  • yum --enablerepo=remi update remi-release (remi 저장소 업데이트)
  • yum --enablerepo=remi-php72 -y install php (php 설치)
  • yum --enablerepo=remi-php72 -y install php-bcmath php-dom php-gd php-igbinary php-imap php-intl php-ldap php-mbstring php-mcrypt php-memcached php-mysqli php-mysqlnd php-pdo php-posix php-xml php-xmlrpc php-zip (php 추가 확장팩 설치)
  • systemctl restart httpd (apache 재시작)

PHP 설정 (관리자 권한, vi /etc/php.ini)

  • short_open_tag = On
  • max_input_vars = 1000
  • display_errors = On
  • post_max_size = 32M
  • upload_max_filesize = 32M
  • date.timezone = Asia/Seoul
  • systemctl restart httpd

Virtual Host 설정 (vi etc/httpd/conf.d/vhost.conf)

NameVirtualHost *:80

<VirtualHost *:80>
        # 웹 프로그램 폴더
        DocumentRoot /home/student/public_html

        # 서버의 관리자 메일주소
        ServerAdmin webmaster@itpaper.co.kr

        # 서버이름 (주 도메인)
        ServerName helloworld.com

        # 서버별칭 (부 도메인)
        ServerAlias www.helloworld.com
        Serveralias test.helloworld.com

        # 프로그램 구동 옵션
        <Directory "/home/student/public_html">
                Allow from all
                Require all granted
        </Directory>
</VirtualHost>

Apache-Tomcat 서버 구축

  • systemctl stop httpd (하나의 시스템에서 두 개 이상의 웹서버는 포트충돌이 발생하므로 php기반의 웹서버는 중지)
  • systemctl disable httpd
  • 파일 내려받은 경로를 쉽게 기억하기 위해 root로 계정 전환 -> 'cd~'명령을 사용하여 root 홈 디렉토리에서 wget 명령 사용
  • wget (https://tomcat.apache.org/download-80.cgi 페이지에서 Tomcat 압축파일의 URL복붙)
  • ls (다운로드 받은 파일 이름 확인)
  • tar zxvf (파일이름)
  • mv ./(압축해제한 폴더이름)/usr/local/tomcat8
  • vi /ect/systemd/system/tomcat.service
    • /usr/local/tomcat8/bin/startup.sh
    • /usr/local/tomcat8/bin/shutdown.sh
    • User=root
    • Group=root
  • systemctl daemon-reload
  • systemctl start tomcat.service
  • systemctl status tomcat.service
  • systemctl enable tomcat.service
  • firewall-cmd --permanent --zone=pubilc--add-forward-port=port=80:proto=tcp:toport=8080
  • firewall-cmd --reload
  • mv./(테스트프로그램) /usr/local/tomcat8/webapps
  • systemctl restart tomcat.service

'Linux' 카테고리의 다른 글

Linux(명령어 정리)  (0) 2020.08.21
Linux-2  (0) 2020.08.20
Linux-1  (0) 2020.08.10

댓글