티스토리 뷰

httpd(웹서버 패키지)

1. : 사용자의 홈디렉토리를 개인 웹서버로 운영
모듈명 : mod_userir.so
기능의 실행 64:LoadModule userdir_module modules/mod_userdir.so


활성화된 상태에서 미사용 설정을 해둔 것

설정 내용 : UserDir disabled -> public_html
각 사용자의 홈 디렉토리를 ~/public_html을 웹페이지로 운영


/ect/httpd/conf/httpd.conf 에 가장 중요한 설정 파일이 있음
include/conf.d/*.conf
include/conf.modules.d/*.conf

추가 설정
-설정 : /etc/httpd/conf.d/*.conf
-모듈 : /etc/httpd/conf.moduled.d/*.conf

설치 목록
dnf list httpd php php-mysqlnd php-gd php-mbstring php-pdo




후 index.php를 만들어 구동을 확인하자

grep -i userdir /etc/httpd/conf.d/userdir.conf
에서 userdir.conf 파일에 들어가서
UserDir disabled 을 
UserDir public_html로 바꿔주자
restart

http://www.swj.so.mega/~user명
을 눌렀을 때
웹 서버 루트디렉토리가 home으로 실행이 가능해진다.


/home /user /public_html
drwxr-xr-x drwx------


/etc/login.defs
홈 디렉토리 생성 시 권한 여부를 설정해 주는 파일

122 HOME_MODE       0700 을 0701로 변경




이제
mkdir /etc/skel/public_html
touch /etc/skel/public_html/index.html
vi /etc/skel/public_html/index.html

후 파일 만들면 잘 접속이 될 것이다.

user1 사용자의 웹(개인) 페이지에 워드프레스를 설치 운영

DB 정보 : user1DB
서버 이름: db.swj.so.mega
계정 : user1
암호 : p@ssw0rd

vi /etc/hosts을 추가

db추가

MariaDB [(none)]> create database user1DB default character set utf8;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> create user 'user1'@'http://www.swj.so.mega' identified by 'p@ssw0rd';
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> grant all privileges on user1DB.* to 'user1'@'http://www.swj.so.mega';
Query OK, 0 rows affected (0.003 sec)

보통 일반 사용자들에게 bash를 제공하지는 않는다.
bash사용을 제한해 보자



gnu 계정을 생성하여 gnuboard

dvwa 계정을 생성하여 dvwa 사이트를 구축하세요


웹 서버 고급 설정

가상 호스팅 : 물리적 한 개의 서버에 다수의 도메인(웹) 서버를 운영하는 기능

web client web server
(ip.192.168.1.202)(tcp, 80(http))) -->

http://www.swj.so.mega
http://www.gnu.com
http://www.dvwa.com
DNS http://www.swj.so.mega 192.168.1.202
http( GET /index.html http/1.1
host: http://www.swj.so.mega
user-Agent
DNS http://www.gnu.com 192.168.1.202
http( GET /index.html http/1.1
host: http://www.gnu.com
user-Agent
DNS http://www.dvwa.com 192.168.1.202
http( GET /index.html http/1.1
host: http://www.dvwa.com
user-Agent

이름 기반
하나의 ip에 여러 호스트를 사용

ip기반
한 개의 랜카드에 여러 ip를 할당해서 호스트마다 각각의 ip를 배정

Mixed Name & IP-based Virtual Hosting
한 개의 랜카드에 ip하나에 적절하게 여러 개의 호스트를 배정


/etc/httpd/conf/httpd.conf

<VirtualHost x.x.x.x:Port>
serverName http://www.xxxx.com
Document "/var/www/xxxx.com"
</VirtualHost>

<VirtualHost x.x.x.x:Port>
serverName http://www.yyyy.com
Document "/var/www/yyyy.com"
</VirtualHost>

<VirtualHost x.x.x.x:Port>
serverName http://www.zzzz.com
Document "/var/www/zzzz.com"
CustomLog /var/log/httpd/zzzz.com_access_log
</VirtualHost>

같은 ip로 접속해도 검색한 도메인이 뭔지에 따라서 접속을 한다.

cat -f 시 실시간 갱신 기능


http://www.bing.comm


http://www.bing.nett

http://www.bing.it.kr

vhosts.so
/etc/httpd/conf.d/ 에 있어야 하지만

가상 호스팅 파일은 메인에서 존재한다.
/etc/httpd/conf.d/vhosts.conf 를 만들어서 포함시키면 된다

 



가상호스팅 설정 시작


웹 패키지가 rpm이라면 컴파일된 상태이다.



httpd-2.4.x.el9.x86_64.rpm

명령어로 rpm -ivh RPM파일명 
ㄴ> 설치만 된다.
설정파일 : /etc/httpd
문서파일 : /var/www/html
관련파일 : /usr/share/httpd
실행명령 : /usr/bin
/usr/sbin

설치(복사)
(기본값으로만 설치, 최신버전을 설치할 수 없음)

하지만 소스 파일은 컴파일이 되기 전의 c언어의 상태이다.

파일명 : httpd-2.4.x.tar.gz

1. 환경 구성 (현재 시스템 맞춰 컴파일 환경, 설치 환경)
configure

2. 컴파일 (C언어 -> 바이너리)
make

3. 설치(복사)
make install

설정파일 : /usr/local/apache2/conf
문서파일 : /usr/local/apache2/htdoc
관련파일 : /usr/local/apache2/
실행명령 : /usr/local/apache2/bin


이 디렉토리를 삭제하면 프로그램을 삭제하는 개념이 된다.
(입맛대로 설치 가능)


rpm 파일은
레드헷
데비안
슬랙웨어
유닉스
마다 rpm 파일이 다르고 정해진 파일이 있다.

소스 컴파일 방식은 어느 OS에서도 컴파일해서 사용할 수 있다.


아파치 컴파일 -> php 플러그인 연결

rpm으로 설치되어 있으면 안 된다.





코드를 다운받아야 한다.
https://downloads.apache.org/httpd/

https://downloads.apache.org/httpd/httpd-2.4.63.tar.gz




 ./configure --prefix=/usr/local/apache2 \
--enable-mods-shared=all \ 
--with-mpm=worker \ 
--enable-ssl \ 
--with-ssl 
--enable-so

명령어 사용

각각의 의존성 문제 해결
# ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-mpm=worker --enable-ssl --with-ssl --enable-so

apr
dnf list apr-devel

APR-util..


pcre(2)-config for libpcre not found.

dnf install pcre-devel -y -q


make
GCC(GNU C Compiler)가 설치가 되어있어야 한다. + openssl-devel



만약 make를 잘못 줬다면?
ㄴ> make clean을 사용해서 컴파일된 데이터를 삭제하는 명령어이다.

메인 설정
/var/local/apache/conf/httpd.conf
추가설정
/var/local/apache/conf/extras/*.conf


make install 명령어로 설치하면 
ll /usr/local/apache2 폴더에 여러 디렉토리나 파일들이 생성된다.


useradd -s /sbin/nologin -d /usr/local/apache2
        ㅅ
--------┘
useradd -u 48 -d /usr/local/apache2 -s /sbin/nologin apache2
이렇게


chown -R apache2:apache2 /usr/local/apache2

따로 설정이 없다면 kill 9 명령어로 죽여야 한다.



systemctl 명령어로 실행가능하게 해주는 명령

 



-------------- httpd.service (데몬 서비스 내용) 샘플1 --------------
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
# EnvironmentFile=/usr/local/apache2/bin/envvars
PIDFile=/usr/local/apache2/logs/httpd.pid
ExecStart=/usr/local/apache2/bin/apachectl start
ExecReload=/usr/local/apache2/bin/apachectl graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함