태그 Archives: Centos

Docker for windows – centos8(php, httpd) 설치

Centos 8.1.1911 이 배포 되었다.

당장 OS 를 올릴 필요는 없지만 새로운 OS 가 추후에는 사용이 될것이기 때문에

Docker 환경에서 연습이 필요로 하다고 판단되어 Windows for Docker 를 이용하여 컨테이너를 생성하여 설치 테스트 및 작동 테스트를 해보았다 ‘ㅅ’a

사전에 c 드라이브를 분배 하여 w 드라이브에 workspace 를 생성 하였으며 컨테이너 웹 디렉토리와 연결한다. (windows 환경에서 php 개발 편의성)

 

물론 Docker 부분만 제외 한다면 Centos 8 에서 같은 방법으로 설치가 가능하다.

 

docker 에 centos 8 공식 이미지를 통해 컨테이너 생성을 한다.

 

Remi’s 레포지토리 추가 및 php 7.3 설치 (httpd 는 의존성에 의해 OS 기본 제공 되는 2.4.37이 설치 된다.)

 

apache 설정 (웹 디렉토리는 /var/www/html 으로 진행 하였음.)

 

php-fpm 설정

 

php.ini 설정 (파일 업로드 100M 와 숏코드만 사용 만 수정)

 

apache 및 php-fpm 시작 및 활성화

 

docker hub: https://hub.docker.com/r/san0123/centos8-apache24-php73

도커 이미지(latest)의 경우 php-fpm 이 아닌 libphp7.so 으로 httpd-profork 방식으로 설정 되어 있다. (ssl, http2 등 사용 불가)

php 7.4 : https://hub.docker.com/r/san0123/centos8-apache24-php74


ps. MariaDB 10.4 설치

mariadb 는 centos 에서 10.3.17 이 제공되지만 업데이트는 잘되지 않기 때문에 mariadb 에서 제공 되는 repo를 추가하고 설치한다.

 

mariadb 시작 및 활성화

 

CentOS 7 에 azcopy 설치

CentOS 7 에 azcopy 를 설치 하여 Azure Blob 스토리지를 이용한다.
Azure Blob 스토리지는 AWS S3 스토리지 와 개념이 같은 비정형 스토리지 이고, 속도가 만족스럽지 않지만 GB 당 월 0.1$ 라는 저렴한 가격으로 사용이 가능하다.

— 물론 AWS Glacier 는 더 싸다 ‘ㅅ’a — 다만 테이프백업 복구가 4~5시간의 Retrieval 이 있기 때문에 1차 백업 용으로 좋지 않음. —

$0.025/GB – AWS S3
$0.02/GB – Azure BLOB
$0.005/GB – AWS Glacier

데이터 input 시에는 과금이 되지 않기 때문에 서버 백업을 적재 하는 용도로 매우 좋다 🙂

 

먼저 yum 레포지토리를 설치한다.

 


yum 을 이용하여 dotnet 을 설치한다.

azcopy 를 설치한다.


azcopy가 7.2 버전으로 업데이트 되면서 dotnet 을 설치할 필요가 없어 졌다. ( yum을 이용한 libunwind libicu 만 설치 한다. )


정상적인 설치가 된경우 azcopy 명령어를 입력할 경우 아래와 같이 나온다.

 

간단한 파일 업로드 사용 방법은 다음과 같다.

다운로드는 다음과 같다.

백업스크립트를 만들어서 사용할 경우 quiet 옵션을 사용 한다.

sudo 보안 취약점 CVS-2017-1000367

sudo 명령을 이용하여 root 권한을 탈취 할 수 있는 보안 취약점이 공개 되었습니다.

일반적인 보안 권고 사항인 그룹 지정(wheel 과 같은)을 한 경우에는 관련이 없습니다.

또한 selinux 를 활성화 하고 그룹 지정이 없이 운영 할 경우에는 아래 메뉴얼에 따라 sudo 명령어를 업데이트 하시기 바랍니다.

다만 업데이트가 쉽기 때문에 진행을 하는것이 좋습니다 🙂

[참고 사이트]

Ubuntu https://www.ubuntu.com/usn/usn-3304-1/
CentOS https://lists.centos.org/pipermail/centos-announce/2017-May/022450.html

주의 사항 : 업데이트를 할 경우 명령어의 소유권 및 퍼미션이 초기화가 되어 권한이 -rwsr-xr-xr   소유권 및 그룹이 root:root 가 되므로 기존에 쓰던 정보를 확인 하고 나서 sudo 업데이트 후에 재 지정 해야 합니다.

 

CentOS

 

Ubuntu

 

crontab 에 등록된 스크립트의 한글 처리.

주기적인 작업을 crontab 에 등록하여 운영을 할때 캐릭터셋이 중요한 경우가 발생한다.
일반적으로 CentOS 리눅스 서버에는 i18n 설정이 되어 캐릭터셋이 운영 된다.

물론 CentOS7의 경우는 변경 되었다. ( /etc/locale.conf )

 

anyway.. cron 에 등록해서 적용하는경우 이러한 설정이 반영되지 않고 en_US가 기본 캐릭터셋으로 돌아간다 ‘ㅅ’a
때문에 캐릭터셋이 중요한 스크립트에서는 export LANG=ko_KR.eucKR 과 같이 선언을 하거나 source /etc/sysconfig/i18n내용을 호출하여 $LANG 가 정상 동작 하도록 한다 ‘ㅅ’a

echo $LANG 의 값이 euckr 혹은 utf8이 아닐 경우 i18n 혹은 locale.conf 을 불러오거나 현재 문서의 인코딩 셋을 LANG 으로 지정하도록 만든 로직 이다 ‘ㅅ’a (centos5 이하의 file 명령어 버전 차이때메동작 제대로 안됨..)

 

일반적으로 utf8서버에서 생성된 파일은 utf-8인코딩 셋일 꺼고 euc-kr 에서 생성된 파일은 euckr 문서일꺼기 때문에 =_=a
일반적인 상황에서는 export LANG=utf8 과 같은 선언으로도 충분하다.

다만 서버 관리 특성상 shell script의 버전관리를 통해 자동 배포를 하고(svn 혹은 git 처럼..)
받아서 쓰는 서버의 캐릭터셋이 예측할수 없을때 유용할 수 있음.

CentOS에서 whois 명령어를 이용한 도메인 정보 조회

CentOS 즉 레드햇 계열의 리눅스에는 jwhois 를 이용하여 linux 콘솔에서 도메인 정보조회를 할 수 있다.
설치는 yum 으로 진행을 할 수 있다.

사용법 다음과 같이 매우 간단하다.

 

다만 쓰다 보니 이것저것 불편한것이 많았다.

  1. new TLDs 가 전혀 조회가 되지 않는다.
  2. 브라우져에서 복사해서 바로 조회 할경우 http 혹은 https 까지 복제 되어 실패한다.

 

new TLDs 를 조회하기 위해서 /etc/jwhois.conf 파일을 새로운 conf 파일로 대체 한다.

 

whois 명령어를 조회해보니 아래와 같이 whois 명령어가 jwhois 명령어로 링크되어 있다.

때문에 먼저 whois 명령어를 삭제하고 새롭게 명령어를 만든다.

그리고 동작이 좀 더 되도록 입력값을 수정해서 작동되게 한다.

~]# whois https://www.enteroa.com 이 된다.
아~ 편하다 ‘ㅅ’a