지식 Profitserver 서비스를 사용하기 위한 간단한 지침
본관 지식 Linux에서 웹 서버(Apache-PHP-MySQL/MariaDB)를 구성하는 방법

Linux에서 웹 서버(Apache-PHP-MySQL/MariaDB)를 구성하는 방법


이 글에서는 Linux를 실행하는 서버에서 웹 환경을 구성하는 방법에 대한 단계별 지침을 제공합니다. 우선, 일반적인 웹 서버는 몇 가지 상호 작용하는 구성 요소로 구성되어 있다는 것을 이해해야 합니다.

  • HTTP 서버
  • 프로그래밍 언어 인터프리터
  • 데이터베이스 관리 시스템(DBMS)

웹사이트를 관리하려면 콘텐츠 관리 시스템(CMS), 데이터베이스 관리를 위한 웹 인터페이스, FTP 접속도 설정해야 합니다.

Linux에서 매우 인기 있는 구성인 Apache-PHP-MySQL(MariaDB)을 설정하는 것을 고려해 보겠습니다. 또한 vsftpd ftp 서버, 데이터베이스 관리를 위한 웹 인터페이스인 phpMyAdmin, 그리고 콘텐츠 관리 시스템인 WordPress도 설치합니다.

먼저 VPS 서버 또는 전용 서버를 주문해 주세요 . 예를 들어, 저희는 고정 IP 주소를 가진 Ubuntu Server 18.04 기반의 가상 서버를 사용했습니다. 모든 명령은 루트 사용자 권한으로 실행되었습니다.

Apache HTTP 서버 구성

1. 설치

apt install apache2

설치가 완료되면 브라우저를 열고 "http://[서버 IP 주소]"를 확인하세요.

Apache HTTP 서버 구성

위 스크린샷에서 이와 같은 시작 페이지가 보인다면 HTTP 서버가 작동하고 있다는 의미입니다.

2. 테스트 페이지 만들기

웹사이트의 기본 루트 디렉토리는 "/var/www/html" 입니다 . 방금 보신 환영 페이지가 바로 이 디렉토리에 있습니다. 이제 가상 호스트를 위한 별도의 디렉토리 "/var/www/sites" 와 그 하위 폴더 "/var/www/sites/site1"을 만들어 테스트 웹사이트의 인덱스 페이지를 저장해 보겠습니다.

cd /var/www/

mkdir -p sites/site1

echo "<H1>Welcome</H1>" > sites/site1/index.html

결과적으로 "/var/www/sites/site1/index.html" 파일에는 HTML 코드가 한 줄만 포함되어야 합니다.

<H1>Welcome</H1>

3. Apache 서버 구성

웹사이트의 설정 파일은 “/etc/apache2/sites-available/” 경로에 있습니다. “000-default.conf” 파일의 기본 설정을 기반으로 새 가상 호스트용 설정 파일을 생성해 보겠습니다.

cd /etc/apache2/sites-available/

cp 000-default.conf site1.conf

"site1.conf" 파일을 열고 "DocumentRoot" 속성을 변경하세요 . 웹사이트 경로를 값으로 입력하면 됩니다. 저희 예시에서는 "/var/www/sites/site1" 입니다.

아파치 서버 구성

이 단계에서는 여러 웹사이트의 동시 작동을 구성할 필요가 없으므로 기본 웹사이트를 비활성화하고 새 사이트를 활성화할 수 있습니다. 서버 구성을 다시 로드하여 변경 사항을 적용합니다.

a2dissite 000-default

a2ensite site1

systemctl reload apache2

"http://[서버 IP 주소]" 링크를 다시 열고 기본 환영 페이지 대신 새 페이지가 표시되는지 확인하십시오.

아파치 서버 구성

HTTP 서버 구성을 마쳤으므로 다음 단계로 넘어갈 수 있습니다.

FTP 서버 구성

1. 설치

FTP 서버와 가상 사용자 설정에 필요한 추가 패키지인 "db-util" 을 설치해 보겠습니다.

apt install vsftpd db-util

2. 로컬 계정 생성

vsftpd 서버는 매우 유연한 방식으로 액세스 권한을 구성할 수 있게 해줍니다. 작업을 위해 ftp 사용자에게 다음을 제공해야 합니다.

  • 내용에 대한 전체 액세스 “/var/www/사이트/”;
  • 위에 있는 모든 것을 비활성화하세요 “/var/www/”;
  • 가상 계정으로 연결

로그인 권한은 없지만 홈 폴더 "/var/www/" 에 접근 권한이 있는 "virtual" 이라는 로컬 계정을 생성합니다 . 이 계정은 FTP 사용자가 서버에 연결하는 데 사용됩니다.

useradd -d /var/www virtual

기본적으로 "/var/www" 폴더 의 소유자는 "루트" 입니다 . FTP 사용자가 웹사이트 콘텐츠를 수정할 수 있도록 하려면 "virtual" 하위 폴더를 포함하여 "/var/www/sites/" 의 소유자를 변경해 보겠습니다.

chown -R virtual:root /var/www/sites

결과적으로 "virtual" 사용자는 "/var/www/" 의 내용을 볼 수 있고 "/var/www/sites/" 하위 폴더 에 쓰기 작업을 할 수 있게 됩니다.

3. 구성

주요 설정은 "/etc/vsftpd.conf" 파일에 있으므로 , 해당 파일을 열고 다음과 같이 편집해 보겠습니다.

#enable virtual users

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=virtual
#configure permission

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_world_readable_only=NO

anon_umask=0022

chroot_local_user=YES
#launch settings

listen=YES

pasv_min_port=30000

pasv_max_port=30999

4. 데이터베이스 생성

가상 계좌의 데이터를 저장하려면 데이터베이스가 필요합니다.

먼저 홈 폴더에 "users.txt"라는 간단한 텍스트 파일을 만들고, 각 줄마다 가상 사용자의 접근 정보(로그인 이름과 비밀번호)를 입력해 보겠습니다 . 예를 들어, "ftp" 라는 로그인 이름 과 "Qwe123" 이라는 비밀번호를 가진 가상 사용자가 필요하다고 가정해 보겠습니다 . 그러면 파일은 다음과 같이 될 것입니다.

ftp

Qwe123

데이터베이스를 만들어 보자

db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db

기본 PAM 파일인 "/etc/pam.d/vsftp" 를 다음과 같이 수정해 보겠습니다.

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login

"pam_userdb.so" 라이브러리 의 경로는 다를 수 있지만, 필요한 경우 변경할 수 있습니다.

변경 사항을 적용하려면 vsftpd 서버를 다시 로드하세요.

systemctl restart vsftpd

FTP 서버 구성을 완료했습니다.

연결 세부 정보:

  • ftp://[서버의 IP 주소]
  • 로그인: ftp
  • 비밀번호: Qwe123

PHP 서버 구성

1. PHP 설치

오늘의 최신 안정된 PHP 버전은 php 7.4.5인데, 이는 공식 Ubuntu 저장소에 포함되어 있지 않습니다. 타사 저장소에 연결하여 최신 버전의 PHP를 설치해 보겠습니다.

apt update

apt install software-properties-common

add-apt-repository ppa:ondrej/php

apt update

apt install php7.4

2. 검사

PHP가 실행되려면 웹 페이지 파일의 확장자가 “.php” 여야 합니다 . 테스트 페이지의 이름을 바꿔 보겠습니다.

cd /var/www/sites/site1/

mv index.html index.php

"/var/www/sites/site1/index.php" 파일에 다음 PHP 코드를 추가하세요 . 그러면 파일은 다음과 같이 보일 것입니다.

<H1>Welcome</H1>

<?php

phpinfo();

?>

변경 사항을 저장하고 브라우저에서 결과를 확인하세요.

PHP 서버 구성 - 설치 및 확인

함수 "phpinfo()" 의 결과가 표시된다면 PHP 인터프리터가 제대로 작동하고 있는 것입니다. 이제 다음 단계로 넘어가겠습니다.

MySQL(MariaDB) 구성

1. 설치

MariaDB와 MySQL용 PHP 모듈을 설치한 다음 Apache를 다시 로드해 보겠습니다.

apt install mariadb-server php-mysql

systemctl restart apache2

테스트 페이지를 새로고침하고 PHP 설정 테이블에서 PDO 섹션으로 이동하세요. "PDO_mysql" 섹션이 보이면 MySQL 드라이버가 올바르게 설치된 것입니다.

MySQL(MariaDB) 설치 및 구성

다음으로 MariaDB의 초기 보안 구성을 수행하고 "root" 사용자의 암호를 설정하고 원격 액세스를 비활성화하고 모든 게스트 계정을 삭제해야 합니다.

mysql_secure_installation

첫 번째 단계에서는 DBMS에 접근하기 위해 "root" 사용자의 암호를 입력해야 합니다 . 암호가 없는 경우 Enter 키를 누르세요. 설치 후 "root" 사용자에게는 암호가 설정되어 있지 않으므로 "Enter" 키만 누르면 됩니다.

MariaDB에는 운영체제 계정과는 전혀 관련 없는 자체 계정이 이미 존재한다는 점에 유의해 주십시오. 따라서 MariaDB에서 우리가 다루는 유일한 사용자는 "root" 입니다.

  MySQL: 계정 생성 및 비밀번호 설정

그 후 설정 프로그램에서 루트 사용자의 비밀번호를 설정하라는 메시지가 나타납니다. "Y" 를 입력하여 확인하고 새 비밀번호를 입력하세요. 저희의 경우 새 비밀번호는 "Qwe123" 입니다.

  MySQL: 계정 생성 및 비밀번호 설정

마지막 질문까지 나머지 모든 질문에 "Y" 라고 답하십시오 .

구성이 완료되었습니다!

MariaDB 액세스 세부 정보:

  • 로그인: 루트
  • 비밀번호: Qwe123

phpMyAdmin 구성

1. 설치

PHP에 필요한 확장 프로그램인 mbstring을 설치해 보겠습니다.

apt install php-mbstring

공식 저장소에는 오래된 버전의 phpMyAdmin만 있으므로 새 버전을 수동으로 설치하겠습니다.

프로젝트 공식 웹사이트 " https://www.phpmyadmin.net/ "에 접속하여 최신 압축 파일을 다운로드하세요.

phpMyAdmin 설치 및 구성

FTP 클라이언트를 사용하여 압축 파일을 서버의 "/var/www/sites/" 폴더에 복사하십시오.

압축을 푼 폴더의 이름을 "phpMyAdmin" 으로 변경하세요. "unzip" 유틸리티를 설치하는 것을 잊지 마세요 . 압축 해제 후에는 압축 파일을 삭제해도 됩니다.

apt install unzip

cd /var/www/sites/

unzip phpMyAdmin-5.0.2-all-languages.zip

mv phpMyAdmin-5.0.2-all-languages phpMyAdmin

rm phpMyAdmin-5.0.2-all-languages.zip

임시 파일 용 폴더 인 “/var/www/sites/phpMyAdmin/tmp” 를 생성 하고 모든 사용자에게 접근 권한을 부여하십시오. 그렇지 않으면 phpMyAdmin에서 임시 폴더에 대한 접근이 거부되었다는 오류 메시지가 표시됩니다.

cd /var/www/sites/phpMyAdmin/

mkdir tmp

chmod 777 tmp

2. 별칭 만들기

phpMyAdmin은 별도의 가상 호스트가 아니고 루트 디렉토리 외부에 위치하므로 별칭을 구성해 보겠습니다.

“/etc/apache2/mods-available/alias.conf” 파일을 열고 다음 줄을 추가하세요.

Alias /pma “/var/www/sites/phpMyAdmin"

이 섹션 내부:

<IfModule alias_module>

</IfModule>
phpMyAdmin: 별칭 만들기

변경 사항을 적용하려면 Apache를 다시 로드하세요.

systemctl reload apache2

별칭이 설정되었으므로 "http://[서버 IP 주소]/pma" 를 통해 phpMyAdmin에 접속할 수 있습니다 .

3. 데이터베이스 준비

MariaDB의 초기 구성에서 root 사용자 사용을 제한했기 때문에 phpMyAdmin에 액세스하는 데 사용할 모든 권한이 있는 새 계정을 만들어야 합니다.

게다가 phpMyAdmin의 추가 기능을 사용하려면 서비스 데이터베이스와 이에 액세스할 수 있는 계정이 필요합니다.

계정을 만들어 보자

mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit

두 번째 요청의 데이터베이스 이름은 "… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …"와 같이 뒤로 가집니다.

결과적으로 MariaDB에는 두 개의 계정이 생성됩니다.

  • 로그인: pma, 비밀번호: Qwe123 전체 액세스, phpMyAdmin에 로그인하는 데 사용됩니다.
  • 로그인: pmaservice, 비밀번호: Qwe123 추가 기능을 작동하려면 서비스 계정이 필요합니다.

다음 단계에서는 이러한 세부 정보를 구성 파일 "config.inc.php" 에 설정하겠습니다.

다음으로 “phpMyAdmin/sql/create_tables.sql” 파일에서 데이터베이스를 가져와야 합니다.

phpMyAdmin의 도움을 받아 가져와 보겠습니다.

"http://[서버 IP 주소]/pma" 링크를 여세요.

로그인 아이디는 “pma” , 비밀번호는 “Qwe123”을 입력하세요.

[가져오기] 로 이동하여 [파일 선택]을 클릭하고 phpMyAdmin의 루트 디렉터리에 있는 [sql/create_tables.sql] 파일을 선택하세요 . PC에 [phpMyAdmin] 폴더가 있고 그 안에 파일이 있을 것입니다. 필요한 경우 압축을 해제하세요.

phpmyadmin 설정

가져오기를 시작하려면 "다음"을 클릭하세요 .

4. 구성

템플릿에서 구성 파일을 복사해 보겠습니다.

cd /var/www/sites/phpMyAdmin/

cp config.sample.inc.php config.inc.php

"/var/www/sites/phpMyAdmin/config.inc.php" 설정 파일을 열고 다음과 같이 변경해 보겠습니다.

속성 “$cfg['blowfish_secret']” 에 32자리의 임의 값을 설정하세요 . 암호 생성기를 사용해도 됩니다.

Linux 서버에 WordPress를 설치하고 구성하는 방법

"phpMyAdmin 구성 저장 설정" 섹션 의 모든 줄에서 주석을 제거하고 "controluser""controlpass" 속성 에 MariaDB 서비스 계정의 로그인과 비밀번호를 적절하게 설정하십시오 . 저희의 경우 pmaserviceQwe123 입니다.

Linux 서버에 WordPress를 설치하고 구성하는 방법

변경 사항을 저장하십시오.

phpMyadmin에 대한 액세스 세부 정보:

  • http://[server’s_ip_address]/pma/
  • 로그인: pma
  • 비밀번호: Qwe123

Linux 서버에 WordPress를 설치하고 구성하는 방법

1. WordPress 패키지 및 파일 배치

공식 워드프레스 웹사이트 " https://ru.wordpress.org/ "에 접속하여 압축 파일을 로컬 PC에 다운로드하세요.

압축 파일을 서버의 "/var/www/sites/" 폴더에 업로드한 다음, "wordpress " 폴더 에 압축을 해제하세요.

"/var/www/sites/ site1/" 웹사이트 의 루트 폴더인 "/var/www/sites/ wordpress/" 의 내용을 복사하세요.

루트 권한으로 콘솔을 통해 파일을 복사했으므로, "virtual" 폴더의 내용을 포함하여 "/var/www/sites/" 폴더의 소유자를 변경해야 합니다 . 이는 클라이언트를 통한 FTP 연결에 대한 전체 액세스 권한을 부여하는 데 필요합니다.

cd /var/www/sites/

tar -xzvf wordpress-5.4-ru_RU.tar.gz

cp -R wordpress/* site1/

chown -R virtual:root /var/www/sites

2. WordPress용 데이터베이스 생성

phpMyAdmin에 로그인하고 "데이터베이스 만들기"를 클릭합니다. 임의의 데이터베이스 이름을 지정하고, 우리의 경우 "wordpress_db"를 지정하고 "만들기" 버튼을 클릭합니다.

WordPress용 데이터베이스 만들기

왼쪽 섹션에서 새 데이터베이스를 선택하고 "권한"을 클릭하십시오.

WordPress용 데이터베이스 만들기

그런 다음 "사용자 계정 추가"를 클릭합니다.

열린 창에 로그인과 비밀번호( wpservice / Qwe123 )를 입력하고 "wordpress_db에 모든 권한 부여"를 선택한 다음 "다음"을 클릭하세요.

WordPress용 데이터베이스에 사용자 계정 추가

다음 페이지에서 "모두 취소" 를 클릭하여 데이터베이스 수준의 모든 권한을 재설정한 다음 "다음"을 클릭하십시오.

WordPress용 데이터베이스에 사용자 계정 추가

3. Linux 서버에서 WordPress 구성

웹사이트의 루트 디렉토리로 이동하여 템플릿에서 구성 파일을 복사합니다.

cd /var/www/sites/site1/

cp wp-config-sample.php wp-config.php

“wp-config.php” 파일을 열고 이전 단계에서 생성한 데이터베이스 연결 매개변수를 입력한 다음 변경 사항을 저장합니다.

Linux 서버에서 WordPress 구성

4. CMS 워드프레스 설치

브라우저에서 다음 링크 ("http://[서버 IP 주소]/wp-admin/install.php") 를 여세요.

모든 필드를 입력하고 "WordPress 설치"를 클릭하세요 . 임의의 사용자 이름과 비밀번호를 설정하세요. 저희의 경우, 사용자 이름은 wpadmin 이고 비밀번호는 Qwe123 입니다.

이러한 세부정보는 WordPress에 접근하는 데 사용됩니다.

Linux 서버에 CMS WordPress 설치

설치가 완료되면 "http://[서버 IP 주소]/wp-login.php" 링크를 열고 접속 정보를 입력하여 WordPress에 로그인하세요.

Linux 서버에 CMS WordPress 설치

메인 페이지에서 WordPress 템플릿 중 하나를 볼 수 있습니다.

Linux 서버에 CMS WordPress 설치

구성이 완료되었습니다.

WordPress 접근 세부 정보:

  • http://[server’s_ip_address]/wp-login.php
  • 로그인: wpadmin
  • 비밀번호: Qwe123
❮ 이전 기사 robots.txt에
다음 기사 ❯ .htaccess 파일 구성

VPS에 대해 문의하세요

저희는 언제든지 여러분의 질문에 답변할 준비가 되어 있습니다.