CentOS 8

[Linux] DNF를 이용해 서버를 설치해보자

jiwon23 2023. 5. 31. 17:55

오늘은 서버를 설치해 보겠습니다. 그 전에 프로토콜에 대해 알아보겠습니다.

  • 암호화 안되는 프로토콜 : Telnet, FTP, http(80), SMTP, POP, IMAP, rloogin → Sniffing(데이터 도총)
  • 암호화 지원 프로토콜 : SSH(Secure Shell), https(443), VPN 등등 → 권장되는 방식입니다

 

 


  • 텔넷 서버 설치
    • # dnf install telnet-server // 설치
    • # systemctl start telnet.socket // 서비스 시작
    • # firewall-config // 방화벽 서비스 접근 허용 (GUI 모드에서만 가능)
    • # systemctl enable telnet.socket // 리부팅 후에도 서버를 실행하도록 설정
  • (CLI환경에서)
    • # dnf install telnet-server // 설치
    • # systemctl start telnet.socket // 서비스 시작
    • # firewall-cmd --permanent --add-service=telnet // 방화벽 해제 (CLI모드에서)
    • # systemctl enable telnet.socket // 리부팅 후에도 서버를 실행하도록 설정

한번씩 해보세요~


실습) dnf를 사용해서 APM 설치하기

step 0)

httpd (Apache), php, MariaDB 설치 여부 확인

# rpm -qa httpd php mariadb-server ----> 설치 여부만 확인

 

# ps -ef | grep httpd

ps (process를 확인하는 명령)

-ef (옵션으로 많이 사용)

grep (단어가 포함된 경우를 보여 달라)

 

# netstat -nap | less

netstat (network + status : 네트워크의 상태를 보여달라)

-nap (number, all, process)

less (페이지 단위로 보여달라)

 

* 웹서버 설치 실습

step 1) dnf로 APM 설치하기

# dnf -y install httpd php php-mysqlnd mariadb-server

( Debian 계열에서는 httpd라고 하지 않고, apache2라고 함)

 

아마존 등 클라우드 업체들도 다 미리 확인해보고 되는 버전으로만 서비스함 ---> 지원되는 버전이 따 로 있음

 

step 2) 설치 확인 및 시작하기

# systemctl status httpd //설치 상태 확인

# systemctl start httpd //httpd 시작

 

* 웹서버의 루트 디렉토리 (Root Directory)

/var/www/html //파일을 넣으면 웹브라우저로 보여짐

 

step3) gedit 보다는 vi를 많이 사용 권장

cd /var/www/html

vi index.html 57

i //편집모드 시작

<html>

<body>

<h1> This is my website. Welcome!! 어서오세요. 반갑습니다.     //한영 전환 : shift+space

</body>

</html>

ESC

:wq

 

 

 

 


* 방화벽 해제 (GUI가 있는경우만) 

 

접속이 안되는 이유는 Linux 방화벽이 외부로부터의 연결을 막기 때문입니다.
firewall-config 명령어를 입력 설치하겠냐는 질문이 나온다면 y를 눌러주세요

 

만약 GUI가 없다면 ?

firewall-cmd --permanent --add-service http

firewall-cmd --permanent --add-service https

firewall-com --reload

위 명령어들을 실행시켜주면 방화벽문제를 해결할 수 있습니다. 이 명령어는 GUI가 있는 버전에도 사용이 가능합니다.

영구적 - http,https를 체크하고 - 옵션 - 방화벽 다시 불러오기
----> 웹사이트가 잘 보이는 것을 확인하실 수 있습니다.

 

 

 

* phpinfo.php 파일 생성
# vi phpinfo.php
i
<?php // php시작 선언
phpinfo(); // php 실행 코드
?> // php종료
ESC
:wq

 

참고) DB권한을 root로 사용하면 DB가 해킹될 우려가 있습니다.
# systemctl restart mariadb
# systemctl enable mariadb
# systemctl status mariadb // 상태 확인해보기 (확인 후 q를 누르면 종료됨)
# mysql -u root –p // maria DB 시작
참고) MariaDB? MySQL이 오라클로 넘어가면서 기존에 있던 개발자들이 나와서 따로 MariaDB를 만들
어서 GPL로 배포중
- MySQL과 MariaDB는 호환되도록 하고 있음 (명령어도 동일함)
create database wpDB;
// DB생성
grant all privileges on wpDB.* to wpUser@localhost identified by '1234';

 

 

# cd /var/www/html
# wget https://ko.wordpress.org/latest-ko_KR.tar.gz
# tar zxvf latest-ko_KR.tar.gz
* 디렉토리 권한 변경
# chmod 707 wordpress
파일 소유자를 apache로 변경
# chown -R apache.apache wordpress
# cd wordpress
# cp wp-config-sample.php wp-config.php //sample만 제거, cp대신에 mv를 사용해도 됩니다.
# vi wp-config.php
:set nu // 라인번호를 볼 수 있습니다.

 ~~_here부분을 순서대로 wpDB, wpUser, 1234로 변경해주세요
:wq
* 웹서버 설정파일을 수정
# vi /etc/httpd/conf/httpd.conf

:set nu

/html뒤에 /wordpress를 추가해줍니다.

None이라 적혀있던 부분을 All로 변경해줍니다 A는 대문자로 적어주세요!

 ( WebServer의 Root Directory 변경)
:wq
# dnf install php-json // CentOS8에서 Wordpress 에러 교정 방법
# systemctl restart httpd // 아파치 재시작(변경내용을 적용하기 위함)


step2) 워드프레스 설정
http://192.168.111.100/wp-admin/ // 관리자 페이지 (글쓰기)
http://192.168.111.100/ // 일반 사용자에게 보여지는 페이지