93it-serverengineer의 등록된 링크

 93it-serverengineer로 등록된 네이버 블로그 포스트 수는 120건입니다.

vsftpd 개념 및 설치 및 설정 [내부링크]

VSFTP(very secure ftp)란? vsftpd는 보안 부분을 특히 강조한 데몬으로 Redhat, Suse, Open-BSD에서 기본 FTP로 채택하고 잇으며 보안, 빠른 퍼포먼스, 안정성을 주요 특징으로 소개하고 있다. 또한 config 파일의 설정 문법도 아주 간단해서 FTP 서버 관리를 쉽게 할 수 있다. vi /etc/vsftpd/vsftpd.conf ① 기본설정 background=YES (기본값 = NO) VsFTP 데몬을 background로 실행할 것인지 설정 합니다. listen=YES (기본값 = NO) VsFTP 데몬은 기본적으로 inetd 모드로 동작이 됩니다. 따라서 독립모드(standalone)로 데몬을 운영하실 거라면 이 옵션과 listen 옵션을 모두 YES로 켜주셔야 됩니다. 반대로 VsFTP 데몬을 inetd 모드로 운영하시려면 이 옵션과 listen 옵션을 비활성화 하시면 됩니다.일반적으로 FTP 데몬은 많은 접속이 있을 경우에 standa

CentOS 7 MySQL 4.0.30 소스설치 [내부링크]

##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_Setup yum install -y vim wget epel-release cd /usr/local/src/APM_Setup yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum update -y ##디폴트환경변수 echo " " >> /etc/profile echo "####default PATH#####" >> /etc/profile echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:" >> /etc/profile echo "#####################" >> /etc/profile ##소스설치를 위한 패키지 환경 설치 yum install -y libdb-de

r8169 -> r8168 네트워크 드라이버 변경 [내부링크]

======================================================== https://community.hetzner.com/tutorials/installing-the-r8168-driver https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software yum install dkms-r8168 cd /usr/local/src wget http://mirror.hetzner.de/tools/Realtek/drivers/r8168-8.046.00.tar.bz2 tar jxvf r8168-8.046.00.tar.bz2 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm r8168 bz2 다운로드 사이트 htt

부하분산 로드밸런싱(Load Balancing) [내부링크]

로드밸런싱이란 네트워크 기술로 중앙처리장치에서 자원들을 분산 시켜주는 작업을 의미합니다. 한대의 서버에 부하가 집중되면 장애가 발생할 수 있기 때문에 트래픽을 관리하여 서버에 발생하는 부하(=로드)들을 분산(=밸런싱)해줍니다. 서비스의 규모가 커지고, 이용자 수가 늘어나게 되면 기존의 서버만으로 원할한 서비스를 제공하지 못합니다. 해결방법으로는 1. 기존 서버 한대를 Scale-up 방식 2. 기존의 서버와 비슷한 성능의 서버를 증설하여 Scale-out 방식 예를들어 Scale-out 방식으로 했다면 균등하게 분산해주는 로드 밸런싱이 필요합니다. 로드밸런싱을 해주는 로드밸런서에는 2가지 종류가 있습니다. L4 로드밸런서 vs L7 로드밸런서 L4 로드밸런서 L7 로드밸런서 네트워크 계층 Layer 4 - 전송계층 (Transport layer) Layer 7 - 응용계층 (Application layer) 특징 TCP/UDP 포트 정보로 구성 TCP/UDP 정보 + 애플리케이션 헤

openssl 버전(Redhat)과 웹브라우저 tls 정책 [내부링크]

openssl 은 데이터통신을 위한 TLS, SSL 프로토콜을 이용할 수 있는 오픈소스 라이브러리 입니다. 인터넷을 통해 클라이언트와 서버가 통신할 때 통신 내용을 안전하게 보호하는 방법으로 SSL(Secure Sockets Layer)을 사용할 수 있습니다. SSL은 서버 인증(Server Authentication), 클라이언트 인증(Client Authentication) 그리고 데이타 암호화(Data Encryption) 기능을 제공합니다. 인증(Authentication)은 통신의 상대방이 맞는지 확인하는 절차를 의미합니다. 암호화는 데이타가 누출되더라도 외부에서 이 내용을 해독할 수 없게 하는 걸 의미합니다. 보통 openssl은 http 80포트 웹사이트를 443으로 적용시킬때 필요합니다. 웹사이트에서 443을 인증하고 만약 구글, 네이버 연동 로그인을 할때 curl 기능을 통해서 openssl 이 연동되어 있다면 로그인이 가능합니다. 보통 APM 버전에서 phpinfo

tcpdump MTU(특정 페이지 느릴때) [내부링크]

tcpdump -nni eth1 -s 1500 host 해당IP 특정페이지 느릴때 특정 페이지 호출 tcpdump -nni eth1 -A -s 1500 port 80 |grep -H host 특정 게시판 확인 tcpdump -nni eth1 -A -s 1500 port 80 |grep -Ref

bin log 개념 및 설정 [내부링크]

MySQL 의 빈로그 혹은 바이너리 로그는 MySQL 서버 인스턴스의 데이터 변경사항들에 대한 정보를 포함하는 로그 파일의 세트이다. 여기에는 에러코드, 바이너리 로그 자체에 대한 메타데이터 등 다양한 데이터가 같이 포함되게 된다. 기본적으로 Transaction Commit 시에 기록되어지며, 데이터 변경 순서를 보장한다는 특징이 있다. 주로 복제(Replication) 및 복구(Recovery)를 목적으로 binary log 가 사용되어지며, 복제 시에는 Secondary Node 가 Primary Node 로부터 binlog 데이터를 전달받아서 로깅하게 된다. (그리고 전달받아 로깅하는 이 로그를 릴레이 로그 라고 한다) MySQL 에서 제공하는 바이너리 로그에는 3가지 종류가 있다. (1) Statement-based logging Insert, Update, Delete 에 대한 SQL 문들이 포함된다. Statement base 로 복제를 수행 시 Statement-Bas

my.cnf 설정파일 정리 [내부링크]

[client] #password = your_password → client 패스워드 설정 port = 3306 → 포트번호 socket = /tmp/mysql.sock → mysql.sock 위치 # The MySQL server [mysqld] port = 3306 → 포트번호 socket = /tmp/mysql.sock → mysql.sock 위치 skip-external-locking → 외부(TCP/IP) 잠금 비활성 key_buffer_size = 384M → 인덱스를 메모리에 저장하는 버퍼의 크기 max_allowed_packet = 1M → 요청된 쿼리의 최대길이의 값 table_open_cache = 512 → 각 쓰레드별 오픈할 테이블수 sort_buffer_size = 2M → 정렬에 필요한 버퍼의 크기 read_buffer_size = 2M → 테이블 스캔에 필요한 버퍼크기 read_rnd_buffer_size = 8M → 디스크 검색을 피하기 위한 랜덤 읽기

DB crash 확인 및 복구, 백업 및 복원 [내부링크]

[MySQL 테이블 손상 확인 및 복구방법] mysql> use DB명 -> 작업할 DB 선택 mysql> check table 테이블명 -> 확인할 테이블을 체크 mysql> use DB명 -> 작업할 DB 선택 mysql> repair table 테이블명 -> 복구할 테이블 복구 mysql> optimize table [테이블명]; => 최적화할 테이블을 최적화 [MySQL DB 손상 확인 명령어] mysqlcheck -u root -p --check --database DB명 mysqlcheck -u root -p DB명 [MySQL 특정 DB의 모든 테이블 체크 및 자동 복구] cd [MySQL_HOME]/bin => MySQL 설치 홈의 bin 폴더로 이동 ./mysqlcheck -u [DB계정] -p[패스워드] --auto-repair [DB명] => 해당 DB의 모든 테이블을 체크 및 자동복구 [MySQL 특정 DB의 모든 테이블 최적화] cd [MySQL_HOME]/b

DB 용어 [내부링크]

관계형 데이터베이스(RDBMS)인 여러 가지 데이터베이스(DataBase)를 사용을 위해서는 반드시 SQL(Structered Query Language)을 사용해야 한다. 그중 SQL 문법에는 3가지의 종류가 있다. 1. DDL(데이터 정의 언어 : Data Definition Language) 데이터베이스의 구조를 정의하는 명령어의 모음 CREATE - 새로운 데이터베이스 관계 (테이블), VIEW, 인덱스, 저장 프로시저 만들기 DROP - 이미 존재하는 데이터베이스 관계(테이블), 뷰, 인덱스, 저장 프로시저를 제거한다. ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할을 한다. TRUNCATE - 관계 (테이블)에서 데이터를 돌이킬 수 없는 제거 2. DML(데이터 조작 언어 : Data Manipulation Language) 데이터베이스 내 테이블에 데이터 검색 / 삽입 / 업데이트 / 삭제를 조작하는 명령어의 모음 SELECT - 검색 (

MySQL Slow Query 설정 [내부링크]

MySQL 설정파일 Slow Query 설정 slow query log 확인하기 mysql> show variables like 'slow_query_%'; 서버밖에서 설정하기 MySQL my.cnf 설정 vi my.cnf [mysqld] #slow_query_setting slow_query_log=1 //////1=on 0=off log_slow_log_file = /var/log/mysql/mysql-slow.log long_query_time = 3 슬로우 쿼리가 3초가 초과하는 쿼리에 대한 로그를 남기는 설정입니다. log_slow_querise : 저장될 로그경로 long_query_time : 쿼리타임이 지정한 시간을 초과하는 부분만 저장 MySQL 재시작 /etc/init.d/mysqld restart cd /var/log mkdir mysql chown mysql:mysql /var/log/mysql mysql -u root -p 후 select sleep(5); M

MySQL character set 확인 및 변경 [내부링크]

MySQL character set 확인 및 변경 1.서버안에서character set 확인 mysql> show character set ; ///사용할 수 있는 캐릭터 셋 종류 확인 mysql> show character set where description like '%Korean%' ; ///description의 칼럼에서 korean단어를 포함하고있는 캐릭터셋 찾기 간단하게 캐릭터 셋 확인하는 방법 mysql> status Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 ======================================================================== Servere characterset : 데이터베이스 생성 시 기본 값을 지정해 주지 않을 경우, 이 값으로 데이터 베이스 캐릭터 셋이 설정

MySQL 구조 [내부링크]

로컬 계정으로 MySQL 서버에 관리자로 접속 mysql -u root -p비밀번호 최초 접속시에는 비밀번호가 설정되어 있지 않음. mysql -u root 접속 후 관리자계정(root)의 비밀번호 설정해야함.. use mysql; <--- mysql: MySQL자체의 관리 정보를 담아놓는 데이터베이스 update user set password=password('1234') where user='root'; flush privileges; MySQL 기본구조 정리 =============================================================================== # 데이터베이스(Database) 테이블을 담는 울타리역할.... # 테이블(Table) 실제 데이터들을 저장하는 역할 # 컬럼(Column) 테이블에 저장되는 항목을 컬럼으로 구분한다.. # 로우(Row) 데이터가 입/출력되는 단위 다른말로 레코드(Record) =========

php 소스설치 시 에러 처리 [내부링크]

configure: error: Could not find net-snmp-config binary. Please check your net-snmp installation. Fix: yum install net-snmp-devel configure: error: DBA: Could not find necessary header file(s) 일반적으로 # yum install gdbm gdbm-devel 이면 해결되지만 계속해서 나는 경우 # yum install libdb-devel 해준다. configure: error: DBA: Could not find necessary library. # ln -s /usr/lib64/libgdbm_compat.so /usr/local/lib64/libdbm.so checking for DB4 major version... configure: error: Header contains different version. # yum instal

php.ini 설정 [내부링크]

1. short_open_tag = On Tells PHP whether the short form (<? ?>) of PHP's open tag should be allowed Off 일땐 <? 로 시작되는 코드가 작동하지 않으므로 페이지 오류가 발생합니다. 2. memory_limit = 256M 스크립트 마다의 최대 메모리 소비량 크기를 memory_limit > post_max_size > upload_max_filesize 순으로 설정 3. error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT Common Values: http://php.net/error-reporting 4. display_errors = On 옵션을 off으로 설정하면 php 스크립트 error가 발생하여도 웹상에서는 보이지 않습니다. 5. post_max_size = 100M PHP 가 받아들이는 일을 할 수 있는 POST 데이터의 최대 사이즈 6. upload

CentOS 7 PHP 8.2.33 소스설치 [내부링크]

참고로 8.2.33은 2025년 11월에 나오므로 php.net 사이트에서 현재 나온버전으로 설치하시길 바랍니다. 필자는 PHP 버전이 ~.33 ~.32 .~.34 로 예측해서 작성한것 입니다. 단, CentOS 7 24년 6월 30일까지이므로 repo를 변경해야합니다. -> 해당 부분은 24년 6월 30일이후로 추가 작성할 예정입니다. PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apach

기본적인 Redhat 셋팅 [내부링크]

CentOS 1. 설치 파일(.iso) 실행 - 언어 선택 : 한국어 - SW 선택 : 기본 웹서버 선택 -> 호환성 라이브러리, 개발용 도구 선택 : 원하는 경우 웹서버 - 파티션 선택 : 보통 /boot 512MiB, /swap 4GiB(4096MiB) - 12GB 이하일 때, / 나머지 전부로 설정 : swap 제외 ext4로 설정 : 추가 하드 디스크가 있는 경우 설치 완료 후 작업 : 변경사항 적용으로 마무리 - 설치 시작 후 리부팅 : ROOT 암호 설정 : 설치 완료 후 리부팅 2. NETWORK 설정 - 로그인 : ROOT 계정으로 로그인 - IP 설정 : 연결된(UP) 네트워크 확인 ip link : 네트워크 설정 vi /etc/sysconfig/network-scripts/ifcfg-장치명 ======================================================================== BOOTPROTO=static 값 변경 ONBO

공식사이트 CentOS 6 배포중단으로 인한 yum repo 주소로 변경 [내부링크]

현재까지 내가 찾은 yum repo 주소는 2개이다 만약 이사이트들도 종료가 된다면 다른 사이트를 찾아야한다. ============================================ vi /etc/yum.repos.d/CentOS-Base.repo ============================================ [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://centos.mirror.cdnetworks.com/6/os/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #released updates [updates] name=CentOS-$releasever - U

Let’s encrypt 사용 방법 변경 [내부링크]

이제 새롭게 SSL 무료인증서를 적용하려면 certbot-auto, letsencrypt-auto 명령어가 안먹히면서 안된다. letsencrypt에서 git 형식방식을 안되게 설정하셨다. Skipping bootstrap because certbot-auto is deprecated on this system. Your system is not supported by certbot-auto anymore. Certbot cannot be installed. Please visit https://certbot.eff.org/ to check for other alternatives. 이러한 구문가 나오면서 안된다. 링크를 확인해보면 snap을 이용하여 설치하라고 안내되어 있다. CentOS7/8의 경우 epel-release 저장소가 필요하다. # yum install -y epel-release # yum install snapd # ln -s /var/lib/snapd/snap

현재 메인보드에 꽃혀 있는 메모리 갯수 및 용량 확인 [내부링크]

dmidecode -t 17 | egrep 'Memory|Size' dmidecode | grep 'Size.*MB'

CentOS 5 repo변경 [내부링크]

# vi /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=https://vault.centos.org/5.11/os/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=https://vault.centos.org/5.11/updates/x86_64/ #baseurl=http://mirr

CentOS 7 TLSv1.3를 위한 openssl, curl 소스업그레이드 [내부링크]

안녕하세요. 현재 모든 웹브라우저 보안정책은 TLSv1.2, TLSv1.3 만 지원이 가능합니다. 최신 브라우저에서는 TLSv1.0, TLSv1.1은 로 운영되고 있는 보안 사이트들은 접속조차 불가능합니다. 웹브라우저단에서 차단하고 있습니다. 리눅스에서 TLSv1.2를 지원 못하는 CentOS 버전은 CentOS 5 (TLSv1.0 ~ TLSv1.1 만 지원), Ubuntu 12.04 (TLSv1.0 ~ TLSv1.1 만 지원) 버전입니다. TLSv1.2는 지원이 가능하지만, EoS (End of Service) OS는 CentOS 6(2020-11-30), Ubuntu 14.04 (2019-04), Ubuntu 16.04(2021-04) 입니다. TLS 버전을 담당하는 프로그램은 openssl로 해당 버전에 따라 지원이 가능합니다. 각 OS 버전의 openssl 관련 버전입니다. Redhat CentOS 5 = openssl 0.9.8e (TLSv1.0 ~ TLSv1.1 지원) C

기본적인 Ubuntu 셋팅 [내부링크]

adduser 일반계정 passwd 일반계정 apt-get update -y apt-get upgrade -y apt-get install -y wget vim vi /etc/bash.bashrc 맨 하단에 alias vi='vim' source /etc/bash.bashrc FTP(vsftpd) 설정 apt-get install -y vsftpd systemctl enable vsftpd : 리부팅 시 자동 실행 systemctl start vsftpd : 실행/ch vi /etc/vsftpd.conf ================================================================== listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enab

apt 오류 [내부링크]

Ubuntu 16 sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock dpkg --configure -a 다시 apt update하고 설치하면 된다 ========================================================================= Ubuntu 18 이상 sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock* sudo dpkg --configure -a // 안된다면 무시하고 다음 코드수행 sudo apt-ged upgrade // upgrade가 안된다면 update =========================================================================

ufw 방화벽 사용하기 [내부링크]

1. iptables-persistent, netfilter-persistent 패키지 삭제 dpkg -r iptables-persistent dpkg -r netfilter-persistent dpkg -r netfilter-persistent root@localhost:~# apt remove –purge iptables-persistent *purge 옵션의 경우 대시(-) 2개를 필요로 합니다. 워드프레스 버그로 인해 제대로 표현이 안되고 있습니다. 2. ufw 활성화 및 22번 포트 오픈 root@localhost:~# ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup root@localhost:~# ufw allow 22/tcp root@localhost:~# reboot roo

Ubuntu에 원격 데스크톱(Xrdp) 설치 [내부링크]

패키지 업데이트, 업그레이드 및 설치 apt-get update -y apt-get upgrade -y apt-get install -y xrdp apt-get install -y xfce4 xfce4-goodies apt-get install mate-core mate-desktop-environment mate-notification-daemon XFCE 설정 vi /etc/xrdp/startwm.sh ========================================================== /etc/X11/Xsession 부분을 주석처리하고 xfce4-session 입력 #/etc/X11/Xsession xfce4-session ========================================================== :wq vi /etc/xrdp/xrdp.ini ================================================

CentOS 언어셋 설정 [내부링크]

현재 언어셋 확인 변경방법 1 1. character set 확인 - 현재 적용중인 charset을 ‘locale’ 명령으로 확인 locale - 현재의 시스템에서 지원하는 locale 목록을 확인 locale -a 2. character set 변경 /etc/sysconfig/i18n 파일에서 charset 변경 (UTF-8 -> EUC_KR 변경시)(CentOS 6) vi /etc/sysconfig/i18n source /etc/sysconfig/i18n - 현재의 Shell에서 charset 변경 export LANG=ko_KR.euckr 변경방법 2 vi /etc/locale.conf ========================================================== #LANG=ko_KR.utf8 LANG=ko_KR.euckr ========================================================== 변경방법 3 locale

firewalld 이란 [내부링크]

CentOS 7의 방화벽 관리 데몬은 firewalld입니다. 설정은 firewall-cmd 명령어로 합니다. 방화벽 실행 여부 확인 firewall-cmd --state 실행 중이면 running, 실행 중이 아니면 not running을 출력합니다. 방화벽 다시 로드 firewall-cmd --reload 방화벽 설정 후 다시 로드해야 적용됩니다. 존(Zone) 출력하기 firewall-cmd --get-zones 존(zone) 목록을 출력합니다. firewall-cmd --get-default-zone 기본 존을 출력합니다. firewall-cmd --get-active-zones 활성화된 존을 출력합니다. 사용 가능한 서비스/포트 출력하기 firewall-cmd --list-all 사용 가능한 모든 서비스/포트 목록을 출력합니다. firewall-cmd --zone=public --list-all public 존에 속한 사용 가능한 모든 서비스/포트 목록을 출력합니다. 서비스

리눅스 계정생성,삭제,관리,변경,권한 [내부링크]

useradd 명령어 사용방법 옵션: -b 이 위치 아래에 사용자 이름으로 된 홈디렉터리가 만들어집니다. -M 홈디렉터리를 만들지 않습니다. -d 이 위치 아래에 사용자 데이터가 저장됩니다. -D 사용자를 새로 만드는 대신 useradd의 기본 설정을 바꿉니다. -e 계정 만료일을 지정합니다. -f 비밀번호 만료일을 지정합니다. -h 도움말을 보여줍니다. -s 사용자가 기본으로 사용할 쉘(bash 등)을 지정합니다. -u 사용자의 고유 숫자 ID를 지정합니다. -g 사용자가 속할 그룹(1개)를 지정합니다. -G 사용자가 속할 그룹(여러개)를 지정합니다. 예제) useradd hostway -d /var/data/hostway - 신규 생성 유저 : hostway - 디렉토리 : /var/data/hostway 관련디렉토리 /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/login -defs /etc/default/useradd /etc/

yum,apt 명령어 옵션 정리 [내부링크]

동작 Red Hat Debian 패키지 추가, 삭제, 업데이트 패키지 설치 yum install 패키지명 apt-get install 패키지명 패키지 파일을 설치 yum localinstall 패키지명.rpm dpkg -i 패키지명.deb RPM -ivh 패키지명.rpm 패키지 제거 yum remove 패키지명 apt-get remove 패키지명 RPM -e 패키지명 dpkg -r 패키지명 업데이트 확인 yum check -update apt-get -s upgrade apt-get -s dist-upgrade 전체 업데이트 yum update apt-get upgrade apt-dist-upgrade 특정 패키지 업데이트 yum upgrade 패키지명 apt-get upgrade 패키지명 apt-get dist-upgrade 패키지명 패키지 정보 확인 패키지 검색 yum search 스트링 apt-cache search 스트링 패키지 리스트 yum list apt-cache sea

Log 정리 [내부링크]

Log File의 종류 - 기본적인 로그들은 syslogd에 의해서 제어가 되며, syslogd의 설정파일인 /etc/syslog.conf 파일을 수정함으로써 이 파일들의 저장위치와 저장파일명을 변경 가능하다. - 보안을 위하여 숨김속성(.으로 시작하는 디렉토리)의 디렉토리를 다른곳에 만들어 숨김속성파일(.으로 시작하는 파일)을 만들어서 찾기 힘든 곳에 보관 할 수 있다. 로그이름 로그 파일명 관련 데몬 설명 커널 로그 /dev/console kernel 콘솔에 뿌려지는 로그 시스템 로그 /var/log/messages syslogd 리눅스 커널로그 및 주된 로그 보안 로그 /var/log/secure xinetd 보안 인증 관련 로그 메일 로그 /var/log/maillog sendmail popper 메일 로그 (sendmail에 의한 로그) 크론 로그 /var/log/cron crond crond에 의한 로그 부팅 로그 /var/log/boot.log kernel 시스템 부팅시

부팅시 Daemon구동 [내부링크]

Chkconfig runlevel에 따라 신규로 서비스를 등록하고, 등록된 서비스를 조회하는 커맨드라인 툴임 1. 등록된 서비스 조회 $ chkconfig --list 현재 등록된 모든 서비스에 대해 시스템 runlevel 별로 on 또는 off 되었는지 정보를 보여줌 2. 서비스 신규 등록 1) 해당 서비스 실행 파일(실행파일 또는 스크립트파일)을 /etc/init.d 디렉토리로 복사 함 2) 서비스 목록에 추가 (명령어) $ chkconfig --add [실행/스크립트 파일명] (예시) $ chkconfig --add httpd 3) runlevel에 해당 서비스를 실행 설정 (on 시킴) (명령어) $ chkconfig --level [runlevel] [실행/스크립트 파일명] on (예시) $ chkconfig --level 2345 httpd on -> httpd 서비스를 Run Level 2,3,4,5로 부팅 시에 httpd 아파치 프로세스를 시작해라 ! 3. 서비스 on

Hostname, hosts, hosts.allow, hosts.deny 설정 [내부링크]

hostname hostname 을 입력하면 현재 호스트네임을 알려줍니다. hostnamectl set-hostname abc hostname을 abc로 변경합니다. hostname 영구 적용시키기 hostname 설정 파일은 /etc/hostname입니다. 변경 사항 적용하기 시스템을 재부팅하면 변경 사항이 적용됩니다. 서버를 재시작 하지 않아도 아래의 명령을 실행하고 실행중인 터미널을 닫고 다시 열면 hostname이 변경된것을 확인할 수 있습니다. /bin/hostname -F /etc/hostname ============================================================== hosts /etc/hosts리눅스에서 DNS보다 먼저 호스트명을 IP로 풀어주는 파일127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.lo

Cronolog 설치 및 적용 [내부링크]

Cronolog 설치 Cronolog는 아파치 로그를 년/월/일 단위로 쪼개주는 프로그램입니다. 로그를 날짜 단위로 끊어서 저 장하기 때문에 분석하기에도 용이하며, 로그 파일의 비대화를 방지할 수 있습니다. 소스 설치 cd /usr/local/src wget http://www.mirrorservice.org/sites/distfiles.macports.org/cronolog/cronolog-1.6.2.tar.gz tar xvfz cronolog-1.6.2.tar.gz cd /usr/local/src/cronolog-1.6.2 ./configure --prefix=/usr/local/cronolog make && make install 설치 확인 적용 vi /usr/local/apache-2.4/conf/httpd.conf ErrorLog "|/usr/local/cronolog/sbin/cronolog /usr/local/apache-2.4/logs/error_log_%Y%m%d"

Swap 메모리란? [내부링크]

스왑 메모리란? 어플리케이션의 RAM 용량이 차면, swap 메모리가 자동으로 늘어난다. 하드디스크의 디스크 공간을 swap 메모리로 사용하기 때문에 속도가 느려진다. 보통 swap 메모리는 기본 RAM 용량의 2배정도를 잡는 것을 권장한다. 이 swap 메모리 용량은 성능이슈와 관련있기 때문에 알맞게 조정하는 것이 좋다. 메모리가 부족한 현상이 자주 발생하는 경우가 아니면 swap 자체를 사용하지 않는 것이 사실 좋다. 만약 swap 메모리를 사용해야 하는 경우가 생긴다면, 하드웨어로 먼저 처리할 수 있는지 확인하여 여유가 되면 하드웨어로 처리하는 것이 베스트이다. Ram 추가 세팅, SSD 사용 등이 하드웨어적 처리의 한 방법이겠다. swap in, swap out 은 성능을 많이 저하시킨다. 위와 같이 하드웨어로만 처리되면 좋겠지만, 그렇지 못한 상황은 꼭 발생한다. 특히 DB 를 자주 사용하는 경우는 swap 이 많이 활용된다. DB의 경우 속도를 위해 cache 를 사용하는

vncserver 서비스 데몬 만들기 [내부링크]

apt-get install xfce4 xfce4-* vnc4server -y 계정 홈디렉터리 이동 vncserver password 입력 vi /home/계정/.vnc/xstartup ================================================================================= #!/bin/bash xrdb $HOME/.Xresources startxfce4 & ================================================================================= vi /etc/systemd/system/[email protected] ================================================================================= [Unit] Description=Start TightVNC server at startup After=sy

포트 번호 목록 [내부링크]

#자주 사용하는 포트번호 20 / tcp / FTP 데이터 21 / tcp / FTP 22 / tcp / SSH 23 / tcp / Telnet 25 / tcp / SMTP 53 / tcp,udp / DNS 67 / tcp / DHCP 서버 68 / tcp / DHCP 클라이언트 80 / tcp,udp / HTTP 110 / tcp / POP3 전자우편 가져오기 111/ tcp/ portmap 123 / udp / NTP 시간 동기화 포트 137 / tcp,udp / SMB (NETBIOS Name Service) 138 / tcp,udp / SMB (NETBIOS Datagram Service) 139 / tcp,udp / SMB (NETBIOS Session Service) 143 / tcp / IMAP 이메일 가져오기 161 / udp / SNMP (Simple Network Management Protocol) 162 / udp / SNMP - Manager 포트 179 /

Owasp Zap 설치하기 [내부링크]

Owasp Zap 설치하기 Owasp zap 다운로드 https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project --> ZAP 2.7.0 is now available! --> https://github.com/zaproxy/zaproxy/wiki/Downloads JDK, JRE 다운로드 > www.oracle.com > downloads > JAVA > JDK, JRE :JRE 예)https://www.java.com/ko/download/win10.jsp --> JavaSetup8u221.exe :JDK )https://www.oracle.com/technetwork/java/javase/downloads/index.html --> jdk-8u221-windows-x64.exe OK jdk와 jre를 먼저 설치한 후 zap을 설치해 준다. 설치가 완료되면 explorer가 아닌 다른 브라우저를 준비한다. 프록시앱을 위해 크롬

서버 이전 [내부링크]

APM 버전 확인 APM 버전 확인 및 모듈 확인 Apache /usrl/local/apache/bin/apachectl -v 소스//yum httpd -v /usrl/local/apache/bin/apachectl -M 소스//yum httpd -M config.nice 확인 소스//yum rpm -qa | grep httpd 확인해서 모듈 설치 MySQL /usrl/local/mysql/bin/mysql -V 소스//yum mysql -V config.log 확인해서 컴파일 옵션확인 소스//yum rpm -qa | grep mysql 확인해서 모듈 설치 PHP /usr/local/php/bin/php -v 소스//yum php -v /usr/local/php/bin/php -m 소스//yum php -m config.nice 확인 소스//yum rpm -qa | grep php 확인해서 모듈 설치 php.ini 설정파일 확인 작업시작 전 백업본 있는지 확인 구서버 OS버전, 파티

파일 시스템 및 디스크 관련 명령어 [내부링크]

fsck (filesystem check) e2fsck = fsck의 확장 명령어 fsck [option] 장치명 e2fsck [option] 장치명 ============================================================== option    -a : 명령 수행에 대한 확인 질문 없이 무조건 수행한다.    -r : 명령 수행에 대한 확인 질문을 한다. 여러개의 fsck가 병렬모드형태로 작동하고 있을 때        유용하다.    -A : /etc/fstab에 정의되어 있는 모든 파일 시스템을 체크한다.    -P : -A옵션을 사용할 때, 루트 파일시스템을 다른 파일시스템과 병렬로 함께 체크한다.    -R : -A옵션을 사용할 때, 루트 파일시스템은 체크하지 않고 건너 뛴다.    -N : 실행을 하지 않고 단지 어떤 것이 실행되어지는 지 보여준다.    -T : 검사를 시작할 때 제목을 보여주지 않는다.    -s : fsck동작은 시리얼

rsync, scp 사용법 (원격 파일,소스보내기) [내부링크]

rsync : Remote Sync의 줄임말로 여러가지 옵션을 이용해 원격 또는 로컬에 파일을 복사하는 툴입니다. rcp 그리고 scp와 같이 원격에 파일을 복사할 때 사용하는 기본 내장 명령어입니다. 원격 컴퓨터에 파일을 전달할 수 있을뿐만 아니라 로컬에 있는 파일로 복사도 가능합니다. 옵션이 정말 다양하게 많으며 많은 옵션들을 이용해 다양한 기능들을 활용할 수 있습니다.(symlink 유지, 권한 유지 그리고 파일 날짜 유지와 같은 기능들) ============================================================== rsync yum 설치 yum 설치시 # rpm -qa | grep rsync 로 설치 확인이 가능합니다. 설치가 되어있지 않다면 다음과 같이 rsync 설치를 진행합니다. # yum install -y rsync 설치를 확인합니다. # rpm -qa | grep rsync 최신버전으로 설치를 원할 경우 다음과 같이 진행합니다 #

log 관리 logrotate [내부링크]

CentOS7 또는 Ubuntu 14.04 는 rsyslog를 표준으로 채용하고 있다. syslog의 동작을 설정 syslog의 설정 파일인 /etc/syslog.conf ============================================================== facility ( 파실리티 ) facility는 메시지의 출력처이다. 구체적으로는 커널이나 실행 중의 프로세스가 된다. facility를 사용하는 것으로 메시지의 출력이 어디서부터 왔는지 로그의 출력처를 제한하는 것이 가능하다. [*]를 이용하는 것으로 모든 facility를 선택 가능하다. ============================================================== facility 설명 auth, authpriv 인증 시스템 ( login이나 su ) cron cron daemon 각종 데몬 kern 커널 lpr 인쇄 시스템 mail 메일 시스템 syslog sys

Linux 싱글모드 접근 [내부링크]

CentOS 6 싱글모드 shutdown -r now 1. 리부팅중 아무키나 누르고 2번줄에서 e 2. quite를 single로 변경 엔터 또는 init=/bin/bash 3. 2번줄에서 e 접속확인 ================================================================== CentOS 7 싱글모드 shutdown -r now 2. 콘솔창에서 e 3. ro = rw로 변경 rw 뒷 부분을 init=/bin/bash로 변경 4. 컨트롤 + x 5. 패스워드 변경 후 exec /sbin/init 나가기 접속 확인 ================================================================== Ubunt16, 18 싱글모드 shutdown -r now 1. Esc에서 e 2. linux 부분에서 ro = rw로 변경 rw 뒷 부분을 single init=/bin/bash 3. 컨트롤 + x 4. 패스워드

crontab [내부링크]

cron 리눅스에서는 일반적으로 cron 데몬이 주기적인 작업 실행을 처리한다. cron이 시작될 때부터 끝날 때까지 계속 실행되며 실행되며 cron 설정 파일은 cron table을 줄여서 crontab이라 부른다. Crontab 일단 기본이 되는 크론탭 사용법을 한 번 볼까요. 리눅스 쉘에서 다음처럼 입력합니다. # crontab -e 이곳이 바로 크론탭을 설정할 수 있는 곳. 여기에 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신시킵시다. 반대로 현재 크론탭에 어떤 내용이 들어있는지 보려면 다음처럼 입력하세요. # crontab -l 그러면 cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용이 나오게 됩니다. 그런데 만약(거의 없겠지만) 크론탭을 지우고 싶다면? crontab -e 가 저장되는 위치 Redhat # ll /var/spool/cron/ Debian # ll /var/spool/cron/crontabs/ 리눅스 쉘에 다

방화벽(firewalld) 정리 [내부링크]

Firewall Firewall 상태 확인하기 현재 firewall이 구동되고 있는지 죽어있는지 먼저 확인 합니다. firewall-cmd --state 현재 실행 중이면 running, 실행 중이 아니면 not running을 출력합니다. 시스템(CentOS) firewall 설치 yum install firewalld 매번 서버 부팅/재부팅 시 자동으로 firewall 데몬(firewalld)이 실행되게 합니다. systemctl enable firewalld systemctl start firewalld firewall을 설치하고 실행하면 기본적으로 모든 들어오고 나가는 것에 대해 막습니다. 그래서 설치 후에 내가 원하는 서비스나 port는 통과될 수 있게 열어줘야 합니다. 물론 모두 개방해놓고 원하는 것만 막을 수도 있긴한데 그것은 firewall의 취지와 역행하는 것이라 추천하지 않습니다. 서비스로 방화벽 해제 하기 일단 방화벽이 다 막고 있다는 가정하에 원하는 서비스에 대

logrotate [내부링크]

logrotate logrotate란? 리눅스 기본 시스템 로그 파일들의 설정으로, rotatelogs, cronlog와는 달리 자동적으로 오래된 파일을 삭제해주므로 더욱 편리하게 사용할 수 있다 실행순서: Crontab -> Cron.daily -> Logrotate -> Logrotate.conf ->Logrotate.d /var/log 폴더를 보면 로그가 나눠 저장돼있는걸 볼 수 있는데 이런 로그파일들은 logrotate를 통해 기본적으로 설정이 되어있으며 아래와 같다 vi /etc/logrotate.conf # see “man logrotate” for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 5 # create new (empty) log files after rotating old ones create # uncomment this if you want your log

history & 시간출력 [내부링크]

history 1. history -c // 삭제 cat /dev/null > /root/.bash_history 2. history -w [파일명.txt] // history 내용 파일로 저장 또는 history > /usr/local/src/[파일명.txt] 3. history n // 숫자만큼 마지막부터 출력한다 4. history | grep test // test 단어 들어갔던 명령어만 출력 5. history 내용 기록된 파일은 ~/.bash_history history 시간 출력 vi /etc/profile ================================================================================= export HISTTIMEFORMAT="%F%T" ================================================================================= source /etc/p

XWindow설치 [내부링크]

1. Window란 ? – 리눅스를 비롯해 대부분의 유닉스 에 채용 되어 있는 혁신적이면서 네트워크 투명성을 보장하는 그래픽 환경(Graphic User Interface : GUI )기반의 시스템 소프트웨어입니다. X Window 특징 – GUI환경으로 linux를 처음 접하는 사용자에게도 쉽게 사용할 수 있는 편리성을 제공합니다. – 사용자가 원하는 모양의 인터페이스를 만들 수 있습니다. – 네트워크의 투명성으로 다른 시스템에서 동작 중인 프로그램을 자신의 시스템을 통해서 볼 수 있습니다. – 클라이언트/서버 구조로 장치의 독립성을 지닐 수 있습니다. X Window 설치 – 설치 가능 패키지 확인 yum grouplist는 설치된 패키지와 설치할 수 있는 패키지를 확인할 수 있는 명령어 입니다. 아래와 같이 X Window System패키지를 설치 할 수 있는 걸 확인할 수 있습니다. cat /etc/redhat-release yum grouplist | more GNOME 환

VNC server [내부링크]

VNC server란 무엇인가? 원격 접속으로 PC를 관리한다! 하지만 SSH와는 다르게 GUI로 원격접속해서 관리하는것이기 때문에 터미널접속과는다르게 VNC가 더 좋을 수도 있습니다. yum install -y tigervnc-server rpm -qa | grep vnc systemctl restart vncserver 실패가 뜸 cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service ========================================================================= vi /etc/systemd/system/vncserver@:1.service # <USER> 부분을 접속할 유저명으로 수정 # 여기서는 1번서비스를 root 로 변경 # Clean any existing files in /tmp/.X11-unix environment Exec

특정 디렉토리 빼고 복사하기 [내부링크]

특정디렉토리 빼고 복사하기 tar cpf - public_html --exclude=data | tar xfp - -C /home2/smp/ public_html 디렉터리 안에 data라는 디렉터리 제외하고 /home2/smp/에 복사하기

웹 사이트가 느릴 경우 [내부링크]

============================================================== 1. /var/log/messages , dmesg 확인 ============================================================== 2. 웹사이트 접속자수 확인 netstat -nap | grep :80 | grep ESTABLISHED | wc -l( 웹 동시 접속자 수) ============================================================== 3. top 명령어로 어디서 부하가 심한지 확인 ex) mysql에서 부하가 심하다 1) 디스크 속도 체크 (모든 데몬들을 종료했을경우) hdparm -t /dev/sda SSD는 180M 이상 나와야 한다 2) 슬로우 쿼리 설정해서 슬로우 쿼리 확인 vi /etc/my.cnf log-slow-queries = 슬로우 쿼리 위치 slow_query_log

cpu 갯수 확인하기 [내부링크]

1. CPU 코어 전체 개수 grep -c processor /proc/cpuinfo ll -d /sys/devices/system/cpu/cpu? | wc -l Bash [root@zetawiki ~]# grep -c processor /proc/cpuinfo 48 console → 가상 CPU 코어 수는 48. 따라서 물리적으로는 24 코어.[2] 2. 물리 CPU 수 명령어 grep ^processor /proc/cpuinfo | wc -l Bash 실행예시 [root@zetawiki1 ~]# grep ^processor /proc/cpuinfo | wc -l 4 console [root@zetawiki2 ~]# dmidecode -t processor | grep 'Socket Designation' Socket Designation: CPU 0 Socket Designation: CPU 1 console 3. CPU당 물리 코어 수 명령어 grep 'cpu cores' /p

scp 사용법 [내부링크]

scp 사용법 1. 사용방법 1) 원격 서버 → 로컬 서버로 파일 전송 # scp [옵션] [계정명]@[원격지IP주소]:[원본 경로 및 파일] [전송받을 위치] 예제1) IP 111.222.333.444 서버의 abc라는 계정으로 /home/abc/index.html 파일을 로컬서버 /home/me/ 디렉토리에 전송 받기 # scp [email protected]:/home/abc/index.html /home/me/ 2) 로컬 서버 → 원격 서버로 파일 전송 # scp [옵션] [원본 경로 및 파일] [계정명]@[원격지IP주소]:[전송할 경로] 예제2) 로컬서버 /home/me/wow.html 파일을 IP 111.222.333.444 서버의 /home/abc/ 디렉토리에 전송 하기 # scp /home/me/wow.html [email protected]:/home/abc/ 3) ssh포트를 기본 22번으로 사용하고 있지 않는 서버로의 전송 예제3) 2222번인 SSH포트를

보안취약점, Apache 디렉토리 리스팅 [내부링크]

Apache 디렉토리 리스팅 http://skynarciss.tistory.com/23 [보안 해킹] 홈페이지 보안취약점 - 디렉토리 노출 취약점 [보안 해킹] 홈페이지 보안취약점 - 디렉토리 노출 취약점 취약점 설명 및 사례 ⑴ 취약점 설명 - 서버내의 모든 디렉토리 혹은 중요한 정보가 포함된 디렉토리에 대해 인덱싱이 가능하게 설정되어 중요파일 정보가 노출될 수 있는 취약점 ⑵ 사례 ① OO기관의 일부 페이지에서 디렉토리 나열 취약점이 존재하여 내부구조를 확인할 수 있음 ② OO대학은 일부 페이지에서 디렉토리 나열 취약점이 존재하여 웹서버 내 파일 목록 열람 가능 점검방법 ⑴ 직접 점검방법 ① 점검 대상 웹 사이트의 하위 디렉토리 정보를 사전에 모두 확인 ② 웹 루트... skynarciss.tistory.com

보안취약점 IIS 디렉토리 리스팅 [내부링크]

http://skynarciss.tistory.com/192 [윈도우 보안] 서비스 관리 - IIS 디렉토리 리스팅 제거 [윈도우 보안] 서비스 관리 - IIS 디렉토리 리스팅 제거 대상 OS : Windows NT, 2000, 2003, 2008 취약점 개요 - 디렉토리 검색은 디렉토리에 대한 요청 시 기본 페이지가 호출되어 사용자에게 전송 하지만, 기본 페이지가 존재하지 않는 경우 디렉토리 내에 존재하는 모든 파일의 목록을 보여줌. - 따라서 디렉토리 검색이 허용될 경우 외부에서 디렉토리 내의 모든 파일에 대한 접근이 가능하므로 중요한 파일들이 노출될 수 있음. 보안대책 - 양호 : "디렉토리 검색"이 체크되어 있지 않은 경우 - 취약 ... skynarciss.tistory.com

실시간 확인 명령어(Watch) [내부링크]

watch 명령은 원하는 명령어의 결과를 원하는 시간(초) 주기로 리프레시 하여 결과를 보여주는 명령어 입니다. 시스템의 자원 사용량을 모니터링 하거나, 특정 명령어를 반복적으로 입력해서 결과를 확인해야 할 때, 유용하게 사용할 수 있는 명령어 입니다. watch --help Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] [--no-title] [--version] <command> -d, --differences[=cumulative] highlight changes between updates (cumulative means highlighting is cumulative) -h, --help print a summary of the options -n, --interval=<seconds> seconds to wait between updates -v, --version print the

vi 에서 단어 한번에 바꾸기(치환) [내부링크]

문서 전체에서 변경 :%s/바꾸기 전 단어/바꾸고난 후 단어/g 문서 1번째줄부터 10번째줄까지에서 변경 :1,10s/변경시킬문자/변경될문자/g ex) :2,25s/10/100/g

특정 서버 cold down시 조치사항 [내부링크]

* 작업프로세스 * AMD BMv : bios 확인 → grub 수정 → 하드웨어 교체 Intel BMv : grub 수정 → 하드웨어 교체 < bios 수정> "Gloval C-state Control" "AMD Cool’nQuiet " → disabled 처리 < grub 수정> 1. 파일 백업 # cp -arp /etc/default/grub /etc/default/grub_ori # cp -arp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_ori 2. grub 파일 수정 # vi /etc/default/grub → GRUB_CMDLINE_LINUX 추가 1) INTEL BMv >> 수정 전 GRUB_CMDLINE_LINUX="crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko net.ifnames=0 biosdevname=0 blacklist=igb igb.modeset=0"

OOPS Firewall [내부링크]

https://oops.org/?&t=lecture&sb=firewall&n=3 BBuWoo's [Like Unix] World OOPS Firewall v7 5. OOPS Firewall 필터링 설정 - filter.conf filter.conf 는 OOPS Firewall 이 설치되어 있는 서버의 Inboud/Outbound 필터링을 하기 위 한 설정 파일이다. filter.conf 는 아래와 같이 크게 전체적으로 허가를 하는 섹션과 TCP, UDP, ICMP 의 형태 로 Daemon service 들의 패킷을 제어하는 형태로 설정을 한다. 보통 이글을 보는 사람들의 서버에서 이루어지는 서비스는 거의 TCP일 것이다. UDP service 는 드문것... oops.org

Zabbix Server, Client 설치 (모니터링) [내부링크]

zabbix server, client 설치 ===================================================== 소스설치 환경 및 선행 설치 CentOS7 Apache 2.4.41 source 설치 mysql 5.7.14 source 설치 php-7.2 이상 버전필수 7.3.9 source 설치 ===================================================== Zabbix 계정 및 그룹생성 ===================================================== CentOS groupadd --system zabbix useradd --system -g zabbix -d /usr/local/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix mkdir -m u=rwx,g=rwx,o= -p /usr/local/zabbix/server chown -

Logrotate 로그 관리하기 - 실전 [내부링크]

vi apache_accesslog ================================================================================= /usr/local/apache/logs/access_log { daily rotate 5 maxage 4 missingok size +500M ifempty create 0644 root root postrotate /bin/kill -HUP cat /usr/local/apache/logs/httpd.pid 2>/dev/null 2> /dev/null || true endscript } ================================================================================= chmod 644 apache_accesslog ======================================================================

장애났을때 서버 확인하는 명령어 [내부링크]

1.uptime [root@JH ~]# uptime 11:06:52 up 0 min, 1 user, load average: 0.06, 0.01, 0.01 uptime은 현재 대기중인 프로세스가 얼마나 있는지를 나타내는 load average값을 확인하는 가장 쉬운 방법이다. 리눅스 시스템에서 이 값은 대기 중인 프로세스뿐만 아니라 disk I/O와 같은 I/O작업으로 block된 프로세스까지 포함되어 있다. 이를 통해서 얼마나 많은 리소스가 사용되고 있는지 확인할수 있지만, 정확하게 이해할 수는 없다. 위에 있는 3개의 숫자는 각각 1분, 5분, 15분에 load average 값이다. 이를 통해서 시간의 변화를 알 수 있는데, 예를들어서 장애가 발생했다는 소식을 듣고 해당 instance에 로그인 했을때 1분 동안의 값이 15분 값에 비해서 작다면 이는 장애가 발생하고선 내가 너무 뒤늦게 로그인했음을 알 수 있다. 위 예제에서는 1분 값이 약 30이고 15분 값이 19정도 되는것

백업 스크립트(실전) [내부링크]

#!/bin/bash rdate -s time.bora.net ####Time Format 필수지정 Nowtime=date Today=date +%Y-%m-%d ####Backup_dirtory 경로지정 Backupdir="/backup" DBbackupdir="/backup/mysql" echo "############################################################" >> /var/log/crontab_backup.log echo "#####Backup Script Start $Nowtime #####" >> /var/log/crontab_backup.log echo " " >> /var/log/crontab_backup.log ##############################MySQL DB이름별 백업################################# ####MySQL Server Backup DB변수 지정 mysqlshow="

2TB이상 GPT parted 마운트 및 포맷 [내부링크]

parted /dev/sdb (parted) mklabel gpt (parted) mkpart primary 0 100% 또는 mkpart primary 0 2TB (parted) print Model: ATA ST2000DM008-2FR1 (scsi) Disk /dev/sdb: 2000GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 2000GB 2000GB primary (parted) quit mkfs.ext4 /dev/sdb1

리눅스 모듈 관리(lsmod, modprobe, modinfo) [내부링크]

lsmod lsmod 란 ? 리눅스 커널에 있는 모듈(module)들의 정보를 보여준다. 리눅스 커널 모듈은 하드웨어의 hot-swappable 부분과 같은 커널에 로드될 수 있는 코드 부분들이다. lsmod은 시스템을 리부팅 할 필요없이 활성화될 수 있고 커널에 삽입될 수 있다. lsmod 는 옵션 없이 매우 간단한 프로그램이다. lsmod은 현재의 모든 리눅스 커널 모듈의 상태에 대한 정보를 포함하는 /proc/moduls 파일의 내용을 포맷한다. lsmod = cat /proc/modules 현재 시스템에 설치되어 있는 모듈들의 목록을 볼 수 있다. cat /proc/modules와는 비슷하지만 lsmod가 더 깔끔한 형식으로 보여준다. 3가지 형식으로 분류된다. Module , Size, Used by 1. Module : 모듈의 이름을 보여준다, 이것은 모듈 파일의 이름이다. (.o 또는 .ko) 와 같은 확장자는 뺀 정보이다. insmod 명령어로 모듈을 삽입할 때 명시하

iptables 총정리 [내부링크]

iptables는 시스템 관리자가 리눅스 커널 방화벽이 제공하는 테이블들과 사용자가 저장하는 테이블, 체인, 규칙들을 구성할 수 있게 해주는 사용자 공간 응용 프로그램입니다. iptables는 패킷을 제어할 수도 있습니다. 일단 패킷의 원본이 들어오면 초기에 순회할 테이블의 체인을 고릅니다. 테이블이 모든 체인들을 갖지는 않지만, 5개의 미리 정의된 체인들이 존재합나다. 테이블은 패킷 필터링이나 네트워크 주소 변환(NAT, Network Address Translation)과 같은 기능의 광범위한 범주를 기술을 가지고 있는 iptables입니다. 또한 iptables는 체인으로 정책들을 설정 할 수 있습니다. iptables 명령어 구조 # iptables [-t 테이블 이름] <command> [Chain 이름] [parameters 옵션][-m 확장 모듈] [모듈 옵션] [target] [target 옵션] 기본명령 기능 체인 출발지ip 목적지ip 프로토콜 포트 매칭 동작 ipt

firewalld 총정리 [내부링크]

firewalld 이란 firewalld는 CentOS7부터 이전의 많이 불편했던 iptables를 대체해 새롭게 선보인 패킷 필터링 방화벽 프로그램이라고 합니다. firewalld 명령어는 해당 데몬이 실행된 상태여야 명령어들을 실행하여 적용할 수 있으며, firewalld 데몬은 이러한 명령어들로부터 설정 내용을 전달받아 명령어 iptables로 전달합니다. (firewalld 데몬은 systemctl start firewalld 를 통해 서비스를 시작할 수 있으며, 재부팅 할 때마다 계속 서비스를 실행하기 위해서는 systemctl enable firewalld 를 해주면 됩니다.) Netfilter 이러한 firewall 관련 명령어가 firewalld 데몬을 통해 iptables로 전달되고 iptables로 들어오면 리눅스 커널에서 Netfilter 모듈이 활성화되어야 제대로 동작합니다. (default로 활성화되어 있습니다.) firewalld 명령어 사용법 firewal

vi 단체 주석처리 [내부링크]

명령어 모드에서 v 를 누르면 visual 모드로 전환 hjkl을 이용하여 이동하며 블럭 설정(화살표키로 하면 안됨. VIM에서 커서의 이동키는 hjkl !!) 블럭이 설정되면 : 를 누르면 '<,'> 이 나타나고 norm i<원하는문자> 를 입력 즉, :norm i# 이라고 하면 # 모양의 주석이 들어감 반대로 주석 제거할때는 v로 블럭을 설정하고 :norm 1x 하면 앞쪽 1개의 문자가 지워짐 2개 하고 싶으면 2x x 가 지운다는것 x앞의 숫자가 문자의 갯수.

서버 이전 Tip [내부링크]

사이트이전 0. APM 버전 확인 APM 버전 확인 및 모듈 확인 1. 작업시작 전 백업본 있는지 확인 2. 구서버 OS버전, 파티션, 서버의 용도(web, db, dns, mail)확인 3. apache 특이설정 확인 ex) ssl 사용유무 4. /etc/passwd, /etc/group, /etc/shadow, /etc/gshadow 파일 가져오기 미리 새 서버 4개 파일 백업 한 뒤 진행 ex) rsync -avzPog -e ssh 서버IP:/가져오는 파일 경로(구서버) /받을 파일 경로(신서버) 5. apm 설정 맞춰서 설치 httpd.conf, httpd-vhosts.conf, my.cnf, php.ini 파일 동기화 6. 웹소스를 가져온다 해당 소스 경로 확인 후 가져온다 보통은 home에 있으니 home/* 파일을 가져온다 ex) rsync -avzPog -e ssh 서버IP:/home/* /home/ 7. DB데이터 가져오기 ex) mysqldump -u root -p

실시간 트래픽 확인 [내부링크]

yum install -y vnstat vnstat -l -i [이더넷장치명]

OS 버전 확인 [내부링크]

OS 버전확인 1. 리눅스 # cat /etc/os-release # cat /etc/redhat-release # cat /etc/issue # uname -a # cat /etc/lsb-release # cat /etc/*-release 2. 윈도우 # systeminfo 실행 -> winver 실행 -> msinfo32 -> 시스템 요약

supermicro,asrock 보드 IKVM 계정 생성 및 비밀번호 변경 [내부링크]

해당 메인보드사에서 ipmicfg 다운로드후 usb에 넣은다음 usb로 부팅 cd ipmicfg ipmicfg -user list ipmicfg -user add 3 유저아이디 Password 2 ipmicfg -user level 3 4 IKVM 비밀번호 변경 ipmicfg -user list 보고 ipmicfg -user setpwd 3 비밀번호입력 위에 안될경우 userid 2번이 Admin 입니다. ipmicfg -user setpwd 2 비밀번호입력

#!/bin/bash 스크립트에서 자주사용하는 명령어 echo, sed 및 특수문자 [내부링크]

보통 리눅스에서 스크립트를 짤때, 설치 스크립트, 백업 스크립트 등 여러 스크립트들이 있습니다. 보통 apache 설치 스크립트, MySQL or MariaDB 설치 스크립트, php 설치 스크립트들을 주로 사용합니다. 스크립트에서 자주 사용하는 명령어들은 echo, sed입니다. 함수부분 if, elif, fi, else, case 등 여러 함수도 있습니다. 그중 echo에 대해 설명드리겠습니다. echo echo로 새로운 파일, 또는 파일에 추가적으로 입력값들을 넣는 경우가 있습니다. ex1) echo "systemctl restart mysqld" > /home/test/testscirpt.sh 해당 명령어는 MySQL를 재시작하는 명령어를 /home/test/testscirpt.sh에 기존의 있는 내용들을 다 삭제하고 해당 명령어를 넣겠다는 의미 입니다. ex2) echo "systemctl restart mysqld" >> /home/test/testscirpt.sh 해당

apache 소스설치시 restart 와 graceful 의 차이점(restart, reload 차이점) [내부링크]

보통 apache 소스설치를 하게된다면 실행파일 스크립트를 /etc/init.d/apachectl 에 만들게 된다. /etc/init.d/apachectl -? 이라는 명령어를 입력한다면 해당 명령어 옵션들을 알 수 있다. 여기서 -k start는 httpd 데몬을 시작한다. 그러나 이미 실행중이라면 오류를 내기 때문에 ps -ef | grep httpd 를 확인해보자. 또한 설정파일을 읽어서 실행하기 때문에 설정파일 오류가 있다면 실행되지 않는다. stop 은 httpd 데몬을 중료한다. restart 는 apache 데몬을 재시작하지만 데몬이 실행중이 아니라면 시작한다. 그러나 start 처럼 설정파일을 읽고선 실행하기 때문에 오류가 있을시 종료만되고 시작되지 않는다. graceful apache 데몬을 일반적인 재시작과 달리 현재 열려있는 연결을 끊지않는다. 또, 이전 로그파일을 즉시 닫지 않는다. 즉, 로그순환 스크립트에서 이 명령을 사용한다면, 이전 로그파일을 처리하기전에

CentOS 7 Apache 2.2 소스 컴파일 설치 [내부링크]

##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_Setup yum install -y vim wget epel-release cd $SOURCE_DIR yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum update -y ##디폴트환경변수 echo " " >> /etc/profile echo "####default PATH#####" >> /etc/profile echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:" >> /etc/profile echo "#####################" >> /etc/profile ##소스설치를 위한 패키지 환경 설치 yum install -y libdb-devel enchant-d

CentOS 7 Apache 2.4 소스 컴파일 설치 [내부링크]

##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_Setup yum install -y vim wget epel-release cd $SOURCE_DIR yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum update -y ##디폴트환경변수 echo " " >> /etc/profile echo "####default PATH#####" >> /etc/profile echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:" >> /etc/profile echo "#####################" >> /etc/profile ##소스설치를 위한 패키지 환경 설치 yum install -y libdb-devel enchant-d

Apache 컴파일 옵션 [내부링크]

구성옵션 -C --config-cache --cache-file=config.cache와 같다. --cache-file=FILE 검사 결과를 FILE 파일에 캐싱한다. 기본값은 검사 결과를 기록하지 않는다. -h --help [short|recursive] 도움말을 출력하고 종료한다. short 아규먼트는 이 패키지 특유의 옵션만을 출력한다. recursive 아규먼트는 포함된 모든 패키지에 대한 짧은 도움말을 보여준다. -n --no-create configure 스크립트를 정상적으로 실행하지만, 출력파일을 만들지 않는다. 이 옵션은 컴파일을 위한 makefile을 만들기 이전에 검사 결과를 확인해볼때 유용하다. -q --quiet 실행중에 checking ... 문구를 출력하지 않는다. --srcdir=DIR DIR 디렉토리를 소스파일 디렉토리로 지정한다. 기본값은 configure가 있는 디렉토리 혹은 상위디렉토리 ..이다. --silent --quiet와 같다. -V --ve

Apache MPM [내부링크]

0. 서버 커널 최적화 튜닝 – 아래 작성한 값은 알맞은 값이 아니며, 웹서버를 실행한 상태에서 지속적인 모니터링을 통해 알맞은 값을 찾아야 합니다. sysctl -a | grep file-max fs.file-max = 3257003 echo "fs.file-max=4000000" | sudo tee -a /etc/sysctl.conf Open file Limit 수정하기 리눅스는 프로세스별로 시스템의 자원을 얼마나 사용하게 할 것인지를 제한합니다. 접속 요청량에 비해 웹서버가 사용할 수 있는 자원(파일, 프로세스 수 등)이 적으면 서비스가 정상적으로 동작하지 않습니다. 이 경우 사전에 제한 값을 높이는 작업이 필요합니다. 기존 open files limit과 max user processes를 확인합니다. ulimit -a | grep open open files (-n) 1024 ulimit -a | grep processes max user processes (-u) 3079

mod_rewrite 실전 [내부링크]

Rewrite 모듈이란? mod_rewrite 는 apache 의 모듈 중 하나로써 서버로 요청하는 도메인을 포함한 url 을 정해진 rule 에 따라 지정된 url 표시, 파일 혹은 다른 페이지를 보여줄 수 있는 모듈입니다. Rewrite 모듈을 이용하면 복잡한 url 을 짧고 간결하게 표현할 수 있으며, 이를 통해 보안성도 보장받 을 수 있습니다. 강력한 기능성을 보유한 반면에 사용법이 어려워 쉽게 이용하지 못하는 점도 있습니 다. 본 메뉴얼에선 rewrite 모듈 설치 및 간단한 사용법 몇 가지를 작성해 놓았습니다. mod_rewrite Rule RewriteEngine : mod_rewrite를 사용할지 여부(On/Off) RewriteBase : 기본 경로 설정 RewriteCond : 문자열의 패턴 조건 비교 RewriteRule : 실제로 치환되는 조건 플래그 종류: forbidden|F - 403에러로 redirect ex) RewriteRule ^/test /home

htpasswd 설정으로 웹페이지 암호걸기 [내부링크]

htpasswd 사용법 htpasswd 란? 특정 페이지를 제한하고 싶을때 홈페이지 특정 디렉토리에 패스워드 장치를 걸어 두고 특정 사용자에게 ID와 비밀번호를 발급하여 해당 디렉토리 접근시 ID와 비밀번호를 제시하여 특정 사용자만 통과할 수 있도록 하는 기능을 말합니다. .htaccess 파일 만들기 .htaccess 파일을 이용하여 가능합니다. 먼저 접근을 제어하고 싶은 디렉토리 내에 .htaccess 파일을 아래와 같은 내용으로 생성합니다. htaccess 파일 만들기 ex) test라는 디렉토리에 특정 사용자만 접근가능하도록 하고 admin이라는 계정을 만들고 happy라는 계정을 추가합니다. /.htaccess ------------------------------------------------------------------ AuthName '사용자인증연습' AuthType Basic AuthUserFile /home/username/test/.htpasswd Aut

무료인증서 (letsencrypt, buypass) [내부링크]

1. 무료인증서 사용할 수 있는 OS서버 조건, 지원기간되는 OS (CentOS 7, 8 Ubuntu 18,20,22) / CentOS 6, Ubuntu 16 지원만료 2. 해외망차단이 되어 있으면 안됨. Let's encrypt 인증서는 90일 인증기간과 61일부터 90일까지 갱신할 수 있습니다. 그렇기 때문에 31일이 있는 달들이 연속으로 있거나 문제가 생겨 일수가 부족하여 갱신이 잘 안되는 경우가 있습니다. crontab -e 나 /etc/crontab 에 등록했을때 발급 및 갱신할때 15일 간격기준으로 설정해주세요. Redhat 계열 apachectl -M | grep ssl 했을때 ssl 모듈이 있어야함 (환경변수를 설정했다면 소스도 저렇게 입력하면 됨) Debian 계열 apache2ctl -M | grep ssl Redhat은 소스설치할때 컴파일옵션에서 --enable-ssl 옵션이 들어가서 설치가 되어야함. 또한 httpd.conf에 Load 어쩌고를 주석처리 풀고 s

Apache 동시 접속자 수 확인 [내부링크]

netstat -l 또는 netstat -nap | grep LISTEN ( LISTEN 되는 모든 포트 ) netstat -nap | grep ESTABLISHED | wc -l ( 모든 서비스 동시 접속자 수 ) netstat -nap | grep -E ":80|:443" | grep ESTABLISHED | wc -l ( 웹 동시 접속자 수 ) netstat -n | grep -F :80| egrep '(ESTAB|SYN)'|awk '{print $5}'|sed 's/:[0-9]*//'|sort -u|wc -l (웹서버 커넥션수 체크)

libphp5.so: undefined symbol: unixd_config 오류 발생 시 처리방법 [내부링크]

libphp5.so: undefined symbol: unixd_config 오류 발생 시 처리방법 PHP의 버전을 변경하여 재컴파일 후 configtest 하였을 때, 다음과 같이 에러가 발생하는 경우가 있습니다. [root@mooon]# /usr/local/apache/bin/apachectl configtest httpd: Syntax error on line 146 of /usr/local/apache/conf/httpd.conf: Cannot load modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: undefined symbol: unixd_config 관련 자료를 조회해 보니, Apache 2.4 버전에서 PHP 5.2.x 버전과의 충돌 때문에 이슈가 발생할 수 있다고 합니다. 원인은 apache 버전이 2.4로 업데이트 되면서 일부 심볼의 명칭이 바뀌었습니다. unixd_config > ap_u

Apache 마이그레이션 [내부링크]

1. 마이그레이션 1-1. 접근 제어 선언 방식 변경 2.2에서 Order, Allow , Deny 등의 지시자로 하던 접근 제어 설정은 Require 를 이용한 방식으로 변경되어야한다. 1) 모든 요청 거부 # 2.2 설정 Order deny,allow Deny from all # 2.4 설정 Require all denied 2) 모든 요청 허용 # 2.2 설정 Order allow,deny Allow from all # 2.4 설정 Require all granted 3) example.org 허용 나머지 거부 # 2.2 설정 Order Deny,Allow Deny from all Allow from example.org # 2.4 설정 Require all denied Require host example.org 4) 127.0.0.1 허용 나머지 거부 # 2.2 설정 Order Deny,Allow Deny from all Allow from 127.0.0.1 # 2.4 설정

php.ini 설정 [내부링크]

1. short_open_tag = On Tells PHP whether the short form (<? ?>) of PHP's open tag should be allowed Off 일땐 <? 로 시작되는 코드가 작동하지 않으므로 페이지 오류가 발생합니다. 2. memory_limit = 256M 스크립트 마다의 최대 메모리 소비량 크기를 memory_limit > post_max_size > upload_max_filesize 순으로 설정 3. error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT Common Values: http://php.net/error-reporting 4. display_errors = On 옵션을 off으로 설정하면 php 스크립트 error가 발생하여도 웹상에서는 보이지 않습니다. 5. post_max_size = 100M PHP 가 받아들이는 일을 할 수 있는 POST 데이터의 최대 사이즈 6. upload

phpmyadmin [내부링크]

APM이 소스설치 경우 [root@JH-Server ~]# php -v PHP 7.2.17 (cli) (built: Mar 25 2021 02:38:15) ( ZTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies [root@JH-Server ~]# mysql -V /usr/local/mysql/bin/mysql Ver 15.1 Distrib 10.5.8-MariaDB, for Linux (x86_64) using readline 5.1 # ll /usr/local/ [root@JH-Server ~]# ll /usr/local total 12 drwxr-xr-x 14 root root 152 Mar 24 23:54 apache drwxr-xr-x 6 root root 54 Mar 24 23:52 apr drwx--x--x 15 mysql mysql 4

유료인증서를 위한 key, csr 생성 [내부링크]

Apache 환경 확인 인증서 설치, 설정에 앞서 Apache의 환경을 파악한 후 Apache의 환경에 맞는 설정을 해주어야 합니다.우선 제일 기본적으로 Apache의 버전을 확인합니다. 버전을 확인하는 이유는 1.3.X버전과 2.X버전의 설치 방법이 다르기 때문입니다. 또한 버전에 맞는 Openssl을 설치하기 위함입니다. * Apache 1.3.X 버전에서는 Openssl 과 mod_ssl 을 직접 설치해줘야 하나 2.X 버전부터는 Apache에 mod_ssl 의 기능이 포함되어 있기 때문에 Apache 설치시 configure 옵션(enable-ssl)에 추가하면 사용 할 수 있습니다. 1.3.X 버전의 경우는 각 버전에 맞는 mod_ssl 버전을 설치해 주어야 합니다. - Apache 버전 확인하기 /usr/local/apache-2.4/bin/apachectl -v or /etc/init.d/apachectl -v openssl이 설치 yum -y install openss

Apache cronolog [내부링크]

Apache cronolog cronolog란? 아파치 로그를 날짜별로 나눠줄 수 있는 프로그램으로 여러 로그를 나눠 저장할 수 있다 소스 설치 cd /usr/local/src/ wget https://fossies.org/linux/www/old/cronolog-1.6.2.tar.gz tar xvfz cronolog-1.6.2.tar.gz cd cronolog-1.6.2.tar ./configure --prefix=/usr/local > 설치 위치는 달리 지정할 수 있다. 하지만 편의상 /usr/local로 지정 make && make install Cronolog 설정 아파치 설정파일을 열어서 다음부분을 추가해줍니다. vi /usr/local/apache/conf/httpd.conf ErrorLog “|/usr/local/sbin/cronolog logs/smileserv.com-error-%Y%m%d.log” TransferLog “|/usr/local/sbin/cronolog

rewrite 실전 2 [내부링크]

게다가 아파치의 한계로 인해.. 무한히 가상 서버를 등록할 수도 없다. (정확한 수치는 모르나... 100여개 이내로 보인다.) 아파치에는 rewrite라는 아주 훌륭한 기능이 있다. "mod_rewrite를 사용할 수 없다면 당신이 아파치에서 사용할 수 있는 것은 없다." 라는 말이 있을 정도다. 이글은 rewrite모듈을 이용하여 보다 편리하게 가상도메인을 관리하고자 하는 이들을 위한 작은 팁을 제공한다. 몇가지 전제 조건: 아파치 버전 : > 1.3.20 서버IP : 192.168.0.1 서버기본 도큐먼트루트* : /var/www/html/ (Redhat 기본) 가상도메인들의 루트* : /var/www/vhost/도메인네임 ex) /var/www/vhost/wiki.domain.com/ /var/www/vhost/domain.com/ 등록되지 않은 가상도메인들은 모두 서버기본 도큐먼트루트가 시작된다. (* 상기의 내용은 충분히 변경 가능하다.) 운영방법 가상도메인의 등록이 필요

htpasswd (웹페이지에 암호 걸기) 실전 [내부링크]

사용법 vi /usr/local/apache/conf/httpd.conf <Directory /> Options FollowSymLinks AllowOverride AuthConfig Require all granted </Directory> AuthConfig 이부분이 되게 중요하다. 이유는 하드웨어서버한대 apache에 root도메인이 있을것이다. /usr/local/apache/htdocs 여기일꺼다. 해당 디렉토리에 연결된 루트도메인이있을것이다. ex) www.abcdefgh.com or abcdefgh.com 일꺼다 하지만 하드웨어 서버한대의 apache에 여러도메인 즉 vhost를 쓸수 있다. ex) haha.abcdefgh.com (/home/hahaabcdefgh/html) hoho.abcdefgh.com (/home/hohoabcdefgh/html) haha.qwerasdf.com (/home/hahaqwerasdf/html) hoho.qwerasdf.com (/ho

http -> https 리다이렉트 [내부링크]

vhost 마다 설정 <VirtualHost *:80> ...... RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </VirtualHost>

Apache의 httpd.conf 지시자 공부 [내부링크]

디렉토리별 사용자 권한 부여 .htaccess 파일을 사용하도록 설정하는 부분이다. 설정파일에 들어가서 디렉토리 설정 아래에 AuthConfig 옵션을 추가한다. <Directory "/해당 디렉토리별 경로"> AllowOverride AuthConfig </Dicrectory> AuthName "login" AuthType Basic AuthUserFile /해당 디렉토리별 경로/.htpasswd AuthGroupFile /dev/null require valid-user <Limit GET POST> require valid-user </Limit> ========================================================================= 디렉토리 리스트(Index of …) 숨기기 방법 1. 각 디렉토리마다 index 파일을 넣기 방법 2. Apache 설정을 바꾸기 Global 설정 Local(Virtual) 설정 수정 전 (디렉토리

buypass_SSL인증서 [내부링크]

buypass_SSL인증서 https://www.buypass.com/ssl/resources/go-ssl-technical-specification https://rastalion.me/buypass-%EB%AC%B4%EB%A3%8C-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%B0%9C%EA%B8%89-180%EC%9D%BC/ centos7기준 =============================================================================== 웹홈디렉토리 및 파일만들기 mkdir -p /home/apache/public_html chmod -R 755 /home/apache/ =============================================================================== vi /home/apache/public_html/index.html ==================

apache mod_cband 모듈 추가 설치 [내부링크]

mod_cband란? Apache 사이트 상에서 VirtualHost의 접속량 및 트래픽 량을 체크 및 해당 VirtualHost를 통해 어떤 아이피가 접속하였는지 여부 확인 등을 진행하거나 해당 기록을 통해 사이트에 제한을 주는 용도로 사용되는 Apache의 Module입니다. Apache1에서는 mod_throttle를 사용합니다. 기능 * apache2 용 트래픽 제한 모듈 * 사용자별 대역폭 제한 * 가상호스트별 대역폭 제한 * 목적지별 대역폭 제한 * 다운로드 속도 제한 * 아이피대역별 제한 * 초당 요청수 제한 * 모니터링 또는 결과를 웹페이지에서 확인 가능 등 이정도가 있다고 볼수 있습니다. mod_cband 설치 # mkdir /usr/local/src/APM_Setup # cd /usr/local/src/APM_Setup # wget https://fossies.org/linux/www/apache_httpd_modules/old/mod-cband-0.9.7.5.tg

Apache 기본페이지 설정 및 디렉토리 리스팅 설정 [내부링크]

웹사이트로 접속할때 기본적으로 보통 index.html, index.php index.jsp 으로 웹사이트를 띄웁니다. 간혹가다 homepage.html homepage.php homepage.jsp 으로 기본파일 이름을 바꿔서 하는경우도 있습니다. 그러나 이번 글에서는 해당 기본 페이지가 없을때 파일리스트들을 출력하게 하거나 접근 불가로 설정하는 방법에 알아보겠습니다. - 기본 환경 CentOS 7 Apache Source Install Apache 설정은 Ubuntu 와 다름없는 설정입니다. 동일하다고 보면 됩니다. 일단 기본페이지 설정 부분입니다. 저의 Apache 전역설정파일 httpd.conf 입니다. # vi /usr/local/apache/conf/httpd.conf <IfModule dir_module> DirectoryIndex index.html index.php index.jsp </IfModule> 여기서 만약에 .html 파일이 아닌 .php 파일을 먼저 띄우

Apache mod_url 설정 [내부링크]

기본적으로 apache는 미국에서 만들어진 기반 웹프로그램으로 US 언어로 만들어진 프로그램입니다. 웹소스파일을 영어파일로 기본적으로 올려야하며, 만약 한글이름으로 된 파일을 올리면 추가적으로 모듈을 설치해야합니다. URL 한글 인식설정 mod_url 소스 설치 시 /usr/local/apache/bin/apachectl -l mod_so.c → 모듈이 있을 시 dso 방식. ※ SO(static object) 방식으로 설정 되어있다면 재컴파일을 진행해야 합니다. (mod_so.c 가 없다면 재컴파일) -아래 url 로 이동 후, 적합한 버전을 다운받습니다. Apache 소스 설치 시 cd /usr/local/src/APM_Setup wget https://kldp.net/modurl/release/2188-mod_url-apache2-1.25.tar.bz2 tar xvf 2188-mod_url-apache2-1.25.tar.bz2 cd mod_url-apache2/ /usr/loc

CentOS 7 TLS 1.2, 1.3 인증서 설정 [내부링크]

안녕하세요 이전글에서 tlsv1.3 기반의 APM을 설치를 진행했습니다. https://blog.naver.com/93it-serverengineer/223035077797 CentOS 7 TLSv1.3를 위한 openssl, curl 소스업그레이드 안녕하세요. 현재 모든 웹브라우저 보안정책은 TLSv1.2, TLSv1.3 만 지원이 가능합니다. 최신 브라우... blog.naver.com https://blog.naver.com/93it-serverengineer/223035077797 CentOS 7 TLSv1.3를 위한 openssl, curl 소스업그레이드 안녕하세요. 현재 모든 웹브라우저 보안정책은 TLSv1.2, TLSv1.3 만 지원이 가능합니다. 최신 브라우... blog.naver.com 이번에는 실제 tlsv1.3이 인증서에서 적용이 되었는지 확인하기 위해서 무료 인증서 letsencrypt를 이용해서 설치를 진행하겠습니다. 기존 letsencrypt는 90일 기간

CentOS 7 TLSv1.3 enable APM 설치 [내부링크]

안녕하세요. 이전 글에서 CentOS 7 에서 TLSv1.3을 설치 및 연동하기위해서 openssl, curl를 설치진행 했습니다. https://blog.naver.com/93it-serverengineer/223035077797 CentOS 7 TLSv1.3를 위한 openssl, curl 소스업그레이드 안녕하세요. 현재 모든 웹브라우저 보안정책은 TLSv1.2, TLSv1.3 만 지원이 가능합니다. 최신 브라우... blog.naver.com 이것들을 이용하여 APM또한 TLSv1.3을 연동설치 진행을 해보겠습니다. 모든 APM은 최신버전으로 설치하겠습니다. 설치할 버전들 apr-1.7.0 apr-iconv-1.2.2 apr-util-1.6.1 pcre-8.45 apache-2.4.54 mod_url-apache2-1.25 cmake-3.23.1 mariadb-10.6.8 pcre2-10.37 libgd-2.3.2 libzip-1.8.0 php-8.0.21 mcrypt-1.0.

Nginx 정리 [내부링크]

LEMP(Nginx, MySQL, PHP) Nginx 란? 트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반구조의 웹서버이며 Apache 의 C10K Problem(하나의 웹서버에 10,000 개의 클라이언트의 접속을 동시에 다룰 수 있 는 기술적인 문제)를 해결하기 위해 만든 Event-driven 구조의 HTTP, Reverser Proxy, IMAP/POP PROXY server 를 제공하는오픈소스 서버 프로그램입니다 Nginx 로 할 수 있는 기능 HTTP 프록시와 웹 서버 기능 정적 파일과 인덱스 파일 표현, 자동 인덱싱 기능. 캐싱을 통한 리버스 프록시 로드 밸런싱 고장 진단 SSL 지원 캐싱을 통한 FastCGI 지원 Name-, IP-기반 가상서버 FLV 스트리밍 MP4 스트리밍 모듈을 이용한 MP4 스트리밍 웹페이지 접근 인증 gzip 압축 10000개의 동시 접속을 처리할 수 있는 능력 URL 다시쓰기 (URL rewriting) 맞춤 로깅 서

Nginx 설치(1.22.1 stable) [내부링크]

##yum repo 추가 및 업그레이드 yum install -y vim wget epel-release yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum update -y ##default 환경변수 설정 echo " " >> /etc/profile echo "####default PATH#####" >> /etc/profile echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:" >> /etc/profile echo "#####################" >> /etc/profile ##소스설치를 위한 패키지 환경 설치 yum install -y libdb-devel enchant-devel libxslt libxslt-devel net-snmp-devel readline-devel readline aspe

nginx 설정 정리 [내부링크]

Nginx.conf 설정 # /usr/local/nginx/nginx.conf worker_processes auto; nginx, 데이터베이스, 웹 애플리케이션이 모두 동일한 서버에서 실행되는 트래픽 사이트가 더 적다면 값을 1, 더 많은 트래픽 사이트 나 nginx 전용 인스턴스가 있다면 auto 로 설정합니다. worker_connections 1024; 각 작업자 프로세스가 한 번에 처리할 수 있는 최대 연결 수를 설정합니다. 기본적으로 작업자 연결 제한은 512 이지만 많은 시스템에서 더 많은 작업을 처리할 수 있습니다. 적절한 크기 조정은 nginx 가 처리하는 트래픽 유형에 따라 가변적이므로 테스트를 통해 발견 할 수 있습니다. 시스템의 핵심 한계는 # ulimit -n 명령어를 사용하여 찾을 수 있습니다. k eepalive_timeout 60; keepalive_requests 100000; Keep Alive 를 사용하면 브라우저에서 재 연결하는 횟수를 줄일 수 있

Nginx Configure 옵션 정리 [내부링크]

권장옵션 --with-debug --prefix=PATH set installation prefix --with-http_ssl_module enable ngx_http_ssl_module --with-http_realip_module enable ngx_http_realip_module --with-http_stub_status_module enable ngx_http_stub_status_module 빌드는 configure명령을 사용하여 구성됩니다 . nginx가 연결 처리에 사용할 수있는 방법을 포함하여 시스템의 다양한 측면을 정의합니다. 이 configure명령은 다음 매개 변수를 지원합니다. --help 도움말 메시지를 인쇄합니다. --prefix=path 서버 파일을 보관할 디렉토리를 정의합니다. 이 동일한 디렉토리는에서 설정 한 모든 상대 경로 configure(라이브러리 소스에 대한 경로 제외) 및 nginx.conf구성 파일 에도 사용됩니다. 그것은으로 설정 /us

Nginx 폴더에 패스워드 설정 [내부링크]

웹서비스 경로에 인증걸기 nginx directory password auth setting //------------------ * 패스워드 추가 htpasswd -c /usr/local/nginx/html/.htpasswd admin htpasswd /usr/local/nginx/html/.htpasswd user1 //------------------------ * nginx/conf/nginx.conf 수정 location /admin { auth_basic "Admin page"; auth_basic_user_file /usr/local/nginx/html/.htpasswd; index index.php index.htm; #php파일에도 보안 적용 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_

tomcat 가상호스트 설정 [내부링크]

/usr/local/tomcat/conf/server.xml < 수정 #기본 루트설정 <Host name="localhost" appBase="/usr/local/apache/htdocs" unpackWARs="true" autoDeploy="true" > <Context path="" docBase="." reloadable="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> #버추얼호스트설정 </Host> <Host name="도메인" appBase="해당 도메인 디렉토리" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias

tomcat SSL 설정 (server.xml) [내부링크]

Tomcat 인증서를 인증하는 방법은 3가지 입니다. PEM (openssl) 인증서를 pkcs12로 변환한다음 jks로 변환해서 사용 PEM (opensll) 인증서를 그대로 사용하되, http/1.1 만 지원 tomcat native 설치 주의할 사항은 tomcat native 를 사용할때는 Protocol="TLS" 사용하지 말것 / JKS 형태에서는 사용 JKS 형태의 인증서를 사용할때는 protocol="org.apache.coyote.http11.Http11NioProtocol" 사용 PEM 형태의 인증서를 사용할때 ( native 미설치시 ) protocol="org.apache.coyote.http11.Http11NioProtocol" 사용 PEM 형태의 인증서를 사용할때 ( native 설치시 ) protocol="org.apache.coyote.http11.Http11AprProtocol" 사용 및 http/2 지원을 위해 <UpgradeProtocol classN

tomcat 단독 SSL (PEM -> PKCS12 -> JKS) [내부링크]

보통 key, pem, csr, CA_csr 인증서가 4개가 있습니다. 도메인을 test.co.kr 이라고 합시다. 각각의 파일들을 암호화 Key 파일 = test.co.kr.key 암호화안된 key 파일 = test.co.kr_nopass.key Pem 파일 = test.co.kr.pem CSR 파일 = test.co.kr.csr CA_csr 파일 = Chain_RootCA_Bundle.crt 이렇게 인증서파일이 있다고 하자 Key 파일 = test.co.kr_nopass.key Key파일을 확인해보면 -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- 이렇게 되야합니다. 만약 -----BEGIN ENCRYPTED PRIVATE KEY----- -----END ENCRYPTED PRIVATE KEY----- 이렇게 암호화가 되어 있다면, 암호화가 없는 key파일로 해야합니다. Pem 파일 = test.co.kr.pem pem파일을 확인해

톰켓 버추얼 호스팅 + server.xml 설정 [내부링크]

tomcat-virtual hosting+server.xml 설정 버추얼 호스팅이란? 예를들어 어떤 호스팅 회사가 100여개의 사이트를 운영중이라고 한다면, 해당 갯수만큼의 서버 혹은 VM(가상운영체제)이 필요할 것입니다. 물론 100여개의 사이트가 모두 엄청난 접속량을 가지고 있다면 오히려 100개이상의 서버가 필요하겠지만, 일반적으로 소수의 사이트에 트래픽이 몰리며 나머지 서버들은 기본자원(운영체제 구동을위한)이 대부분임으로 상당한 자원이 낭비될 것 입니다. 이때 해결책은 바로 버추얼 호스팅입니다. 버추얼 호스팅은 하나의 웹 서버안에 다수의 어플리케이션(여기서는 주로 사이트)을 돌려 하드웨어나 운영체제가 소모하는 기본자원의 소모량을 줄이는 방법입니다. 더 쉽게 설명하면 한대의 컴퓨터로 여러개의 가상 운영체제를 가동하면 -> 버추얼 머신 한대의 물리적 컴퓨터로 큰 자원을 소모하지 않는 여러개의 운영체제를 돌린다면 전기요금 같은 물리적 자원에서 이득을 얻는다. 한대의 컴퓨터 하나의

톰캣 로드밸런싱 Tomcat LoadBalancing [내부링크]

로드 밸런서 작업자를 구성하는 데 사용되는 일부 속성을 지정합니다: worker.list 속성 자체로 로드 밸런서를 추가하면 충분합니다. sticky_session은 SESSION ID를 가진 요청을 세션을 생성한 동일한 Tomcat 인스턴스로 다시 라우팅할지 여부를 지정합니다. Tomcat이 Tomcat의 여러 인스턴스에서 세션 데이터를 공유할 수 있는 세션 관리자를 사용하는 경우 또는 애플리케이션이 상태 비저장인 경우 sticky_session을 false로 설정할 수 있습니다. 기본적으로 sticky_session은 true로 설정됩니다. lbfactor는 더 많은 요청이 해당 작업자에게 균형을 이루게 할 것이다. 인자는 정수로 제공되어야 하며 부하는 주어진 인자에 비례하여 분포합니다. 요인이 높을수록 요청이 많아집니다. vi workers.properties ==================================================================

HaProxy (CentOS 7) [내부링크]

yum install -y haproxy vi /etc/haproxy/haproxy.cfg =============================================================================== defaults log global log 127.0.0.1 local2 mode http option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 20 timeout queue 86400 timeout connect 86400 timeout client 86400 timeout server 86400 timeout http-keep-alive 30 timeout check 20 maxconn 50000 frontend http bind *:80 acl

tomcat-native 설치 및 SSL 설정 (server.xml) [내부링크]

APR - Apache Portable Runtime의 약자로 아파치 HTTP 2.x의 핵심인 라이브러리 tomcat에서 HTTP/2 를 사용하려면 tomcat native를 이용하면 HTTP/2를 이용할 수 있다 - Apache 웹 서버의 APR 라이브러리를 Tomcat에서 사용할 수 있게 하는 라이브러리 - 톰캣 버전별 HTTP Connector BIO Connector Tomcat 7의 기본 Connector org.apache.coyote.http11.Http11Protocol Java Blocking API를 사용하여 구현(pure java) NIO Connector Tomcat 8 이후 기본 Connector Class org.apache.coyote.http11.Http11NioProtocol Java Non-blocking API를 사용하여 구현(pure java) APR Connector APR 라이브러리를 사용해 더 나은 성능의 Connector Class org.

CentOS 7 PHP 5.2.17 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 5.3.29 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 5.4.45 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 5.5.38 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 5.6.40 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 7.0.33 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 7.1.33 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 7.2.34 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 7.3.33 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_

CentOS 7 PHP 7.4.33 소스설치 [내부링크]

PHP 설치하기위해서는 앞서 Apache 가 설치되어야 합니다. Nginx는 추후에 진행하도록하겠습니다. https://blog.naver.com/93it-serverengineer/223035099780 CentOS 7 Apache 2.2 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com https://blog.naver.com/93it-serverengineer/223035100776 CentOS 7 Apache 2.4 소스 컴파일 설치 ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/A... blog.naver.com ##기본 설정 mkdir -p /usr/local/src/APM_Setup export SOURCE_DIR=/usr/local/src/APM_