서버 운영/워드프레스(Wordpress)

워드프레스(WordPress) 5.2 Jaco 멀티사이트 구축 - XAMPP for Windows

씨실과 날실 2019. 5. 22. 09:00

[관련 게시물]

워드프레스(WordPress) 백업

2019/03/09 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 백업

워드프레스(WordPress) 판올림

2019/02/28 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.1 Betty(베티) 공개 소식

2019/05/18 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(WordPress) 5.2 Jaco 공개

워드프레스(WordPress) 5.0.3 - LAMP

2019/02/06 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 설치

2019/02/09 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 설정

2019/02/10 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 플러그인 업데이트, 설치와 활성화

2019/02/11 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 추천 플러그인

2019/02/12 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 테마 교체, 설치와 활성화

2019/02/18 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 카테고리 구성

2019/02/20 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 메뉴 설정

2019/02/21 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 카테고리 순서 변경

2019/02/22 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 01 - 네트워크 설치 메뉴 활성화

2019/02/22 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 02 - 네트워크 활성화(플러그인 비활성화, wp-config.php 파일과 .htaccess 파일 편집)

2019/02/23 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 03 - 네트워크 활성화(Vi를 이용한 wp-config.php 파일과 .htaccess 파일 편집)

2019/02/24 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 04 - 플러그인 재활성화

2019/02/25 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 05 - 새로운 사용자 생성

2019/02/26 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 06 - 새로운 사이트 생성

2019/02/27 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(Wordpress) 5.0.3 멀티사이트 구성 07 - 새로운 사이트 기본 설정

워드프레스(WordPress) 5.2 - XAMPP

2019/05/20 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(WordPress) 5.2 Jaco 설치 - XAMPP for Windows

2019/05/17 - [서버 운영/워드프레스(Wordpress)] - 워드프레스(WordPress) 5.2 Jaco 멀티사이트 구축 - XAMPP for Windows

최근에 워드프레스(WordPress) 5.2 설치 연재를 했습니다. 이제 이렇게 설치한 워드프레스로 멀티사이트를 구축해보도록 하겠습니다.

사실 워드프레스 5.2의 설치 과정은 이전 버전의 그것과 큰 차이가 없어 한 번이라도 워드프레스를 설치해본 경험이 있는 분들이라면 쉽게 설치할 수 있습니다. 이번에 연재할 이 멀티사이트 구축은 전에 다루었던 워드프레스 5.0.3의 멀티사이트 구축과 과정이 완전히 동일하여 굳이 이렇게 따로 연재할 필요 없이 이전 연재 링크를 걸어주는 것으로 충분해보입니다만 어쩌다보니 워드프레스 5.2 설치 연재를 준비하면서 같이 준비하게 되어 다시금 적게 되었습니다.

이후 워드프레스 연재에서 워드프레스 설치, 업데이트와 멀티사이트 구축 등은 과정의 커다란 변화가 없다면 따로 포스팅하지 않도록 하겠습니다.

이번 멀티사이트 구축 연재는 실제 멀티사이트 생성을 위한 워드프레스 네트워크 구축 수준으로 내용을 최소화하도록 하겠습니다. 워드프레스 네트워크 구축 이후 실제 멀티 사이트 구축 과정 등 자세한 내용은 이전 연재를 참고하시기 바랍니다.

플러그인 비활성화

워드프레스 멀티사이트를 구축하려면 가장 먼저 활성화되어 있는플러그인들을 모두 비활성화해주어야 합니다.

워드프레스 설치 직후에는 위 그림처럼 기본적으로 모든 플러그인들이 비활성화되어 있습니다. 따라서 워드프레스 설치 후 따로 플러그인 설정 작업을 하지 않았다면 플러그인 설정은 신ㅁ경쓰지 않고 바로 멀티사이트 구축 작업으로 들어가셔도 됩니다.

위 그림은 플러그인들이 활성화되어 있는 모습입니다. 이 활성화되어 있는 플러그인들을 모두 비활성화해야 멀티사이트를 구축할 수 있습니다.

참고로 Akismet Anti-Spam 플러그인을 제대로 사용하려면 단순히 활성화하는 것 뿐만 아니라 Akismet API Key를 얻어 입력해주어야 합니다. 활성화 방법은 아래 링크를 참고하시기 바랍니다.

 

위 ㅍ그림처럼 모든 플러그인들을 선택하고 일괄 작업 드롭다운 메뉴에서 비활성화를 선택하고 적용 버튼을 눌러 줍니다.

그럼 위 그림처럼 선택한 플러그인을 비활성화했다는 안내와 함께 플러그인들이 비활성화돕니다.

네트워크 설치 메뉴 생성

워드프레스 설치 직후 알림판의 도구 메뉴를 보면 위 그림처럼 6개의 하위 메뉴가 나타납니다. 그러나 멀티사이트를 구축하려면 이 도구 메뉴에 새로운 메뉴 하나가 더 생성되어야 합니다. 그러기 위해서는 워드프레스의 wp-config.php 파일에 구문 한 줄을 추가해주어야 합니다.

위 그림처럼 /* That's all, stop editing! Happy publishing. */ 문구 위에 아래와 같은 구문을 적고 저장해줍니다.

define( 'WP_ALLOW_MULTISITE', true );

이때 중요한 것은 구뭉 끝에 ;(세미콜론)을 빠뜨려서는 안된다는 것입니다. php 문서를 작성할 때 하나의 구문이 끝나면 항상 이 ;(세미콜론)을 적어 완성된 굼ㄴ임을 알려주어야 합니다.

wp-config.php 파일을 수정, 저장 후 워드프레스 알림판 화면을 새로고침화면 위 그림처럼 도구에 네트워크 설치라는 메뉴가 생성되었음을 확인할 수 있습니다. 이 네트워크 설치 메뉴를 눌러줍니다.

워드프레스 사이트의 네트워크 생성

워드프레스 사이트의 네트워크 생성 화면이 나타납니다. 실제 서비스 중인 일반적인 서버에 워드프레스를 설치했다면 서브 디렉토리 설치를 사용할 지, 서브 도메인 설치를 사용할 지 선택할 수 있습니다. 그러나 localhost에 워드프레스를 설치한 경우 위 그림처럼 서브 디렉토리 설치만 사용 가능합니다.

기입항목을 모두 채우고 설치 버튼을 눌러줍니다.

그러면 현재 워드프레스가 설치된 서버 환경을 파악 후 그에 걸맞는 추가 코드를 안내해줍니다. 해당 페이지의 안내에 따라 wp-config.php와 .htaccess 파일에 각각 자동 생성된 코드를 추가 또는 교체해줍니다.

wp-config.php 파일

wp-config.php 파일에 /* That's all, stop editing! Happy publishing. */ 문구 위에 자동 생성된 코드를 추가해줍니다.

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost');
define('PATH_CURRENT_SITE', '/wp/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

참고로 위 코드는 예시일 뿐입니다. 위 코드는 서버 환경에 따라 바뀌므로 워드프레스가 제공하는 코드를 추가하시기 바랍니다.

.htaccess 파일

워드프레스의 .htaccess파일 원본은 위 그림과 같습니다.


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

# END WordPress

이것을 아래처럼 수정해주시면 됩니다.


# BEGIN WordPress
<IfModule mod_rewrite.c>
        RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress

참고로 교체된 위 코드 역시 예시에 불과합니다. 서버 환경에 따라 코드 내용이 바뀌므로 워드프레스가 제공하는 코드로 교체해주시기 바랍니다.

위 교체 방식이 정석적인 방식입니다. 그러나 개인적으로 위 방식은 추천하지 않습니다. 원래 코드 파일을 수정할 때는 항상 원본 파일을 백업해주는 것이 좋습니다. 그러나 코드를 수정할 때마다 매번 백업하는 것은 번거로운 것이 사실입니다. 이런 경우 원본 내용을 파일을 수정할 때 남기는 방법을 사용하면 문제 발생 시 손쉽게 복원할 수 있습니다.

위 그림처럼 원본 내용을 주석 처리를 활용해 남기면 나중에 문제가 발생하더라도 손쉽게 복원할 수 있고, 백업의 번거로움을 피할 수 있습니다. 무엇보다 주석 기능을 잘 활용하여 코드 수정 일시와, 이유, 수정전 코드 등을 체계적으로 기록한다면 코드 유지 보수에 굉장히 유리합니다.

물론 이것도 지나치면 불필요하게 시스템 자원을 소모하게 되므로 파일을 백업하는 것도 중요합니다.


# BEGIN WordPress
<IfModule mod_rewrite.c>
        RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# RewriteEngine On
# RewriteBase /wp/
# RewriteRule ^index\.php$ - [L]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /wp/index.php [L]
</IfModule>

# END WordPress

보시면 아시다시피 <IfModule mod_rewrite.c>와 </IfModule> 사이에 코드 내용을 교체해주시면 되며, 원본 내용 등은 # 을 이용해 주석 처리해주시면 됩니다.

wp-config.php와 .htaccess 파일을 수정 및 저장 후 워드프레스에 다시 로그인해줍니다.

네트워크 관리자 생성 후

도구의 네트워크 설치 메뉴가 다시 사라진 것을 볼 수 있습니다. 이미 네트워크가 구축되었므로 현 사이트 알림판에서는 필요 없으므로 제거딘 것입니다.

그리고 워드프레스 관리자 화면 좌측 최상단을 보면 위 그림처럼 내 사이트라는 메뉴가 생기고 그 밑으로 네트워크 관리나 메뉴와 그 하위 메뉴들이 생성된 것을 볼 수 있습니다.

네트워크 관리자 - 알림판을 클릭하면 위 그림과 같은 화면을 보게 됩니다.

네트워크 설정

네트워크 관리자 - 설정 메뉴에 들어가 네트워크 설정을 주물러 주시면 됩니다.

네트워크 테마 활성화

워드프레스 네트워크를 구축한 이후 사용할 테마를 활성화해주시면 됩니다.

참고로 워드프레스 네트워크를 구성한 이후에는 새로운 테마를 추가하려면 네트워크 관리자 테마에서 추가할 수 있습니다.

네트워크 플러그인 활성화

워드프레스 네트워크를 구축한 이후 사용할 플러그인을 활성화해주시면 됩니다.

참고로 테마와 마찬가지로 워드프레스 네트워크를 구성한 이후에는 새로운 플러그인을 추가하려면 네트워크 관리자 플러그인에서 추가할 수 있습니다.

멀티사이트 생성

워드프레스 네트워크를 구축한 이후에 비로소 멀티사이트를 구성할 수 있는데요. 이 내용은 이전 연재 내용으로 대신하겠습니다.

 멀티사이트(하위 사이트) 생성 후 모습

위 그림은 워드프래스 멀티사이트 시스템 구축 후의 하위 사이트(블로그) 접속 화면입니다.