Linux 시스템에서 집에서 웹사이트를 무료로 호스팅하는 방법

용어 웹 서버는 하드웨어와 소프트웨어 또는 둘 다를 가리키는 데 사용될 수 있습니다. 이 안내서의 목적을 위해, 우리는 소프트웨어 측면에 초점을 맞추고 Linux 상자에 웹 사이트를 호스팅하는 방법을 살펴볼 것입니다.

A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.

A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.

동적 콘텐츠는 자주 변경되거나 지속적으로 업데이트되는 콘텐츠입니다. 동적 콘텐츠를 제공하기 위해 웹 서버는 데이터베이스 서버와 서버 측 스크립팅 언어와 함께 작동해야 합니다.

이 안내서에서는 무료로 Linux 시스템에 웹 사이트를 호스팅하기 위해 아파치 웹 서버를 설정하는 방법을 보여줍니다.

요구 사항

이 가이드를 따라가려면 다음이 준비되어 있는지 확인하십시오.

  • A dedicated Public IP address can be obtained from your ISP.
  • A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.

확인할 수 있는 몇 가지 가이드를 살펴보세요. 이는 리눅스 서버를 설치하는 데 도움이 될 것입니다.

또한 설치해야 할 것은 LAMP 서버입니다. 이는 리눅스, 아파치, MySQL (또는 MariaDB)의 약자입니다. 리눅스에 LAMP 스택을 설치하는 방법에 대한 몇 가지 가이드를 여기에 제공합니다.데비안 11 서버에 LAMP 설치하는 방법

이 섹션에서는 웹 서버의 주요 구성 요소에 대해 논의하고 진행할 것입니다.

아파치란 무엇인가요?

아파치는 Apache License 2.0에 따라 출시된 인기 있는 무료 오픈소스 크로스 플랫폼 웹 서버입니다. 거의 32.2%의 웹 서버 시장 점유율을 차지하는 가장 널리 사용되는 웹 서버 중 하나입니다.

최신 버전의 아파치를 확인하고 서버에 설치되어 있는지 확인하려면 다음 명령을 실행하십시오:

# apt-cache policy apache2 (On Debian-based OS)

출력에서 ‘Installed: (none)’으로 표시되어 있으므로 아직 설치되지 않았음을 알 수 있습니다. 또한 이 경우 데비안 / 우분투 저장소에서 제공되는 최신 버전에 대한 정보도 얻을 수 있습니다. 이 경우 2.4.52입니다.

Check Apache Package Availability

현대적인 레드햇 배포판에서는 다음과 같이 dnf 명령어를 사용하여 아파치의 가용성을 확인할 수 있습니다.

# dnf search httpd
Search Apache Package Availability

위의 출력에서는 아파치 httpd 패키지를 다운로드할 수 있다는 것을 알 수 있습니다. 시스템에 아파치가 설치되어 있지 않은 경우 ‘apt‘ 또는 ‘dnf‘ 패키지 관리자를 사용하여 아파치를 설치할 수 있습니다.데비안 기반 시스템에서:레드햇 기반 시스템에서:

데비안 기반 시스템에서:

$ sudo apt install apache2 -y 	 
$ sudo systemctl start apache2	 
$ sudo systemctl enable apache2	 
$ sudo systemctl status apache2
Check Apache2 Status

레드햇 기반 시스템에서:

# dnf install httpd -y 	 
# systemctl start httpd	 
# systemctl enable httpd	 
# systemctl status httpd
Check httpd Status

MariaDB란 무엇인가?

A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.

데비안 기반 시스템에서 MariaDB를 설치하려면:

	 
$ sudo apt install mariadb-server mariadb-client -y	 
$ sudo systemctl start mariadb	 
$ sudo systemctl enable mariadb	 
$ sudo systemctl status mariadb	 

다음 출력은 MariaDB가 설치되어 예상대로 실행되고 있음을 보여줍니다.

Check MariaDB Status

레드햇 기반 시스템에서 MariaDB를 설치하려면:

	 
# dnf install mariadb-server -y	 
# systemctl start mariadb	 
# systemctl enable mariadb	 
# systemctl status mariadb	 
Verify MariaDB Status

PHP란 무엇인가?

PHPPHP Hypertext Preprocessor의 재귀적 약어로, 웹 개발에 가장 많이 사용되는 인기 있는 일반 목적 스크립팅 언어입니다.

데비안 기반 시스템에서 PHP를 설치하려면:

	 
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install  ca-certificates apt-transport-https software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php8.0 libapache2-mod-php8.0 

레드햇 기반 시스템에서 PHP를 설치하려면 먼저 EPEL 저장소를 활성화해야 합니다.

$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm  [RHEL 9]
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 8]

다음으로, 레드햇 기반 시스템에서 PHP의 최신 버전을 제공하는 Remi 저장소를 활성화합니다.

$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [RHEL 8]
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [RHEL 8]

EPELRemi 저장소가 시스템에서 활성화되면, 다음과 같이 PHP를 설치할 수 있습니다.

# dnf module list php
# dnf module enable php:remi-8.0 -y 
# dnf install php php-cli php-common

모든 구성 요소가 설치되면 이제 WordPress CMS를 사용하여 웹사이트를 구축할 수 있으며, 이는 HTML, CSS, PHP, Javascript와 같은 웹 디자인 언어에 대한 지식 없이도 사용자가 웹사이트를 개발하고 관리하기 쉬운 소프트웨어입니다.

Linux에서 WordPress를 사용하여 간단한 웹사이트 만들기

이 데모에서는 WordPressDebian 11RHEL 9 시스템에 설치하여 선호에 따라 추가로 맞춤화할 수 있는 샘플 웹사이트를 제공합니다.

이 섹션은 이미 LAMP 스택이 설치되어 있다고 가정합니다.

1단계: 추가 PHP 모듈 설치

WordPress에 필요한 추가 PHP 모듈을 설치하여 진행하세요.

Debian 기반 시스템에서 PHP 모듈을 설치하려면:

$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath

RHEL 기반 시스템에서 PHP 모듈을 설치하려면:

# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget

2단계: WordPress용 데이터베이스 생성

PHP로 작성된 WordPress는 데이터 기반의 무료이자 오픈 소스 콘텐츠 관리 시스템입니다. 데이터베이스는 WordPress의 필수 구성 요소입니다.

데이터베이스는 블로그 게시물, 페이지, 카테고리, 댓글, 테마, 플러그인 및 WordPress 구성 파일을 저장하는 데 사용됩니다.

WordPress용 데이터베이스를 생성하려면 MariaDB 데이터베이스 서버에 로그인하세요:

$ sudo mysql -u root -p

다음으로 다음과 같이 데이터베이스를 생성하세요.

CREATE DATABASE wordpress_db;

다음으로 데이터베이스 사용자를 생성하고 데이터베이스에 대한 모든 권한을 사용자에게 할당하세요.

GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';

그런 다음 변경 사항을 저장하기 위해 그랜트 테이블을 다시 로드하고 데이터베이스를 종료합니다.

FLUSH PRIVILEGES;
QUIT;

3 단계: WordPress 다운로드

데이터베이스가 준비되면 최신 WordPress 타르볼 파일을 wget 명령을 사용하여 다운로드하세요.

$ wget https://wordpress.org/latest.tar.gz

다운로드가 완료되면 tar 명령을 사용하여 압축된 파일을 추출하세요.

$ tar -xvzf latest.tar.gz

이 명령은 wordpress라는 폴더에 파일의 내용을 추출합니다. 폴더를 Document Root에 이동하거나 복사하세요.Apache 웹 서버용입니다.

$ sudo mv wordpress/ /var/www/html/

다음으로 다음 권한과 소유권 권한을 할당하세요.
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/

4 단계: WordPress용 Apache 가상 호스트 생성

가상 호스트라는 용어는 단일 서버에서 여러 웹 사이트를 호스팅하는 방법을 나타냅니다. 단일 서버에서 여러 웹 사이트를 호스팅하려면 각 웹 사이트에 대한 가상 호스트를 생성해야 합니다.

이 경우 다음과 같이 WordPress 웹 사이트용 가상 호스트를 생성해야 합니다.

$ sudo nano /etc/apache2/sites-available/wordpress.conf  [On Debian]
# vi /etc/httpd/conf/httpd.conf [On RHEL]

다음 코드 줄을 붙여넣어 가상 호스트를 정의하십시오. ServerName 지시문에는 서버의 IP 주소 또는 완전한 도메인 이름을 제공하십시오. 이는 전용 공개 IP 주소를 가리키어야 합니다.

<VirtualHost *:80>
     ServerAdmin admin@your_domain.com
     DocumentRoot /var/www/html/wordpress
     ServerName 192.168.0.100

     <Directory /var/www/html/wordpress>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
     CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined

</VirtualHost>

변경 사항을 저장하고 파일에서 나가십시오.

데이터베이스에 연결하려면 몇 가지 추가 수정이 필요합니다. 따라서 워드프레스 폴더로 이동하십시오.

$ cd /var/www/html/wordpress/

다음으로, wp-config.php 파일을 wp-config-sample.php 파일의 내용으로 업데이트하십시오.

$ cp wp-config-sample.php wp-config.php
$ sudo nano wp-config.php

다음으로, 데이터베이스 이름, 데이터베이스 사용자 이름 및 암호 지시문을 데이터베이스 세부 정보로 업데이트하십시오.

다음으로, Debian 기반 시스템에서 새로운 워드프레스 사이트를 활성화하십시오.

$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf
$ sudo a2ensite wordpress
$ sudo a2enmod rewrite
$ sudo a2dissite 000-default

변경 사항을 적용하려면 Apache를 다시 시작하십시오.

$ sudo systemctl restart apache2   [On Debian]
# systemctl restart httpd  [On RHEL]

단계 4: 브라우저에서 워드프레스 설정 완료

설정을 완료하려면 다음과 같이 웹 서버의 IP 주소를 탐색하십시오:

http://server-ip

워드프레스 환영 페이지가 표시됩니다. 선호하는 언어를 선택하고 ‘계속’을 클릭하십시오.

WordPress Installation Setup

다음으로, 사이트 세부 정보를 입력하십시오.

WordPress Site Details

그런 다음, 워드프레스 설정을 완료하려면 ‘워드프레스 설치’를 클릭하십시오.

Install WordPress

모든 것이 제대로 진행되었다면, 설치가 성공적으로 완료되었음을 확인할 수 있습니다. 로그인하려면 ‘로그인’ 버튼을 클릭하십시오.

WordPress Admin Login

이것은 워드프레스 대시보드로 안내합니다. 이 시점에서 샘플 웹사이트의 외관을 향상시키기 위해 다양한 테마를 실험할 수 있습니다.

WordPress Admin Dashboard

단계 5: 포트 포워딩을 사용하여 워드프레스에 액세스

홈이나 로컬 영역 네트워크(LAN)에서 Linux 시스템에서 웹 서버를 자체 호스팅하는 경우, 다음 단계는 외부 사용자 또는 LAN(로컬 영역 네트워크) 외부의 사용자가 액세스할 수 있도록 만드는 것입니다. 이것이 포트 포워딩이 필요한 이유입니다.

포트 포워딩 또는 포트 매핑이라고도 하는 포트 포워딩은 외부 장치가 인터넷을 통해 사설 네트워크 내의 서버 또는 리소스에 액세스할 수 있는 기술입니다. 전체 아이디어는 외부 장치가 내부 IP 주소와 통신할 수 없기 때문에 외부에서 사설 네트워크에 액세스하는 것입니다.

설정에서 웹 서버가 청취하고 있는 포트(대부분의 경우 HTTP 트래픽에 대해 포트 80 또는 HTTPS에 대해 포트 443) 및 웹 서버의 정적 사설 IP 주소를 포워딩해야 합니다.

그래서 라우터에 로그인하고 포트 포워딩 섹션으로 이동하세요. 예를 들어, 우리는 DLink 라우터를 사용하여 웹 서버의 포트(80 및 443) 및 사설 IP(192.168.0.100)를 ISP에서 할당한 전용 IP 공용 IP로 포트 포워딩하는 예를 보여줍니다.

귀하의 경우, 웹 서버의 포트 및 사설 IP를 지정하고 변경 사항을 저장하세요.

Port Forwarding for WordPress

변경 사항을 저장하려면 라우터를 다시 부팅해야 할 수도 있습니다. 따라서 그대로 진행해 주세요.

포트 포워딩이 올바르게 수행되면 이제 공용 IP 주소를 통해 내부 네트워크 외부에서 웹 서버에 액세스할 수 있습니다.

결론

이 안내서에서는 Linux 상에서 Apache를 사용하여 자체 웹 서버를 호스팅하는 방법을 보여드렸습니다. 이 안내서에 대한 피드백을 환영합니다.

Source:
https://www.tecmint.com/host-website-locally/