Untitled

CentOS 대 Ubuntu : 서버에 더 좋은 것은

가장 많이 사용되는 두 가지 서버 배포판은 CentOSUbuntu 입니다. 이것은 관리자, 초보자 및 전문가 모두의 주요 딜레마입니다.
두 가지 (그리고 그 이상) 배포판에 대한 경험을 가지고 우리는 서버에 사용될 때 CentOSUbuntu를 비교하기로 결정했습니다.

간략한 개요 :

CentOS Ubuntu
RedHat Linux Enterprise 기반 Debian 기반
업데이트가 느림 자주 업데이트 됨
업데이트가 느리지만 안정적 업데이트 된 패키지들이 볼안정하고, 안정화 되기까지 시간이 걸림.
튜토리얼이 충분하지 않고, 사용자 기반이 적다 풍부한 문서, 온라인 커뮤니티를 통해 충분히 학습할 수 있음
레드햇 기반 배포판이 없기 때문에, 초보자들에게 어려움 Ubuntu Desktop 버전이 존재함으로 초보자들이 접근하기 좋음
.rpm, yum 패키지 관리 .deb 패키지와 apt-get 패키지로 패키지 관리

어느 것이 초보자에게 더 낫지?

우분투. 언제나 그렇듯이, 귀하의 요구 사항과 이전 경험에 크게 의존하지만 일반적으로 우분투는 초보자에게 더 나은 선택입니다.
주로 다음 두 가지 이유 때문입니다.

  • 우분투에는 무료로 도울 준비가 된 커다란 커뮤니티가 있습니다. 그리고 우리는 정말 큰 의미가 있습니다.
    수많은 온라인 포럼 및 그룹에 속한 수천 명의 사용자들이 지원을 해 줄수 있습니다.
    CentOS에 대한 많은 자습서와 도움말 또한 찾을 수 있습니다. 특히 간단한 LAMP 스택과 인기있는 응용 프로그램에 특히 유용합니다.

  • 우분투 서버는 이전에 우분투 데스크톱을 사용 해본 사람이라면 훨씬 쉽습니다.
    CentOSFedora도 마찬가지지만 Ubuntu Desktop 버전은 가정용 Linux 기반 배포판보다 훨씬 인기가 있습니다.

기업을 위한 선택

CentOS. 다시 한 번 우분투를 비즈니스 웹 사이트 나 내부 회사 서버로 사용할 수는 있지만 CentOS의 장점은 다음과 같습니다.

  • CentOS는 (틀림없이) 더 안정적이고 안전합니다.
    CentOS는 업데이트 빈도가 적기 때문에 소프트웨어가 더 오랜 기간 테스트되고 진정한 안정 버전 만 출시된다는 의미입니다.
    CentOS를 사용하면 새롭고 버그가 많은 앱 릴리스에서 안정성 문제가 발생하지 않을 것입니다. 왜냐하면 실제로 새롭고 버그가있는 버전을 얻지 못할 것이기 때문입니다.

  • 대부분의 제어 패널 (가장 인기있는 패널을 포함하여 - cPanel)은 CentOS 만 지원합니다. 즉, 웹 호스팅 회사이거나 고객이 많고 제어판이 필요한 웹 에이전시 인 경우 CentOS가 더 나은 옵션입니다.

어느 것이 더 빠를까

속도 측면에서 동일합니다. 하드웨어만큼 빠릅니다. 당신이 하드웨어를 구성하는만큼 빠릅니다.
무엇이든 관계없이 모든 서버, 구성 및 응용 프로그램을 올바르게 구성하고 보안해야합니다.

블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

synology | nginx + php70 + mariadb + wordpress

시놀로지를 처음 이용해 보았습니다.
워드프레스 홈페이지를 올리려고 했는데, 기본으로 제공되는 패키지를 통해서 설치를 진행 할 수 있습니다.

기본 패키지는 php 5.3 으로 설치 됨.

그래서, php70 으로 판올림하는 작업을 해서 설치하려고 합니다. php72로 설치하는 방법도 아래와 같은 방법으로 설치하면 될 것 같습니다. (추측’)

아래의 설치방법은 최대한 심플하고 간단하게 설치를 진행하려고 합니다.

준비

설치할 계정에 관리자 권한이 있어야 합니다.

SSH 접속환경

[제어판]에서 [고급모드]를 통해서 SSH 설정을 진행할 수 있습니다.
터미널 및 SNMP 메뉴를 클릭해서 SSH 서비스 활성을 통해 설정을 완료할 수 있습니다.

Imgur

Imgur

이제 아래 작업으로 진행해 주세요.

설치

대부분의 설치는 패키지 설치를 통해서 설치를 합니다. 아래와 같은 사항을 설치합니다.

  1. mariaDB 10
  2. php70
  3. php53 (phpMyAdmin 설치를 위한 필수)
  4. phpMyAdmin
  5. webstation
  6. 워드프레스 한글판 다운로드

mariaDB 10

설치할 때 root계정을 잘 메모 해 놓습니다. 나중에 phpMyAdmin에 접속 할 때 필요합니다.

php70

php70 기반으로 php70을 설치하기 위해서 필요합니다.

설치하고 난 뒤에 설정을 잡아야 사요할 수 있다.
아래 세팅 과정에서 다시 설명하겠습니다.

php53

시놀로지가 php53기반으로 돌아가는 패키지들이 있습니다.

phpMyAdmin

mariaDB 10을 웹을 통해서 접속하기 위해서 필요합니다.
외부에서 직접 서버로 접속하는 것은 보안에 위험이 있습니다. 또한, 접속하는 방법도 번거롭습니다.
반드시 설치를 진행하는 것이 좋습니다.

wordpress DB 및 계정 추가

wordpress 계정을 생성 해 준다

같은 네트워크단에서 설치를 진행할 경우 localhost권한만으로 가능하다.
But, 권한을 % 권한으로 전역 설정을 해 줘야 wordpress 설치가 외부에서 할 수 있다.

webstation

가상 호스팅기능을 사용하기 위해서 필요 합니다.
만약 여러개의 사이트를 운영하게 된다면 가상 호스팅을 통해서 진행하면 폴더관리 더 유연하게 할 수 있습니다.

설치가 되었다면 터미널상에서 web 폴더가 만들어 진 것을 확인할 수 있습니다.

기본 설치가 완료 되었다면 아래와 같은 화면을 패키지센터에서 확인 할 수 있습니다.

Imgur

워드프레스 설치

워드프레스 다운로드 페이지에서 한글판을 설치할 수 있습니다.
접속하면 볼 수 있는 다운로드 페이지에서 링크복사를 합니다.

링크 클릭을 눌러서 다운로드 받지 마세요.
터미널을 통해서 다운로드 하는게 편합니다.

SSH 접속

Imgur

입력하라는 암호는 사용자 암호를 입력하면 됩니다.

wordpress

webstation이 설치되어 있는 폴더에 가서 워드프레스 최신버전을 설치합니다.

다운로드 파일

# sudo wget https://ko.wordpress.org/wordpress-5.0.3-ko_KR.tar.gz

압축풀기

# sudo tar xvfz wordpress-5.0.3-ko_KR.tar.gz

/volume1/web/wordpress라는 폴더가 생성된 것을 확인할 수 있습니다.

참고 : sudo 항목을 입력하기 귀찮다면,
# sudo -i
명령어를 통해서 관리자로 로그인이 가능합니다.

설정

PHP 7.0 module 설정

module 사용설정을 해줘야 wordpress가 제대로 실행이 됩니다.

webstation에서 PHP 설정에서 PHP 7.0항목을 클릭합니다.

Imgur

Imgur

확장 모듈에 있는 모든 항목을 클릭 활성화 합니다.

가상호스팅 설정

패키지 webstation를 실행해서 가상호스트 설정을 시작한다.

  • 문서루트 : web/wordpress 워드프레스가 설치되어 있는 폴더
  • HTTP : Nginx
  • Default Profile ( PHP 7.0 )

Imgur

여기까지 설정이 되었으면 이제 설정했던 호스팅으로 브라우져 접속을 하면, 설치화면을 볼 수 있습니다.

추가설정

wordpress 권한설정

권한 설정을 해줘야 ftp에 대한 정보를 묻지않고 플러그인 설치를 진행할 수 있다

소유자 변경

# chown http:http -R /volume1/web/wordpress

시놀로지에서 기본으로 생성되어있는 http 사용자와 그룹이 있어서 일단 이렇게 설정
개인이 편하게 수정해서 사용할 수 있습니다.

파일 권한 수정

# cd /volume1/web/wordpress
# find ./ -type f -exec chmod 644 {} \;
# find ./ -type d -exec chmod 755 {} \;	

nginx 설정

nginx에서 설정하는 방법을 통해서 기본적인 설정을 진행했다.

nginx 가상호스팅 설정파일

가상호스팅 서비스에 관한 설정파일 위치

/etc/nginx/etc/app.d/server.webstation-vhost.conf

파일안을 들여다보면 각 가상호스팅 설정별로 최하단에 include 설정이 되어있는 폴더를 확인할 수 있다.

include /usr/local/etc/nginx/conf.d/279471f7-538e-4d3c-82e0-dbe9ef35393d/user.conf*;

진하게 표시되어있는 부분에 nginx 추가 설정파일을 작성하면 된다.

작성하는 이유 : 시놀로지가 재시작되면 server.webstation-vhost.conf 설정들이 재설정이 되기 때문에 상태 설정이 지워진다고 한다.

# WP Super Cache 설정 시작.
set $cache_uri $request_uri;

# POST 요청시 Super Cache 작동하지 않도록 설정
if ($request_method = POST) {
    set $cache_uri 'null cache';
}

# Get 요청시에 인수가 존재할 경우 Super Cache 작동하지 않도록 설정
if ($query_string != "") {
    set $cache_uri 'null cache';
}

# 다음의 주소로 시작할 경우 Super Cache 작동하지 않도록 설정
# wp-admin, xmlrpc 등을 포함함
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'null cache';
}

# 로그인한 사용자나 최근에 댓글을 달았던 사람 상대로 Super Cache 작동하지 않도록 설정
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'null cache';
}

# 1. Permalink가 작동하도록 설정한다.
# 2. 주소가 들어왔을 때 supercache가 가지고 있는 파일이 존재할 경우
#    PHP를 거치지 않고 바로 캐시를 전송시킨다.
location / {
    root   /volume1/web/wordpress;
    index  index.php index.html index.htm;
    try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html $uri $uri/ /index.php?$args;
}

설정파일을 추가한 뒤에 nginx 에서 설정을 적용한다

# nginx -s reload

워드프레스 설치

이제 서비스하는 주소로 접속하면 설치화면이 나올겁니다.
여기서 DB와 연결이 되지 않는다면, 설정을 아래와 같이 수정한 후 계속 합니다.

localhost:/run/mysqld/mysqld10.sock
블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

version 정보

  • nginx : 1.14.0
  • php : 7.1.18

yum install nginx 를 통해서 설치하였으며,

# yum install nginx

[root@centos html]# nginx -v
nginx version: nginx/1.14.0

php71 은 remi repo를 추가해서 아래와 같이 설치했다.

# yum --enablerep=remi-php71 install php-fpm php-common

[root@centos html]# php -v
PHP 7.1.18 (cli) (built: May 24 2018 07:59:58) ( NTS )
Copyright © 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright © 1998-2018 Zend Technologies

설정파일

/etc/php-fpm.d/www.conf 파일

########### file /etc/php-fpm.d/www.conf
user = nginx
group = nginx
;listen은 nginx 설정과 맞춰줘야 한다.
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock;
listen.owner = nginx
listen.group = nginx

/etc/nginx/conf.d/default.conf 파일

########### file /etc/nginx/conf.d/default.conf

server {
    listen   80;
    server_name  your_server_ip;

    # note that these lines are originally from the "location /" block
    # root 설정이 없으면 404 에러가 날수 있다.
    root   /usr/share/nginx/html; 
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        #fastcgi_pass 는 아래 두개 중 아무거나 사용해도 좋으나 php-fpm.d/www.conf 설정과 맞춰줘야 한다.
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        #/scripts 이름으로 인해서 오류가 생길 수 있다.
	    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

에러상황 #1

사이트에 접속은 되는데 404 error 또는 파일을 찾을 수 없는 상황

[error] 7469#7469: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.114, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:",

해결방법

/etc/nginx/conf.d/default.conf 설정파일에서 아래와 같이 root 폴더 설정을 한다.

server {
	root /usr/share/nginx/html;
	index
}

에러상황 #2

*1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream,

php-fpm.sock 의 그룹:사용자 권한 문제
아래와 같은 명령어로 해결할 수 있다.

# chown nginx:nginx /var/run/php-fpm/php-fpm.sock

다른 분들 고생 안했으면 좋겠다.

...

'리눅스' 카테고리의 다른 글

firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
리눅스 daemon 항목들 정리  (0) 2016.08.09
블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

web, sql 서버를 윈도우로 사용하고 있습니다. 그런데, 저는 리눅스 서버가 더 안정적이라고 생각해서 리눅스 서버로 backup 서버를 구축하고자 했습니다.

아크로닉스는 윈도우와 리눅스를 동시에 제공하고 있습니다.

설치하고 난 뒤에 알게 된 문제점

  1. 백업 서버 방화벽(firewalld)
  2. 백업 파일 배포방법(smb server 를 통한 파일 복제)

순서

install acronis 12 for CentOs 7

Imgur

저는 CentOs 7 로 구성하고 잇어서 Linux 64 버전을 다운 받았습니다.

설치프로그램 실행

# ./AcronisBackup_12.5_64-bit.x86_64

여기서 알아둬야 할 점은 설치 마지막에 두가지 포트를 설정해 주는 점입니다. 아래 방화벽을 세팅할때 사용합니다.

  • 관리 서버에 액세스하기 위해 웹 브라우저 포트기본값 9877
  • 제품 컴퍼넌트 간 통신에 사용될 포트 7780

방화벽

Centos 7 부터는 firewalld 라는 프로그램이 기본으로 내장 되어 있어서 방화벽을 제어 할 수 있습니다.
저는 여기를 참조해서 세팅을 했습니다.

네트워크 형태에 따라 다양한 방화벽 룰을 적용할 수 있습니다.

public zone 의 설정 파일은 XML형식로 저장이 됩니다. /etc/firewalld/zones/public.xml 에 저장이 됩니다.

Acronis backup 를 사용하기 위해서는 9877, 7780 포트를 개방해 줘야합니다. 아래와 같이 입력 해서 포트를 개방해 줍니다.

# firewall-cmd --permanent --zone=public --add-port=9877/tcp
# firewall-cmd --permanent --zone=public --add-port=7780/tcp
포트제거 방법
# firewall-cmd –permanent –zone=public –remove-port=포트

또는, 설정파일에 접근해서 수정을 합니다.

수정을 했으면, 다시 방화벽을 재실행 합니다.

# firewall-cmd --reload

ip 주소를 입력하면, 다음과 같은 접속 화면을 볼 수 있습니다. (이 화면은 한번 백업을 실행한 모습)

Imgur

에이전트 연결하기

백업할 컴퓨터에 AcronisBackup 프로그램을 설치합니다. 윈도우용 백업 프로그램을 실행합니다. 게다가 SQL 서버를 백업할 예정이어서 Agent for SQL 을 지정 했습니다.

Imgur

설치할 항목을 정하고 난뒤에 관리서버에 접속할 주소를 지정해 주면 됩니다.

백업 계획 만들기

문제점

로컬디스크(SQL 이 설치가 되어 있는 곳)에 백업은 간단합니다. 그러나 제가 원하는 방법은 백업서버에 저장을 하는 것이었습니다. 그래서 백업 저장되는 곳을 네트워크 드라이브를 만들어 주는 방법을 선택 했습니다.

관리서버가 있으면, 자동으로 관리서버의 디렉토리에 자동으로 인식 저장할 수 있는 줄 알았는데, 그게 아니라, acronis backup 프로그램 외적으로 연결통로를 만들어서 사용해야 했습니다. 이럴 꺼면, 기본적인 스케줄로 SQL 백업 스케줄을 만들어서 사용해도 괜찮지 않을까 싶습니다.

centos 7 에 samba 설치

yum 을 통해서 삼바를 설치

# yum install samba

사용자를 만들어 줍니다.

# useradd acronis -g acronis

useradd acronis 라고 입력 했더니, 이미 있는 그룹이라면서 만들어지지 않습니다. 그래서 그냥 이렇게 만들었습니다.

삼바사용자 생성

# smbpasswd -a acronis
New SMB password:
Retype new SMB password:

공유할 폴더를 만들고, 사용자 권한을 연결합니다.
저는 사용자 폴더를 통째로 권한을 주려고 합니다. 어차피 이거를 위해서만 사용할 꺼니까요

# chown -R acronis:acronis /home/acronis
# chmod -R 770 /home/acronis
$ chron -t samba_share_t /home/acronis

chron 은 seLinux 때문에 사용합니다.

삼바 설정 변경

# vi /etc/samba/smb.conf

아래와 같이 추가했습니다.

[acronis]
path = /home/acronis
valid users = @acronis, acronis
guest ok = no
writable = yes
browsable = yes

설정을 저장하고 삼바를 재실행 합니다.

# systemctl restart smb
# systemctl restart nmb

아크로닉스에서 위치추가

이제 SQL 서버에서 Cent Os 서버의 파일 저장소에 접근할 수 있게 되었습니다.

접속 아이디와 비밀번호는 위에 설정한 대로 입력하면 접근할 수 있습니다.

리눅스도 초보고 윈도우 서버도 초보이다 보니 맨땅에 열심히 헤딩하고 있습니다.
윈도우 라이센스 비용이 많이 들어서, 이렇게 했지만, 돈 많으신 분들은 직접 라이센스 구매해서 하시기 바랍니다. 참고로 아크로닉스는 서버 대당비용을 지불해야 합니다. 더 구입해야 하네요.

블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

HP 서버를 하나 새로 들어오면서 RAID1 구성으로 Centos를 설치하려고 하는데, 이게 B140i통해서 구성을 해야 되는 문제가 있다. 이를 사용하려면 이에 받는 드라이버를 로드해서 인스톨해야 한다.

ahci 로 그냥 설치하면 생기는 문제점

  1. RAID 구성을 사용할 수 없다.
  2. 팬이 55% 로 자동 조정

ahci 로 간편하게 설치가능하지만, 서버부팅시점에 나는 만큼의 서버팬이 돌아가는 것을 경험할 수 있다. 반드시 B140i드라이버를 통해서 OS 설치 하여야 합니다.

반드시 드라이버 dd 로드 하셔서 사용하세요

B140i 드라이버 다운로드

드라이버는 매번 업글되니 확인하기 바란다.

Centos 와 Redhat enterprise 드라이버는 동일하므로 여기서 다운받으면 된다. 드라이버 다운로드

다운로드하신 드라이버 hpxxx.dd.gz 압축 풀면 hpxxx.dd 파일 확인되며, 확장자명에 .iso를 추가합니다

예시
hpdsa-1.2.6-115.rhel7u0.x86_64.dd.iso

USB에 저장을 해 놓습니다.

OS 설치

OS 설치이미지 장치와 DD USB 메모리 모두 서버에 연결하고, OS 이미지로 부팅합니다.

아래 설치 메뉴에서 'e'를 눌러서 편집모드로 들어 갑니다.

Imgur

linuxefi 라인의 제일 마지막 줄에 커서를 옮기고 quiet 뒤에 아래 문장을 이어서 작성합니다.

modprobe.blacklist=ahci inst.dd

일정시간이 지나고 난 뒤에 아래 화면이 나옵니다.
‘r’ 를 입력해서 저장되어 있는 USB를 선택합니다.
여기서는 2번으로 되어있습니다.
‘c’ 를 입력하고 계속 진행 합니다.

Imgur

그리고, 안에 있는 dd.iso 파일을 선택합니다. 파일이 제대로 들어있다면 아래와 같은 화면을 확인할 수 있습니다.

Imgur

확장자가 rpm으로 되어있는 드라이버를 찾을 수 있습니다.
1번을 눌러서 드라이버를 입력하고, ‘c’를 입력하고 다음으로 진행합니다.

Imgur

선택한 드라이버가 [x] 표시 된 것을 확인할 수 있습니다.
‘c’를 눌러서 다음으로 진행합니다.

Imgur

그럼 이제 설치가 진행되는 것을 확인 할 수 있습니다.

블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요