웹 서버란?
- 웹 서버 (소프트웨어) : 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지에서 흔히 찾아 볼 수 있는 자료 콘텐츠에 따라 HTTP에 반응하는 컴퓨터 프로그램
- 웹 서버 (하드웨어) : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터
– 위키백과
Apache(아파치)란?
아파치 HTTP 서버(Apache HTTP Server)는 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이다.BSD, 리눅스등 유닉스 계열 뿐 아니라 마이크로소프트 윈도나 노벨 넷웨어 같은 기종에서도 운용할 수 있다.
– 위키백과
아파치는 웹 서버의 일종으로 현재 가장 인기있는 서버로 LAPM(Linux + Apache + PHP + Mysql)조합이 많이 보편화 되어 사용되고 있습니다.
Centos 6.4 APM(Apache + PHP + Mysql) 설치
– 구축 환경
- VMware 가상머신
- Centos 6.4
- Windows 8
최대한 GUI를 이용하여 서버를 구축하기 위해서 VMware + Centos OS를 설치하였습니다.
rpm -qa | grep httpd
rpm -qa | grep php
rpm -qa | grep mysql
을 통해서 설치되었는지 확인합니다.
그리고 yum -y install 명령어를 사용해서 웹 서버에 필요한 패키지들을 다 설치해 줍니다.
설치가 완료되면 service httpd start 와 service mysqld start 명령어를 사용해 데몬을 실행시켜 줍니다.
chkconfig 명령어는 부팅이 될 때마다 실행이 되게 해주는 명령어 입니다.
httpd의 홈 디렉토리는 /var/www/html 입니다.
이 경로는 localhost(127.0.0.1) = /var/www/html 과 같은 개념입니다.
이제 웹 서버를 통해 보여줄 화면을 만들겠습니다.
웹 브라우저를 열고 127.0.0.1 또는 localhost를 입력해주시면 다음과 같은 화면이 뜨면 웹 서버가 정상적으로 작동 하는 것 입니다.
외부 접속 허용
system-config-firewall 명령어를 통해서 80번 포트(웹 서버 포트)를 열어주면 됩니다.
그리고 나서 ifconfig로 리눅스의 ip를 외부 웹 브라우저에서 입력을 해주시면 됩니다.
실제 서버를 구축해서 외부 접속을 가능하게 하려면 공인 IP를 대신 적어주시면 됩니다.
Ubuntu 12.04 LTS APM(Apache + PHP + Mysql) 설치
apache2PM설치에 관하여 작성하였습니다.
(apt-get방식으로 설치를 진행합니다. 이점 유의해주세요)
0. root권한
sudo -i <<이 명령어는 root권한을 가지게 함으로서 이후 일일히 sudo를 붙이지 않으셔도 됩니다.
1. APM과 기타 라이브러리 설치
(1) Apache2 설치
apt-get install apache2
(2) php5
apt-get install php5
(3) mysql
apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
(중간에 비밀번호를 입력하는칸이 나온다. root의 계정과 별도로 DB의 root계정의 비밀번호)
(4) GD라이브러리 설치(XE설치시 필요)
apt-get install php5-gd
(5) phpmyadmin
apt-get install phpmyadmin
(중간에 DB root의 비밀번호를 묻는다. 또 선택창이 뜨면 그냥 기본으로 진행한다)
2. 설정
(1) phpmyadmin 연동과 ServerName
vi /etc/apache2/apache2.conf
맨 아랫줄에
Include /etc/phpmyadmin/apache.conf
ServerName localhost
입력후 저장
(2) 언어셋(UTF-8) 설정
(2-1) PHP
vi /etc/php5/apache2/php.ini
default_charset = “iso-8859-1″을 default_charset = “utf-8″로 변경
(2-2) mysql
vi /etc/mysql/my.cnf
[mysqld]에 아래내용 추가
default-character-set=utf8
default-collation=utf8_general_ci
init_connect=set collation_connection=utf8_general_ci
init_connect=set names utf8
character-set-server=utf8
collation-server=utf8_general_ci
character-set-client-handshake = TRUE
(3) Apache, Mysql 재시작
service apache2 restart
service mysql restart
이렇게 진행하면 APM의 설치와 기타 필수적인 세팅은 완료된것이다.
위에서 UTF-8로 언어셋을 설정한것은 선택사항으로, 그누보드(EUC-KR)등을 사용한다면 입력하지 않거나 utf-8을 EUC-KR로 바꿔주면 된다.
최종적으로 확인을 위해 localhost(127.0.0.1, 본인IP, 도메인 등등)를 주소창에 입력하여 It works!가 출력되는지 확인하고, /phpmyadmin을 붙여 정상적으로 phpmyadmin이 작동하는지 확인하자.
– http://nkw68.blog.me/173305079
Ubuntu 12.04 LTS 아파치 설정
1. 일반 사용자의 홈 디렉토리를 웹 서버에 노출 시키는 방법
root@hooking:/etc/apache2/mods-enabled# ln -s ../mods-available/userdir.conf
root@hooking:/etc/apache2/mods-enabled# ln -s ../mods-available/userdir.load
root@hooking:/etc/apache2/mods-enabled# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
root@hooking:/etc/apache2/mods-enabled#
cd /etc/apache2/mods-enabled로 이동하셔서 위와 같이 명령어를 치시면 해당 폴더 안에 링크가 생성되고 사용자들의 각각의 홈 디렉토리의 특정 폴더를 웹 서버를 통해 노출 시킬 수 있습니다.
접근 방법은 -> 도메인/~사용자명 -> confile.info/~wyun13043
2. 아파치 서버 정보 감추는 방법
ServerTokens Prod[uctOnly]
: Apache 만 보여줌
ServerTokens Min[imal]
: Apache 버젼만 보여줌
ServerTokens OS
: 아파치 버젼과 운영체제를 보여줌
ServerTokens Full (또는 지시하지 않았을때)
: 모두 보여줌
3. 디렉토리 리스팅 방지
디렉토리에 index 이름을 가진 파일이 없을 경우 그 폴더안의 모든 파일들을 리스트 해버립니다.
이것을 방지하기 위해서는 apache2 설정 중 Options의 Indexes옵션을 제거하시면 됩니다.
4. 심블릭 링크 사용 방지
파일 시스템에 접근할 수 있다면 엄청난 위험이 따를 것입니다.
이것을 방지하기 위해서 FollowSymLinks를 제거해주시면 됩니다.
'Skills > Unix, Linux' 카테고리의 다른 글
How to install tcpreplay on Linux (0) | 2015.03.18 |
---|---|
.bash_profile과 .bashrc의 차이점 (0) | 2015.03.05 |
[CentOS] Repair Mode (0) | 2014.10.16 |
Configure Linux Virtual Local Area Network (VLAN) (0) | 2014.07.31 |
Linux VLAN configuration (0) | 2014.07.31 |
댓글