웹 사이트를 호스팅하는 방법 (자체 서버 설정 안내서)

서버를 만드는 방법


서버에서 웹 사이트를 호스팅하려면 손을 더럽 히고 전체 환경을 스스로 설정해야합니다. 아래에는 가상 사설 서버를 사용하여 작업을 수행하는 방법에 대한 일반적인 예가 나와 있습니다. 우분투 18.04

요컨대, 다음을 수행해야합니다.

    • 초기 서버 설정 수행
    • DNS 영역 설정 및 도메인 지정
    • 소프트웨어 스택 설치
    • 가상 호스트 생성
    • 웹 사이트 운영 및 운영

추신 이 복잡한 단계를 거치지 않으려면 웹 호스팅을 고려하십시오.

1. 첫 번째 서버 설정 단계

전용 서버 또는 VPS를 임대하기로 결정한 경우 먼저 견고한 기반을 마련해야합니다. 여기에는 터미널 또는 SSH 클라이언트를 통해 서버에 액세스하고 보안 조정 및 업데이트가 포함됩니다..

서버에 연결

서버에 연결하여 시작하십시오. 다음 명령이 트릭을 수행합니다.

ssh [이메일 보호] _server_IP-포트

처음 연결할 때 알려진 호스트 목록에 서버 IP를 추가하라는 메시지가 표시 될 수 있습니다. 입력 계속 진행하면 다음을 입력하라는 메시지가 표시됩니다. 루트 비밀번호.

알려진 호스트에 서버 IP 추가

모든 것이 올바르게 진행된 경우 화면에 표시되는 내용의 예는 다음과 같습니다..

초기 우분투 SSH 로그인 화면

최신 업데이트 받기

다음 명령을 실행하여 Ubuntu 18.04 서버의 최신 업데이트를 받으십시오.

sudo apt 업데이트
sudo apt 업그레이드

두 번째 명령을 실행하면 확인 화면이 나타납니다. 입력 와이 계속하려면.

서버 업데이트 확인 우분투

새로운 사용자 만들기

다음으로 일상적인 작업에 루트 사용자를 사용하지 않는 것이 좋으므로 새 사용자를 추가해야합니다. 웹 마스터라고하겠습니다. 사용자 생성을 시작하려면 다음을 실행하십시오.

adduser 웹 마스터

새로운 사용자 우분투 만들기

비밀번호를 만들면 일반 세부 정보를 입력하라는 메시지가 표시됩니다 (비워 둘 수 있음). 그런 다음 와이 새로운 사용자 생성을 확인하기 위해.

기본적으로 새 사용자에게는 필요한 모든 작업을 수행 할 수있는 권한이 없으므로 수동으로 추가해야합니다. 방법은 다음과 같습니다.

usermod -aG sudo 웹 마스터

그게 다야! 새로운 관리 사용자가 준비되었습니다. 루트 대신 사용하려면 다음을 실행하십시오.

su – 웹 마스터

시스템 사용자 변경

공개 키 인증 설정 (선택 사항)

암호를 사용하여 인증하면 무차별 대입 시도에 취약하게되고 서버는 보통 위험에 노출됩니다 (특히 고유하고 강력한 암호를 설정하기가 게으른 경우).

서버 무결성을 향상시키는 좋은 방법은 일반 비밀번호 대신 SSH 키를 사용하는 것입니다. 실행중인 Linux 배포에 관계없이 단계가 동일해야합니다. 시작하려면 로그 아웃 서버에서 다음 명령을 실행하십시오. 로컬 컴퓨터 새 공개 키를 만들려면

ssh-keygen

추가 암호 문구와 공개 키를 저장할 위치를 입력하라는 메시지가 표시됩니다. 기본적으로 모든 것을 저장합니다. /Users/Your_User/.ssh 디렉토리 (다른 계획을 염두에 두지 않으면 유지할 수 있음).

SSH keygen 실행

완료되면 다음을 사용하여 SSH 키를 서버에 복사하십시오.

ssh-copy-id [이메일 보호] _server_IP

다음과 같은 경우를 대비하여 루트 사용자에 대해서도 동일하게 수행 할 수 있습니다.

ssh-copy-id [이메일 보호] _server_IP

SSH 키를 원격 서버로 이동

마지막으로 서버에 다시 로그인해야합니다. 이번에 만 SSH 키와 암호를 사용하여 인증합니다. 누군가가 암호를 추측하면 연결에 성공하기 위해 공개 키가 필요하기 때문에 로그인 할 수 없습니다..

SSH 키를 사용하여 서버에 로그인

비밀번호 인증 비활성화 (선택 사항)

이제 새로 생성 된 SSH 키를 사용하여 서버에 액세스 할 수 있으므로 일반 비밀번호 인증을 비활성화하는 것이 좋습니다. 그렇게하기 위해 나노 텍스트 에디터:

sudo nano / etc / ssh / sshd_config

#PasswordAuthentication yes라는 ​​행을 찾으십시오. # 그리고 변경 아니. 최종 결과는 다음과 같아야합니다.

sshd 구성에서 비밀번호 인증 비활성화

이러한 변경 사항을 저장하고 nano 편집기를 종료하려면 CTRL + X, 입력 와이 그리고 누르십시오 시작하다. 마지막으로 sshd 서비스를 다시로드하여 모든 것을 적용하십시오.

sudo systemctl 다시로드 sshd

그리고 그게 다야! 이제 서버 대신 액세스하고 관리하는보다 안전한 방법으로 간주되는 암호 대신 공개 키를 사용하여 인증합니다..

방화벽 설정

마지막으로, 웹에 숨겨져있는 위험으로부터 자신을 보호하기 위해 방화벽을 사용하는 것이 좋습니다. 복잡하지 않은 방화벽은 작업에 가장 적합한 도구 중 하나입니다. 설정하려면 다음을 실행하십시오.

sudo apt-get 설치 ufw

설치하면 방화벽을 수동으로 설정하지 않으면 작동하지 않습니다. 다음을 사용하여 활성화 할 수 있습니다.

sudo ufw 활성화

ufw 우분투 활성화

작동하는지 확인하려면 다음을 실행하십시오.

sudo ufw 상태 상세

2. DNS 영역 설정

다음 과제는 도메인 이름과 서버 간의 바인딩 자료 역할을하는 DNS 영역을 만드는 것입니다. 이를 두 가지 작은 단계로 나눌 수 있습니다.

  1. 서버 내에서 DNS 영역 설정
  2. 도메인 등록 기관에서 사용자 정의 네임 서버 생성

새로운 DNS 영역 만들기

새로운 DNS 영역을 만들기 위해 bind9라는 도구를 사용합니다. 결국 이것은 IP 주소 대신 도메인 이름을 통해 웹 사이트를로드 할 수있는 서비스입니다.

Ubuntu 18.04 서버에 Bind9를 설치하려면 다음을 실행하십시오.

sudo apt-get 설치 bind9

설치가 완료되면 모든 파일을 / etc / bind 예배 규칙서. 먼저 탐색 해 보겠습니다.

CD / etc / bind

모든 것을 깔끔하고 체계적으로 유지하기 위해 DNS 영역을위한 별도의 디렉토리를 만듭니다.

sudo mkdir -p 영역

도메인을위한 새로운 DNS 영역 파일을 만들어 봅시다. 우리는 사용할 것입니다 domain-example.com 데모 목적으로 (실제 도메인 이름으로 바꿔야 함).

sudo nano zones / domain-example.com

DNS 영역 스 니펫 예제 :

;
; domain-example.com의 BIND 데이터 파일
;
$ TTL 3 시간
@ IN SOA ns1.domain-example.com. admin.domain-example.com. (
1 ; 연속물
3h; 3 시간 후 새로 고침
1 시간; 1 시간 후 다시 시도
1w; 1 주 후 만료
1h); 1 일의 네거티브 캐싱 TTL
;
@ IN NS ns1.domain-example.com.
@ IN NS ns2.domain-example.com.

domain-example.com. YOUR_SERVER_IP에서
YOUR_SERVER_IP의 ns1
YOUR_SERVER_IP의 ns2
www IN CNAME domain-example.com.
YOUR_SERVER_IP에 메일
ftp IN CNAME domain-example.com.
domain-example.com. IN MX 10 domain-example.com.

당신의 모든 인스턴스를 교체해야합니다 Your_Server_IPdomain-example.com 실제 값으로. 를 눌러 영역 파일을 저장하십시오 CTRL + X 그런 다음 입력 와이 변경 사항 확인.

다음으로 로컬 구성을 편집하고 새로 만든 DNS 영역의 위치를 ​​지정해야합니다. 이를 통해 서버는 어느 존 파일이 어느 도메인 이름에 속하는지 알 수 있습니다.

sudo nano named.conf.local

교체하는 동안 파일 맨 아래에 다음 줄을 붙여 넣습니다. domain-example.com 실제 웹 사이트 주소로.

존 "domain-example.com" {
타입 마스터;
파일 "/etc/bind/zones/domain-example.com";
};

프레스 CTRL + X 그리고 입력 와이 변경 사항을 저장하고 nano 편집기를 종료합니다.

다음 명령을 실행하여 모든 것이 올바르게 추가되고 구성되었는지 테스트 할 수도 있습니다.

sudo named-checkzone domain-example.com /etc/bind/zones/domain-example.com

DNS 영역 확인

마지막으로 다음 두 명령을 실행하여 서버의 DNS 서비스를 다시 시작하고 실행 중인지 확인하십시오.

sudo /etc/init.d/bind9 restart
sudo /etc/init.d/bind9 start

이 시점에서 DNS 영역은 서버 측에서 준비되었습니다. 이를 완료하려면 도메인 등록 기관 내에 사용자 정의 이름 서버 항목을 작성해야합니다..

도메인을위한 커스텀 네임 서버 생성

두 개의 네임 서버를 지정했기 때문에 (ns1.domain-example.comns2.domain-example.com)의 DNS 영역 예에서는 도메인 등록 기관에서 이러한 항목을 만들어 사용해야합니다..

항목은 다음과 같습니다.

커스텀 네임 서버 에 중점을 두다
ns1.domain-example.com Your_Server_IP
ns2.domain-example.com Your_Server_IP

자식 네임 서버 생성

일단 생성되면 도메인을 새로운 이름 서버로 지정해야합니다..

네임 서버 업데이트

3. 램프 스택 설치

LAMP는 웹에서 가장 많이 사용되는 소프트웨어 스택 중 하나입니다. Linux, Apache HTTP Server, MySQL / MariaDB 및 PHP의 약자입니다. 사이트를 호스팅하기 전에 이러한 모든 구성 요소가 서버에서 제공되는지 확인해야합니다. Ubuntu 18.04를 사용하여 설정하는 과정은 다음과 같습니다.

아파치

Apache HTTP Server는 서버와 함께 제공되는 기본 패키지에 이미 포함되어있을 수 있습니다. 그렇지 않은 경우 다음을 실행하십시오.

sudo apt-get 설치 apache2

아파치 설치

방화벽이 있으므로 Apache가 제대로 작동하지 않으므로 이러한 포트가 열려 있는지 확인해야합니다. 방화벽을 통해 허용해야 할 사항은 다음과 같습니다.

sudo ufw는 80 / tcp를 허용합니다
sudo ufw 443 / tcp 허용

그런 다음 다시 시작하여 변경 사항이 적용되었는지 확인하십시오.

sudo ufw 다시로드

이 시점에서 다음을 방문하여 확인해야 할 내용은 다음과 같습니다. 서버의 IP 주소 브라우저를 통해 :

기본 Apache2 페이지

PHP

WordPress에 필요한 몇 가지 추가 모듈이 포함 된 최신 PHP 버전을 얻으려면 다음을 실행하십시오.

sudo apt-get 설치 PHP php-common php-mysql php-gd PHP-cli

PHP 설치 확인

다음을 입력하여 서버에 설치된 PHP 버전을 확인할 수 있습니다.

PHP -V

PHP 버전 확인

MySQL / MariaDB

MariaDB와 MySQL은 Linux에서 데이터베이스 서버를위한 최고의 선택입니다. 이 예에서는 MariaDB를 사용합니다. 서버에 설치하려면 다음을 실행하십시오.

sudo apt-get 설치 mariadb 서버 mariadb 클라이언트

Mariadb 설치

완료되면 패키지와 함께 제공되는 추가 스크립트를 사용해야합니다. 데이터베이스 서버에 대한 기본 보안 조치를 설정합니다. 다음을 입력하여 시작하십시오.

sudo mysql_secure_installation

첫 번째 단계에서 루트 MySQL 비밀번호를 제공하라는 메시지가 표시됩니다. 눌러 시작하다 버튼이 아직 생성되지 않았으므로 계속 진행합니다. 그런 다음 명령 행 인터페이스에 나타나는 나머지 지시 사항을 따르십시오..

Mariadb 보안 설치

마지막으로 다음을 실행하여 데이터베이스 서버가 작동하는지 확인할 수 있습니다.

sudo systemctl 상태 mysql

4 가상 호스트 생성

다음 작업은 웹 사이트 파일을위한 전용 디렉토리를 만드는 것입니다. 작업 디렉토리를 변경하여 시작하십시오.

cd / var / www / HTML

이 명령을 사용하여 도메인 용 폴더와 다음 내에 추가 폴더를 만듭니다.

sudo mkdir -p 도메인 -example.com/public_html

그런 다음 웹 마스터 이전에 소유자를 생성 한 사용자 :

sudo chown -R webmaster : 웹 마스터 도메인 -example.com/public_html

또한 읽기 권한이 Apache 루트 디렉토리에 적용되어 있는지 확인해야합니다. 이 경우 :

sudo chmod -R 755 / var / www / html /

이 시점에서 Apache는 모든 설정을 가져옵니다. 000-default.conf 파일. 이 파일의 내용을 복사하고 도메인 이름을 위해 별도의 파일을 만들어야합니다. 가상 호스트 구성의 템플리트를 복사하는 가장 쉬운 방법은 다음 명령을 사용하는 것입니다.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain-example.com.conf

기본적으로 이것은 동일한 디렉토리에서 다른 이름으로 파일 사본을 만듭니다. Apache 웹 서버에 도메인의 루트 디렉토리 위치, 오류 로그 및 기타 중요한 경로를 알려주는 파일입니다. 내용을 변경하기 위해 nano를 사용합니다.

sudo nano /etc/apache2/sites-available/domain-example.com.conf

아파치 설정 예제 :

# ServerName 지시문은 요청 체계, 호스트 이름 및 포트를 설정합니다.
# 서버가 자신을 식별하는 데 사용합니다. 이것은 만들 때 사용됩니다
# 리디렉션 URL. 가상 호스트와 관련하여 ServerName
#은 요청의 Host : 헤더에 표시 할 호스트 이름을 지정합니다.
#이 가상 호스트와 일치합니다. 기본 가상 호스트 (이 파일)의 경우
# 값은 마지막 호스트 호스트로 사용되므로 결정적이지 않습니다..
# 그러나 추가 가상 호스트에 대해 명시 적으로 설정해야합니다..

ServerAdmin [이메일 보호]
DocumentRoot /var/www/html/domain-example.com/public_html
ServerName domain-example.com
ServerAlias ​​www.domain-example.com

# 사용 가능한 로그 수준 : trace8, …, trace1, 디버그, 정보, 알림, 경고,
# 오류, 치명타, 경고, 출현.
# 특정 로그 레벨을 구성 할 수도 있습니다
# 모듈, 예 :.
# 로그 레벨 정보 ssl : warn

ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log 결합

# conf-available /의 대부분의 구성 파일
# 글로벌 수준에서 사용 또는 사용 중지 할 수 있습니다.
# 하나의 특정 가상 호스트에 대한 회선 만 포함하십시오. 예를 들어
# 다음 줄은이 호스트에 대해서만 CGI 구성을 활성화합니다
# 전역으로 비활성화 된 후 "a2disconf".
# conf-available / serve-cgi-bin.conf 포함

domain-example.com의 모든 인스턴스를 실제 도메인 이름으로 바꾸십시오. 파일을 저장하려면 CTRL + X 입력하여 확인 와이. 최종 결과는 다음과 같아야합니다.

Apache에 도메인 구성 추가

이때 기본 가상 호스트 구성 파일을 끄고 새로 만든 파일을 사용해야합니다. 이 명령은 비활성화합니다 :

sudo a2dissite 000-default.conf

그런 다음 아래와 같이 최근에 생성 한 구성 파일을 추가하십시오.

sudo a2ensite domain-example.com.conf

마지막으로 변경 사항을 적용하려면 Apache를 다시 시작해야합니다. 다음을 실행하여 수행 할 수 있습니다.

sudo systemctl reload apache2

서버에 LAMP를 성공적으로 설치했습니다. 도메인이 이미 서버를 가리키고 있으므로 DNS가 완전히 전파 될 때까지 몇 시간 기다려야 할 수 있습니다. 그러면 브라우저를 통해 도메인을 방문 할 때 비슷한 화면이 나타납니다.

도메인 루트 디렉토리 내용

5. 워드 프레스 설정 (또는 웹 사이트 업로드)

초기 서버 설정이 완료되었으므로 웹 사이트를 호스팅 할 차례입니다. 이 섹션에서는 WordPress 사이트를 시작하고 운영하는 방법에 대한 일반적인 예를 보여줍니다..

새로운 MySQL 데이터베이스 및 사용자 생성

터미널을 통해 MySQL 인터페이스에 액세스하여 시작하십시오.

sudo mysql

>다음 구문을 사용하여 새 데이터베이스를 만드십시오.

데이터베이스 생성 wpdatabase;

그런 다음 새 사용자를 작성하고 비밀번호를 지정하십시오.

‘SuperSecurePassword123’에 의해 식별 된 사용자 ‘wpuser’@ ‘localhost’를 작성하십시오.

다음으로 새로 만든 사용자에게 관리 권한을 할당하십시오.

wpdatabase. *의 모든 권한을 부여하십시오. ‘wpuser’@ ‘localhost’;

그게 다야! MySQL 사용자 및 데이터베이스가 조치를 취할 준비가되었습니다. 인터페이스를 끄려면 다음을 입력하십시오.

출구

워드 프레스 파일을 서버로 이동

마지막으로, 실제 웹 사이트 파일을 도메인의 루트 디렉토리에 업로드해야합니다. 단계별로 설명하는 두 가지 방법이 있습니다.

  • wget 명령을 사용하여 최신 WordPress 버전 가져 오기
  • FTP 클라이언트 구성 (예 : FileZilla)

방법 1 : 명령 줄 도구 사용

첫 번째 방법은라는 명령을 사용하는 것입니다 wget. 서버에서 사용하려면 다음을 설치해야합니다.

sudo apt-get 설치 wget

그런 다음 작업 디렉토리를 도메인 이름의 루트 폴더로 변경하십시오.

cd /var/www/html/domain-example.com/public_html

wget 명령을 사용하여 웹에서 최신 버전의 WordPress를 다운로드하십시오.

wget https://www.wordpress.org/latest.zip

그런 다음 다음을 사용하여 아카이브의 모든 내용을 추출하십시오.

최신 압축 해제

기본적으로 모든 파일은라는 새 디렉토리에 나타납니다 워드 프레스 (귀하의 웹 사이트가 domain-example.com/wordpress). 모든 것이 올바르게 작동하려면 해당 디렉토리의 모든 파일을 위의 디렉토리로 이동해야합니다. 방법은 다음과 같습니다.

CD 워드 프레스

다음 명령은 모든 파일을 현재 디렉토리에서 지정된 위치로 이동합니다.

sudo mv * /var/www/html/domain-example.com/public_html/

설치를 시작하기 전에 wp-config.php 파일을 준비해야합니다. 샘플 하나만 제공되므로. 이름을 바꾸어 시작하십시오.

sudo mv wp-config-sample.php wp-config.php

그런 다음 nano를 사용하여 파일을 편집하고 MySQL 데이터베이스 구성 세부 사항을 추가하십시오..

sudo nano wp-config.php

업데이트해야합니다 MySQL 사용자, 데이터 베이스, 과 주최자 이전에 만든 값이있는 섹션.

WP 설정 편집

마지막으로 브라우저에서 도메인 이름을 방문하면 초기 WordPress 설정 화면이 표시됩니다.

초기 워드 프레스 설정

완료하면 All-in-One WP Migration과 같은 마이그레이션 플러그인을 설치하여 기존 WordPress 웹 사이트를 가져올 수 있습니다.

방법 2 : FTP 클라이언트 사용

또는 FileZilla와 같은 FTP 클라이언트를 사용할 수 있습니다. SSH 키를 구성하고 비밀번호 인증을 비활성화 한 경우 일반 사용자 이름과 비밀번호 조합 대신 SSH 키를 사용하여 로그인해야합니다. SFTP 연결을 구성하려면

  1. 이동 FileZilla 사이트 관리자 그리고 추가 새로운 사이트.
  2. 프로토콜을 SFTP – SSH 파일 전송 프로토콜.
  3. 에 서버 IP를 입력하십시오 주최자 필드를 설정하고 포트를 22.
  4. 로그인 유형을로 설정하십시오. 키 파일.
  5. SSH 키의 경로를 지정하십시오 (예 :. /Users/Name/.ssh/id_rsa).
  6. FileZilla는 그것을 .ppk 파일을 사용하여 연결하는 데 사용할 수 있습니다.

SSH 키 변환

최종 구성은 다음과 같아야합니다.

FileZilla sftp 구성

이제 FTP를 통해 서버에 액세스하고 컴퓨터에서 직접 파일을 업로드 할 수 있습니다.

FileZilla sftp 연결

축하합니다! Ubuntu 18.04를 실행하는 가상 사설 서버에서 웹 사이트를 호스팅하는 방법을 배웠습니다. 초기 서버 설정에서 소프트웨어 스택 준비에 이르기까지 모든 것이 다루어졌습니다. 남은 것은 서버를 잡고 손을 더럽히는 것입니다.!

이 글은 Hostinger.com의 도움으로 출판되었습니다.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector