CentOS

CentOS에서 내가 필요한 패키지를 설치하는 방법을 정리한다. 기존 ubuntu에는 다음과 같은 것들이 실행되고 있다.

  1. nextcloud(owncloud에서 이전)
  2. 데이터 백업스크립트

우분투를 잘 사용하고 있었으나 가변 크기 vhd의 크기가 너무 커져 ssd에 두기 힘들었다. 120GB까지 늘어난 것을 각종 방법을 통해서 70GB까지 줄였으나 더 줄이는 데 실패했다. 실제 쓰는 용량은 15GB 밖에 안되는데…

결국 포기하고 옮기는 김에 좀 더 서버용이라는 느낌이 들고, 업무적으로 널리 쓰이는 CentOS로 환경을 바꿔 보기로 하였다. 어차피 널리 쓰는 응용 프로그램들을 쓰다보니 두 OS 간에 큰 차이는 없다. 단, 한가지 큰 차이가 있는데 보안 규정이 SELinux 때문에 훨씬 복잡하게 느껴진다.

owncloud에서 nextcloud로 이전도 시도해 본다. 어차피 owncloud에서 갈라져 나온 것이 nextcloud라서 큰 차이는 없지만 몇가지 기능을 추가로 제공한다고 한다1). 그리고 owncloud가 상업성을 띄는 느낌이 있다 보니 장기적으로 nextcloud가 더 대세가 되지 않을까라는 예상을 했다.

번외로… 한 10번 가까이 재설치한 결과이다. 우분투에서 이전하다보니 SELinux가 너무 어렵다. 대세는 끄고 사용하는 것 같다. 일단 끈 상태로 정상 동작을 확인하고 이 사이트2)를 참고해서 설정을 해보려고도 한다.

  1. 램은 1GB.
    1. CUI 버전이므로 일단 충분하다.
    2. 모니터링 하면서 2GB까지는 늘릴 예정이다.
  2. 디스크는 고정 크기 8GB.
    1. 꽤 오래 쓴 우분투 서버도 데이터를 제외하면 15GB 밖에 쓰지 않았다.
    2. 늘리는 건 쉬워도 줄이는 건 어려우므로 꽤 적게 잡았다.
  3. 보안 부팅은 사용 안함.
    1. 그래야 CentOS가 설치된다.
  4. 통합 서비스는 그대로.
    1. 게스트 서비스를 제외한 전체
    2. ssh 접속만 쓸 예정이므로 게스트 서비스는 어차피 필요 없다.
  5. SCSI 컨트롤러에 DVD 드라이브를 추가.
    1. CentOS-7-x86_64-Everything-1804.iso를 마운트 시킨다.
  6. 펌웨어에서 부팅 순서 중 최상위를 DVD 드라이브로 한다.
  7. 검사점은 체크 해제.
    1. 잘 모르는 기능이라 일단 해제했다. 종료할 때 느려지더라.

버전은 7.4로 현 시점 정식 중 최신 버전이다.

  1. 언어는 그냥 영어(미국)
    1. 큰 의미 없다.
  2. Network & Host name 을 미리 설정하면 편하다.
  3. Date & Time 도 서울로 선택한다.
    1. 지도에서 한국을 찍으면 대충 맞춰준다.
  4. Software Selection은 그대로 유지
    1. Minimal Install로 두었다. 잡다한거 깔리는거 안 좋아한다.
  5. Installation Destination
    1. 자동으로 했다.
    2. 32GB 중 efi가 200MB, boot가 1GB, 30.8GB가 나머지를 차지한다.
  6. User Settings
    1. Root Password를 설정했다.
    2. User Creation에서 Administrator 권한을 가진 사용자도 추가했다.

설치를 바로 가려다 보니 점점 늘어난다. 응용 프로그램 별로 쓰는 것에 비해 복잡할 수 있으나 설치하기에는 더 편하다.

  1. 잡다한 유틸리티 설치
    1. sudo yum install bash-completion wget yum-utils unzip
    2. 자동 완성은 하고 시작하자.
    3. :!:다시 로그인해야 적용된다.
    4. 기존 유틸리티도 일단 미리 설치한다.
  2. 확장 패키치 저장소 설치
    1. sudo yum install epel-release
  3. php7 설치를 위한 remi 설정
    1. sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
      1. :!:뒤의 숫자는 CentOS 버전과 맞춰준다.
    2. sudo yum-config-manager --enable remi-php71
      1. 이후 그냥 php 설치를 하면 7.1 버전으로 설치된다.
  4. plex를 위한 저장소 등록
    1. sudo vi /etc/yum.repos.d/plex.repo
    2. [PlexRepo]
      name=PlexRepo
      baseurl=https://downloads.plex.tv/repo/rpm/$basearch/
      enabled=1
      gpgkey=https://downloads.plex.tv/plex-keys/PlexSign.key
      gpgcheck=1
  5. tvheadend를 위한 저장소 등록
    1. sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
  6. 마무리로 업데이트 해준다.
    1. sudo yum update
  1. 기본 lamp 환경 구성
    1. sudo yum install httpd php mariadb mariadb-server php-mysqlnd
      sudo systemctl start mariadb.service
      sudo mysql_secure_installation
      sudo yum install php-zip php-xml php-mbstring php-gd
    2. mariadb(mysql)는 가능한 설치하고 싶지 않으나 nextcloud에서 쓴다. sqlite도 지원한다고는 하다 그것도 별로…
    3. :!: php 7.2가 최신이었으나 nextcloud에서 7.0과 7.1을 권장한다.
    4. php-mysql이 Native Driver를 지원하면서 이름이 바뀌었다.
    5. sudo systemctl enable httpd.service
      sudo systemctl enable mariadb.service
      sudo systemctl start httpd.service
      sudo systemctl start mariadb.service
  2. 80, 443 포트 방화벽 개방
    1. sudo vi /etc/firewalld/services/httpd.xml
    2. <?xml version="1.0" encoding="utf-8"?>
      <service>
        <short>httpd</short>
        <description>Ports required by apache server.</description>
        <port protocol="tcp" port="80"></port>
        <port protocol="tcp" port="443"></port>
      </service>
    3. sudo firewall-cmd --add-service=httpd --permanent
      sudo firewall-cmd --reload
  3. mariadb에 utf8 설정
    1. sudo vi /etc/my.cnf
    2. [client]
      default-character-set=utf8
      
      [mysql]
      default-character-set=utf8
      
      [mysqld]
      collation-server = utf8_unicode_ci
      init-connect='SET NAMES utf8'
      character-set-server = utf8
  4. nextcloud 설치
    1. cd /var/www/html
      sudo wget https://download.nextcloud.com/server/releases/nextcloud-13.0.5.zip
      sudo unzip nextcloud-13.0.5.zip
      sudo chown apache:apache nextcloud -R
      
      mysql -u root -p
      create database nextcloud;
      create user nextcloud identified by '<password>';
      grant usage on *.* to [email protected] identified by '<password>';
      grant all privileges on nextcloud.* to [email protected];
    2. nextcloud의 버전은 알아서 최신으로 바꾸자3).
    3. :!: 여기서부터 SELinux가 태클을 건다. 일단 이 방법4)을 참고하여 끄고 시작했다
      1. sudo setenforce 0
    4. 이후 웹 브라우저로
      http://<IP_ADDRESS>/nextcloud

      에 접속하여 설정을 끝낸다.

  5. plex 설치
    1. sudo yum install plexmediaserver
      sudo systemctl start plexmediaserver
      sudo systemctl enable plexmediaserver
      sudo vi /etc/firewalld/services/plex.xml
    2. <?xml version="1.0" encoding="utf-8"?>
      <service>
        <short>plexmediaserver</short>
        <description>Ports required by plexmediaserver.</description>
        <port protocol="tcp" port="32400"></port>
        <port protocol="udp" port="1900"></port>
        <port protocol="tcp" port="3005"></port>
        <port protocol="udp" port="5353"></port>
        <port protocol="tcp" port="8324"></port>
        <port protocol="udp" port="32410"></port>
        <port protocol="udp" port="32412"></port>
        <port protocol="udp" port="32413"></port>
        <port protocol="udp" port="32414"></port>
        <port protocol="tcp" port="32469"></port>
      </service>
    3. sudo firewall-cmd --add-service=plex --permanent
      sudo firewall-cmd --reload
  6. transmission 설치
    1. sudo yum install transmission-daemon
      sudo systemctl start transmission-daemon
      sudo systemctl enable transmission-daemon
      sudo vi /etc/firewalld/services/transmission.xml
    2. <?xml version="1.0" encoding="utf-8"?>
      <service>
        <short>transmission</short>
        <description>Ports required by transmission-daemon.</description>
        <port protocol="tcp" port="9091"></port>
      </service>
    3. sudo firewall-cmd --add-service=transmission --permanent
      sudo firewall-cmd --reload
    4. 그냥 transmission을 설치하면 gtk와 함께 안 쓰는 잡다한게 많이도 설치된다.
    5. 공식 repo를 이용하면 최신 버전이 아닌 것은 감안하자.
  7. tvheadend 설치
    1. sudo yum install tvheadend
  8. dynamic dns 프로그램 설치
    1. sudo yum install ddclient
    2. cloudflare에 ip를 업데이트 할 때 쓴다.
  1. httpd
    1. sudo systemctl enable httpd.service
    2. sudo systemctl enable mariadb.service
    3. sudo systemctl start httpd.service
    4. sudo systemctl start mariadb.service
    5. sudo firewall-cmd --permanent --add-port=80/tcp
    6. sudo firewall-cmd --permanent --add-port=443/tcp
    7. sudo firewall-cmd --reload

댓글을 입력하세요. 위키 문법이 허용됩니다:
R F N I Y