티스토리 뷰
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.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
'클라우드 국비 과정 > 리눅스' 카테고리의 다른 글
리눅스 강의 19일차_2025_02_25 (0) | 2025.02.25 |
---|---|
리눅스 강의 18일차_2025_02_24 (0) | 2025.02.24 |
리눅스 강의 16일차_2025_02_20 (0) | 2025.02.20 |
리눅스 강의 15일차_2025_02_19 (0) | 2025.02.19 |
리눅스 강의 14일차_2025_02_18 (0) | 2025.02.18 |
- Total
- Today
- Yesterday
- 추가변수
- dns
- getsebool
- 서브네팅
- 그룹변수
- WAN
- 프로토콜
- tar
- ansible
- IP
- 방화벽
- permission
- TCP
- OSI
- mariaDB
- Database
- 호스트변수
- DBMS
- OSI 7계층
- 플레이변수
- zon
- JOIN
- GROUP BY
- Lan
- 앤서블
- 캐싱네임서버
- CCNA 1년 도전기
- WordPress
- named.conf
- destination /etc not writable
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |