웹사이트 검색

단일 Ubuntu VPS에서 여러 WordPress 사이트를 설정하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

소개

WordPress는 사이트를 빠르고 쉽게 시작할 수 있도록 도와주는 인기 있는 CMS(콘텐츠 관리 시스템)입니다. 경우에 따라 동일한 서버에서 관련 없는 여러 사이트를 호스팅해야 합니다.

이 가이드는 하나의 VPS에서 두 개의 별도 WordPress 인스턴스를 호스팅하는 방법을 설명합니다. 그들은 각각 고유한 도메인 이름을 갖게 됩니다. 이는 다중 사이트 설정과 다릅니다.

우리는 가상 호스트를 사용하여 이를 달성할 것입니다. 이 가이드는 Ubuntu 12.04 VPS 서버를 사용하지만 다른 배포판도 비슷한 방식으로 작동해야 합니다.

전제 조건

이 가이드에는 다른 문서에서 자세히 다루는 몇 가지 요구 사항이 있습니다. 시작하기 전에 다음을 완료했는지 확인하십시오.

  • WordPress 사이트를 호스팅할 새 DigitalOcean VPS를 만듭니다. 이 가이드에 따라 초기 서버 구성을 완료합니다.
  • DigitalOcean으로 두 개의 도메인 이름을 설정합니다. 이 가이드를 사용하여 DigitalOcean으로 도메인 이름을 설정하는 방법을 알아보세요.
  • 이 가이드를 사용하여 Ubuntu에 LAMP 스택을 설치합니다.

이 시점에서 Ubuntu에 LAMP가 설치되어 있어야 하며 두 도메인 이름 모두 드롭릿을 가리켜야 합니다.

웹 브라우저에서 도메인 이름을 방문하여 이것이 사실인지 확인하십시오. 두 도메인 모두 동일한 기본 Apache 색인 페이지를 제공해야 합니다.

도메인이 이 페이지로 연결되지 않으면 DNS 변경 사항이 전파될 때까지 기다려야 하거나 이전 단계에서 잘못 구성한 것이 있습니다. 이 문제가 해결될 때까지 계속하지 마십시오.

워드프레스 다운로드

준비가 되면 서버에 로그인하고 홈 디렉토리로 변경합니다. 여기에서 파일을 다운로드합니다.

cd
wget http://wordpress.org/latest.tar.gz

다음 명령을 실행하여 아카이브 파일의 압축을 풀고 압축을 풉니다.

tar xzvf latest.tar.gz

사이트 데이터베이스 및 사용자 생성

계속하기 전에 MySQL 내의 각 사이트에 대해 독립적인 데이터베이스와 사용자를 구성해야 합니다. 이렇게 하면 사이트 데이터가 분리됩니다.

이 가이드의 목적을 위해 다음 정보를 사용합니다.

Site Name firstsite.com secondsite.com
Database Name FirstDatabase SecondDatabase
Database User FirstUser SecondUser
Database Password FirstPassword SecondPassword

위의 표는 사용할 명령에 대한 컨텍스트를 제공하기 위해 제공됩니다. 다음 명령을 작성할 때 자신의 정보를 대체하십시오.

MySQL 설치 중에 구성한 관리자 계정을 사용하여 MySQL에 로그인합니다.

mysql -u root -p

MySQL 루트 암호를 입력하라는 메시지가 표시된 다음 MySQL 프롬프트로 이동합니다.

다음 명령을 사용하여 두 개의 데이터베이스를 만듭니다.

CREATE DATABASE FirstDatabase;
CREATE DATABASE SecondDatabase;

각 데이터베이스와 연결될 사용자를 만듭니다.

CREATE USER FirstUser@localhost;
CREATE USER SecondUser@localhost;

다음으로 각 계정에 대한 암호 액세스를 설정합니다.

SET PASSWORD FOR FirstUser@localhost= PASSWORD("FirstPassword");
SET PASSWORD FOR SecondUser@localhost= PASSWORD("SecondPassword");

새 사용자에게 권한을 부여하여 마무리합니다. 그러면 데이터베이스 사용자가 해당 데이터베이스와 연결되고 적절한 권한이 부여됩니다.

GRANT ALL PRIVILEGES ON FirstDatabase.* TO FirstUser@localhost IDENTIFIED BY 'FirstPassword';
GRANT ALL PRIVILEGES ON SecondDatabase.* TO SecondUser@localhost IDENTIFIED BY 'SecondPassword';

변경 사항을 구현하려면 MySQL 권한 정보를 새로 고칩니다.

FLUSH PRIVILEGES;

쉘 세션으로 돌아가려면 MySQL을 종료하십시오.

exit

사이트 루트 디렉터리 구성

서버의 웹 루트에 있는 개별 디렉토리 내에 두 사이트를 모두 설치합니다.

"/var/www/" 디렉토리로 변경합니다.

cd /var/www

각 사이트에 대한 디렉토리를 만듭니다. 다음은 사이트 파일을 저장합니다.

sudo mkdir FirstSite
sudo mkdir SecondSite

웹 콘텐츠를 폴더로 이동하기 전에 샘플 구성을 복사합니다.

cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php

마지막으로 서버의 웹 루트 아래에 생성한 디렉터리에 파일을 복사합니다.

sudo rsync -avP ~/wordpress/ /var/www/FirstSite/
sudo rsync -avP ~/wordpress/ /var/www/SecondSite/

Apache 웹 사용자에게 디렉토리 소유권을 부여한 다음 Linux 사용자 이름을 웹 그룹에 추가하십시오.

sudo chown www-data:www-data * -R
sudo usermod -a -G www-data linux_user_name

워드프레스 구성

사이트에 대한 정보로 각 사이트를 구성합니다.

첫 번째 사이트 구성

디렉터리를 첫 번째 사이트 문서 루트로 변경합니다.

cd /var/www/FirstSite

편집을 위해 WordPress 구성 파일을 엽니다.

sudo nano wp-config.php

아래 필드가 포함된 섹션을 찾아 첫 번째 사이트의 데이터베이스, 사용자 이름 및 비밀번호를 대체하십시오.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'FirstDatabase');

/** MySQL database username */
define('DB_USER', 'FirstUser');

/** MySQL database password */
define('DB_PASSWORD', 'FirstPassword');

저장 및 종료.

두 번째 사이트 구성

디렉터리를 두 번째 사이트 문서 루트로 변경합니다.

 cd /var/www/SecondSite

편집을 위해 WordPress 구성 파일을 엽니다.

sudo nano wp-config.php

이전 사이트에 대해 편집한 동일한 섹션을 찾습니다. 이번에는 두 번째 사이트에 대한 정보를 입력하게 됩니다.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'SecondDatabase');

/** MySQL database username */
define('DB_USER', 'SecondUser');

/** MySQL database password */
define('DB_PASSWORD', 'SecondPassword');

저장 및 종료.

Apache 가상 호스트 구성

각 도메인에서 각각의 디렉터리로 트래픽을 보내도록 Apache를 구성해야 합니다. 각 도메인에 대해 별도의 가상 호스트 파일을 생성하여 이를 수행합니다.

디렉터리를 Apache의 사용 가능한 사이트 디렉터리로 변경합니다.

cd /etc/apache2/sites-available

기본 가상 호스트 파일을 복사하여 각 사이트에 대한 새 가상 호스트 파일을 만듭니다.

sudo cp default FirstSite
sudo cp default SecondSite

첫 번째 사이트 가상 호스트 구성

복사한 첫 번째 파일을 열어 첫 번째 사이트에 대한 가상 호스트를 구성합니다.

sudo nano FirstSite

다음과 일치하도록 파일의 정보를 변경하십시오. 첫 번째 사이트와 일치하도록 정보를 빨간색으로 대체해야 합니다.

<VirtualHost *:80>
	ServerAdmin your_email_address
	ServerName firstsite.com
	ServerAlias www.firstsite.com
	
	DocumentRoot /var/www/FirstSite
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/FirstSite>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
. . .
. . .

예쁜 퍼머링크를 활성화해야 하는 경우 "" 블록 내의 "AllowOverride None"을 "AllowOverride All"로 변경할 수 있습니다. 여기에서 예쁜 퍼머링크에 대한 요구 사항에 대해 자세히 알아볼 수 있습니다.

변경한 후 파일을 저장하고 닫습니다.

두 번째 사이트 가상 호스트 구성

편집을 위해 두 번째 가상 호스트 파일을 엽니다.

sudo nano SecondSite

두 번째 사이트 정보를 반영하도록 정보를 변경합니다.

<VirtualHost *:80>
	ServerAdmin your_email_address
	ServerName secondsite.com
	ServerAlias www.secondsite.com
	
	DocumentRoot /var/www/SecondSite
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/SecondSite>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
. . .
. . .

파일을 저장하고 닫습니다.

최종 구성

사이트를 작동시키는 데 필요한 몇 가지 추가 단계가 있습니다.

첫째, WordPress가 올바르게 작동하려면 추가 PHP 모듈이 설치되어 있어야 합니다. 다음을 입력하여 설치하십시오.

sudo apt-get install php5-gd

다음으로 다음을 입력하여 생성한 가상 호스트 파일을 활성화합니다.

sudo a2ensite FirstSite
sudo a2ensite SecondSite

마지막으로 Apache를 다시 로드하여 변경 사항을 읽도록 합니다.

sudo service apache2 reload

결과 보기

WordPress 사이트를 보려면 웹 브라우저에서 도메인 이름으로 이동하기만 하면 됩니다.

모든 것을 올바르게 구성했다면 다음과 같은 페이지가 표시되어야 합니다.

이제 각 사이트에 독립적으로 로그인하고 구성할 수 있습니다. 이러한 사이트는 완전히 분리되어 있으며 완전히 다른 두 개의 VPS 서버에 있는 것처럼 관리할 수 있습니다.