웹호스팅 서비스 서버 구축. 웹호스팅 서비스 : 홈페이지를 만들수 있는 계정을 생성하여 서비스하는 것을 의미한다. 계정에는 아이디, 패스워드 또는 도메인 생성도 포함된다. 순서 1. 리눅스를 설치한다. 2. 각종 환경 설정한다. 3. 각종 라이브러리 설치한다. 4. APM 설치 ------------------------------------------------------------- 웹호스팅 서비스 할수 있는준비 끝 5. 사용자 계정생성 (Document Root를 활용할 디렉토리 생성도 포함) adduser 계정명 passwd 패스워드 cd /home/사용자chmod 710 사용자 chown 사용자계정.nobody 사용자 mkdir www (홈디렉토리 하위에 생성 예: /home/hky/www) 6. 아파치 버츄얼 호스트 설정한다. 가상호스트위치: /opt/webapps/apache2/conf/vhosts.conf 가상호스트 파일 형식 <VirtualHost*> <ServserAdmin 이메일> <Document Root /home/hky/www> <ServerName 도메인 or IP>
# Apache 설치경로 : /opt/webapps/apache2/ 환경설정 파일 : /opt/webapps/apache2/conf/httpd.conf 가상호스트 : /opt/webapps/apache2/conf/vhosts.conf 시작 astart 중지 astop # mysql 설치경로 : /opt/webapps/mysql5/ mysql데이터디렉토리 : /var/lib/mysql5/ 환경설정 파일 : /etc/my.conf 시작 : /etc/ini.d/mysqld start 중지 : /etc/ini.d/mysqld stop #php 설치경로 : /opt/webapps/php5/ 환경설정 파일 : /opt/webapps/php5/etc/php.ini
/etc/resolv.conf - 해당 호스트에서 인터넷상의 도메인을 찾아갈때 도메인주소로 질의하면 IP로 변환해주는 dns서버를 지정해주는 설정 파일이다.먼저 /etc/hosts에서 해당 도메인의 ip를 확인하고 없는 경우 resolv.conf에 지정된 dns서버에 도메인 네임을 물어본다. 리졸버란?-dns의 클라이언트이다.호스트 정보를 구하는 프로그램의 요청을 네임 서버에 대한 질의 형태로 확인하고 그 질의에 대한 응답을 프로그램에게 적절한 형태로 변경하는 역할을 한다.
200 : 정상. 클라이언트 요청 성공304 : Not Modified. client가 이미 해당 캐시에 있는 문서를 요청하고 이 문서는 캐시된 이후로 수정되지 않음. 클라이언트가 서버에서 문서의 캐시된 복사본을 사용한다.404 : file not found. 없는 페이지. 액세스하려는 파일이 이동되거나 삭제된경우 발생.500 : internal server error. 내부 서버 오류. 프로그래밍 관련 에러.잘못된 스크립트 실행등.---------------------------------------------------------------------------------------------------- 100 : Continue 101 : Switching protocols 200 : OK, 에러없이 전송 성공 201 : Created, POST 명령 실행 및 성공 202 : Accepted, 서버가 클라이언트 명령을 받음 203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부만 전송 204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음 205 : Reset content 206
<test123 웹 서버의 인증서 만들기> 1. 개인키 생성 openssl genrsa -des3 -out test123.key 2048→ 패스워드 지정함생성키 확인openssl genrsa rsa -noout -text -in test123.key 2. 개인키를 가지고 인증요청서 생성openssl req -new -key test123.key -out test123.csr생성키 확인openssl req -noout -text -in test123.csr * 인증된 CA로부터 공개 키 서명을 받는다. CSR을 인증 기관에 보냄으로써 서명을 받을 수 있다. CSR ( Certificate Signing Request ) : SSL 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서 * 인증 기관에서 인증서를 발급 해준다. ( Root ca.crt , Server ca.crt, 도메인.crt 3개의 파일을 발급해준다) <발급이 완료된 인증서로 인증서 변경 방법> 1. /opt/webapps/apache2/ssl-key/ 에 인증서 복사 ( ca.crt파일을 열어보고 판단해야한다) 2. 키에 패스워
* 확장모듈 :PHP에서 기본적으로 제공하는 함수 이외에 확장 가능한 함수를 포함하는 것 [출처]PHP 확장 모듈 추가 설치|작성자소화 php에서 사용하고 싶은 모듈 다운로드 (여기서는 ssh2 를 사용한다) [root@~]# tar xvfz ssh2-0.11.0.tgz [root@~]# cd ssh2-0.11.0 [root@~]# phpize (php가 설치된 경로의 /bin 안에서 phpize 실행, ex) /usr/local/php/bin/phpize) phpize 명령어 실행시 반응이 없으면, ① 설치가 안되었거나 ② path 설정이 잘 못 되었을때 [root@~]# ./configure [root@~]# make [root@~]# make install or .so 파일을 직접 복사 (make install이 .so파일을 모듈경로에 복사한다는 의미) php.ini 에 extension=ssh2.so 추가 아파치 재시작
리눅스 시간개념 # atime (access time) 파일을 열어본 시간, 디렉토리 내용을 확인해본 시간 # mtime (modification time) 파일 내용이 변경된 시간, 디렉토리 내용이 변경된 시간 # ctime (creation time) 파일 속성이 변경된 시간, chmod나 chown등으로 파일의 속성이 변경된 시간 # ls -l 파일의 생성시간 # ls -ult 파일의 사용시간, 파일의 atime # ls -clt 파일의 최근 변경시간, 파일의 ctime # ls 명령어 옵션 -R : 서브디렉토리와 모든 파일들 출력 -r : 파일명, 디렉토리명을 내림차순으로 출력 -S : 파일사이즈를 내림차순으로 출력 -l : 자세하게 출력 -a : 모든 파일들 출력 -A : .와 ..는 제외 -h : 용량단위 출력 -n : UID, GID 출력 -F : 파일형태를 표시하는 특수문자 출력 * : 실행파일 / : 디렉토리 @ : 심볼릭링크 | : FIFO파일 = : 소켓파일 -X : 확장자 없는 파일 먼저 출력, 오름차순으로 출력 -U : 디스크에 저장된 순서대로 출력
cp 명령어 옵션 -a : 가능한 한 원 파일의 구조와 속성을 그대로 복사한다. -S : 복사할 때 덮어쓰게 되는 파일은 백업을 만들면서 확장자 지정 (-S=확장자) -d : 심볼릭 링크는 심볼릭 링크로 복사한다. 그리고 원본 파일과의 하드 링크 관계를 유지한다. -f : 복사 위치에 존재하는 파일을 제거하고 복사한다. -i : 복사 시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다. -P : 원본 파일의 소유자, 그룹, 권한, 시간 기록을 그대로 복사한다. -R , -r : 파일과 하위 디렉토리에 포함된 파일 모두를 복사한다. -u : 변경날짜를 비교해 최신파일일 경우 복사 안함
apache 웹서버 자체 보안설정리눅스2013/08/22 19:47수정삭제 http://blog.naver.com/winsomeday/130174753394 전용뷰어 보기httpd.conf 파일을 루트만 확인 및 수정할 수 있도록 퍼미션을 600으로 설정 아파치 cgi 실행옵션이 필요하지 않은 서버에서는 사용하지 못하게 한다. → AddHandler cgi-script .cgi 특정 디렉토리내에서만 cgi 사용가능하게 설정 cgi실행파일을 웹서버에 올려두고 실행하면 시스템 정보가 쉽게 유출되므로, httpd.conf파일에서 설정 →ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" httpd.conf의 지시자 Options에 설정되는 Indexes 값 문제 Indexes가 설정되어 있고 DirectoryIndex에서 지정한 파일이 디렉토리내에 없으면 그 디렉토리의 목록을 출력해 주므로 →Options 지시자에서 Indexes 값 삭제 Options 지시자 FollowSymLinks를 제거 예를 들어 /home/kbs/www/linkfile 파일이 "ln -s /home/kbs/linkfile /etc/passwd" 의
active, stanby 구분 [root@~]# pstree ├─pulse───lvsd───2*[nanny] // active [root@~]# pstree ├─pulse // stanby <LVS1> eth0 123.45.123.20 eth0:1 123.45.123.59 [root@~]# ipvsadm -L // 현재 로드밸런싱 되고 있는 리스트 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 123.45.123.59:http wlc persistent 1800 // 59 VIP → 75 VIP -> 123.45.123.75:http Route 1 131 20 → 77 VIp -> 123.45.123.77:http Route
사용형식 : rpm -q+[옵션] 패키지명모든 패키지 확인 : rpm -qa 어떤 패키지로 설치 됐는지 확인 : rpm -qf /절대경로/파일명 (rpm으로 설치되었을때만 확인됨)패키지로 설치되는 파일들 확인 : rpm -ql 패키지명패키지 상세 정보 : rpm -qi 패키지명패키지로 설치된 파일들 정상여부 검사 : rpm -qs 패키지명패키지의 설정파일들만 확인 : rpm -qc 패키지명메뉴얼파일들 보기 : rpm -qd 패키지명의존성 확인 : rpm -qR 패키지명무결성 검사 : rpm -V 패키지명 (출력되는 파일들은 변경되었을 가능성이 있다)
[root@ ~]# uptime2:17:14 up 2 days, 13:25, 1 user, load average: 0.03, 0.05, 0.00 현재시각은 2:17:14 up 2days, 13:25 2일 13:25 동안 켜져 있었음 시스템에 로그인한 사용자수 1명 0.03, 0.05, 0.00 각각 1분, 5분, 15분 동안의 시스템 평균 부하율