| [워드프레스홈페이지] DB 패스워드 변경 후 홈페이지 접속이 되지 않습니다 |
워드프레스는 MYSQL(MARIADB) DBMS를 사용하여 구축된 CMS 툴이며, 서버 로컬 또는 외부 디비서버와 연동하여 동적 데이터 처리를 합니다. 툴은 PHP 어플리케이션으로 구동되고 소스내에서 DBMS와 연결 설정하는 기본 접속 정보가 설정되어 있으며, 전역 설정파일인 wp-config.php 파일에서 이 정보를 관리 합니다. 디비 패스워드 정보가 변경되는 경우 wp-config.php 파일의 디비 접속 정보도 동일하게 변경이 되어야 하며, 설정 방법을 안내 합니다. - FTP/SFTP 접속을 통한 수정 방법
- FTP 클라이언트 툴을 통해 서버에 접속 합니다. 본문에서는 파일질라( https://filezilla-project.org/ ) 를 사용 하였습니다.
- wp-config.php 다운로드 합니다. 파일 선택후 더블 클릭 또는 오른쪽 마우스 메뉴의 다운로드를 선택 합니다.
- 메모장 또는 텍스트 기반 편집 툴로 wp-config.php 파일 수정 합니다.
윈도우 기본 메모장이나 acroedit 같은 텍스트파일 에디터로 다운로드한 파일을 선택 합니다.
- 파일에서 define( 'DB_PASSWORD', 'athl*******' ); 항목을 새로운 패스워드 정보로 수정합니다.
ex) DB 패스워드를 newpassword2022로 변경한 경우
define( 'DB_PASSWORD', 'newpassword2022' );
로 수정후 저장 - FTP 클라이언트 툴을 통해 파일을 다시 업로드 합니다.
이때 업로드 경로가 기존 wp-config.php 파일의 경로와 같은지 확인 하고 덮어쓰기 합니다.
- SSH 접속을 통한 수정 방법 ( ex. putty, securecrt )
- SSH로 접속 합니다. 기본 22 포트이며 보통 putty ( https://www.putty.org/ ), securecrt ( https://www.vandyke.com/products/securecrt/ ) 툴을 많이 이용합니다.
- vi 편집기로 wp-config.php 파일을 수정합니다.
터미널 창에서 vi wp-config.php 로 편집기 모드로 접근후 DB_PASSWORD 의 지정 값을 새로운 DB 패스워드로 변경합니다. 수정 후 저장 합니다.
## ex) DB 패스워드가 newpassword2022 인경우 // ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'USERID' );
/** MySQL database username */
define( 'DB_USER', 'DBNAME' );
/** MySQL database password */
define( 'DB_PASSWORD', 'newpassword2022' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
|
| [워드프레스홈페이지] PHP 메모리 제한 값을 변경 하고 싶습니다 |
워드프레스는 기본적으로 PHP 어플리케이션 언어를 통해 구동되며, PHP 스크립트가 얼마나 많은 메모리를 할당 받을 수 있는지에 제한을 두고 있습니다. 기본 제한 값은 5.9 브랜치 기준 40M이며, 멀티사이트 구성의 경우 64M으로 제한 됩니다. 포스트를 작성하거나, 특정 테마나 플러그인을 사용할 때 이보다 더 많은 메모리 사용이 필요한 경우가 있습니다. 하지만 테마나 플러그인에서 전역 설정값을 추가하기도 하지만 정상 동작하지 않고 에러만 발생 하는 경우가 있습니다. Fatal error: Out of memory (allocated 12345678) (tried to allocate 2345678bytes) in /USERID/www/wp-includes/plugin.php on line 1000 이때, 전역 설정을 담당하는 wp-config.php 파일에 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 설정을 통해 직접 제한값 조절이 가능합니다. 해당 설정값은 웹서버에 전역 설정되어 있는 php.ini의 php memory limit 값에 제약을 받게 되며, WP_MEMORY_LIMIT 값이 더 크게 설정되어도 php.ini 의 제한 값으로 동작합니다.워드프레스 설정 내 메모리 사용 제한값, .htaccess 파일을 통해 memory limit 설정을 변경 하는 방법을 안내 합니다. a. WP_MEMORY_LIMIT - 프론트엔드에서 PHP 스크립트 구동에 대한 최대 메모리 할당량을 지정 (기본 64M) b. WP_MAX_MEMORY_LIMIT - 백엔드 대시보드 에서 사용 가능한 메모리 할당량 (기본 256M) c. 두 설정값은 php.ini에서 정의한 memory_limit 값을 넘지 못하므로 .htaccess 파일로 조정 필요 d. 기본 값은 wp-includes/default-constants.php 코어 설정 파일애서 확인 가능 ## wp-includes/default-constants.php
if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
define( 'WP_MEMORY_LIMIT', $current_limit );
} elseif ( is_multisite() ) {
define( 'WP_MEMORY_LIMIT', '64M' );
} else {
define( 'WP_MEMORY_LIMIT', '40M' );
}
}
if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
} elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) {
define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
} else {
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
}
} .htaccess 파일의 php memory_limit 설정 변경 방법- phpinfo() 함수를 통해 현재 계정에서 사용 가능한 php memory limit 값을 확인 합니다.
- phpinfo() 함수를 사용한 테스트 파일 생성
## edit info.php <? phpinfo(); ?> - 브라우저로 파일 접근하여 memory limit local value값 확인
- FTP / SSH 를 통해 서버 접근을 합니다. ( 본문에서는 SSH를 통한 방법으로 안내 합니다. )
- www 폴더 최상단의 .htaccess 파일을 편집기로 엽니다.
- 하단에 php memory_limit 설정 값을 넣습니다.
## edit .htaccess PHP_FLAG register_globals ON PHP_VALUE mysql.default_charset UTF8 PHP_VALUE memory_limit 256M - 저장후 브라우저에서 phpinfo() 함수를 통해 변경된 local value 값을 확인합니다.
- 관리자 패널 > 도구 > 사이트 건강 > 정보 페이지에서도 확인 가능합니다.
wp-config.php 파일로 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 값 변경 방법 - FTP / SSH 프로토콜을 통해 서버에 접근합니다.
- www 폴더 바로 밑의 wp-config.php 전역 설정파일을 편집기로 엽니다.
- 하단에 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 설정값을 정의합니다.
## edit wp-config.php
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M'); - 저장 후 메모리 부족에러가 발생했던 작업을 다시 진행 해 봅니다.
.htaccess 파일을 수정 하는 경우 구문 오류가 없도록 조심 해야 합니다. 오타가 있거나 잘못된 규칙이 입력된 경우 홈페이지 접근시 에러가 발생 할 수 있습니다. 수정 후에는 항상 브라우저 테스트를 진행해 주시기 바랍니다. |
| [워드프레스홈페이지] 대표 도메인을 변경/복구 하고 싶습니다 |
일반 적인 단일 사이트로 설치된 경우 관리자 패널의 다음 메뉴에서 변경이 가능합니다. 관리자 패널 > 설정 > 일반 > 워드프레스 주소(url), 사이트주소(url)
하지만 서버내 생성된 캐시파일이나 DB에 입력되어있는 이미지 url은 기존 도메인의 정보를 그대로 가지고 있는 경우가 있으며 위의 설정만 변경하는경우 CORS ( Cross-Origin Resource Sharing ) 정책에 의해 사이트가 정상 동작 하지 않는 문제가 발생 할 수 있습니다. 또한 변경 전 도메인의 연결이 사라진 경우 미디어 파일을 정상적으로 불러오지 못하는 등의 문제도 발생합니다.
일반적으로 캐시파일 ( 캐시플러그인이나 플러그인에서 생성한 서버내 php, html 파일 ), 그리고 DB내 post url 정보 등이 기존 주소로 남아 있어 브라우저 접근시 위와 같은 에러를 발생 시킵니다. 캐시파일은 재생성으로 쉽게 해결할 수 있으나 DB의 경우 별도의 작업이 필요할 수 있습니다. 워드프레스에 설정된 도메인을 변경 하는 경우 위와 같은 에러가 발생하지 않도록 추가적인 작업이 필요할 수 있으며 자세한 방법을 안내합니다. 미디어 url 변경 방법 (플러그인 활용)- 관리자 패널 > 플러그인 > 새로 추가 > go to live urls 검색 후 지금설치 > 활성화
- 관리자 패널 > 도구 > go live > 업데이트할 테이블 선택
% 예외 상황이 있을순 있으나 기본적으로 체킹된 테이블을 모두 업데이트 합니다.
미디어 url 변경 방법 (DB에서 직접 수정)워드프레스는 브라우저에 노출되는 대부분의 정보를 wp_posts 테이블에서 담당합니다. 작성하는 페이지나 글이 모두 해당되며, wp_posts 테이블 내 입력된 url 정보를 REPLACE 처리하여 새로운 도메인으로 호출되도록 수정 합니다. metadata가 입력된 경우 같이 업데이트가 필요할수 있습니다. 쿼리는 테이블 내 oldurl.com의 주소를 newurl.com으로 모두 치환 ( replace ) 처리합니다.
wp_posts update query UPDATE wp_posts SET post_content = replace(post_content, 'oldurl.com', 'newurl.com');
wp_postmeta, wp_options update query UPDATE wp_options SET option_value = replace(option_value, 'oldurl.com', 'newurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';UPDATE wp_posts SET guid = replace(guid, 'oldurl.com','newurl.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'oldurl.com','newurl.com'); - mysql prompt 접근
# mysql -u techcswp -p techcswp
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 435788
Server version: 10.1.13-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [techcswp]> - update query로 기존 도메인의 url 정보를 새로운 도메인으로 변경
MariaDB [techcswp]> select post_content from wp_posts where ID=7\G *************************** 1. row *************************** post_content: <!-- wp:image {"id":6,"width":650,"height":365,"sizeSlug":"large","linkDestination":"none"} --> <figure class="wp-block-image size-large is-resized"><img src="htp[:]//techcswp.cafe24.com/wp-content/uploads/2022/04/test-1024x576.png" alt="" class="wp-image-6" width="650" height="365"/><figcaption>test</figcaption></figure> <!-- /wp:image --> 1 row in set (0.00 sec)
MariaDB [techcswp]> UPDATE wp_posts SET post_content = REPLACE(post_content,'techcswp.cafe24.com','USERID.cafe24.com'); Query OK, 4 rows affected (0.00 sec) Rows matched: 8 Changed: 4 Warnings: 0
MariaDB [techcswp]> select post_content from wp_posts where ID=7\G *************************** 1. row *************************** post_content: <!-- wp:image {"id":6,"width":650,"height":365,"sizeSlug":"large","linkDestination":"none"} --> <figure class="wp-block-image size-large is-resized"><img src="htp[:]//USERID.cafe24.com/wp-content/uploads/2022/04/test-1024x576.png" alt="" class="wp-image-6" width="650" height="365"/><figcaption>test</figcaption></figure> 1 row in set (0.00 sec)
DATA내 캐시파일 정리 필요 : DB update가 완료되면 파일내 기존 url 정보가 남아있는지 확인 합니다. 대부분의 경우 캐시플러그인 ( wp-super-cache 등의 )의 캐시파일이 해당 됩니다.관리자 패널에서 캐시 재생성을 하거나 삭제를 통해 새로운 url로 캐시파일을 새로 생성하도록 합니다. 이후 브라우저 개발자 도구를 통해 기존 url정보를 호출하는 것이 있는지 확인 합니다.
잘못된 url을 입력하여 관리자 접근이 불가능해진 상황에 FTP나 SSH를 통해서 변경 하는 방법도 안내합니다. 잘못된 도메인 주소를 입력하고 저장 하는 경우 기본 페이지나 관리자 페이지에 더이상 접근하지 못하는 경우가 많습니다. https 프로토콜로 잘못 입력하여 아예 접근을 못하는 경우가 대표적이며, 브라우저가 아닌 SSH, FTP를 통해 복구하거나 직접 DB로 접근하여 복구하는 방법이 있습니다. wp-config.php 파일을 통한 복구 방법- FTP/SSH를 통해 서버 접속 ( 본문에서는 SSH를 통한 방법으로 안내 )
- 편집기로 wp-config.php 파일에 아래 항목을 추가
## 변경할 도메인이 USERID.cafe24.com 인경우 define( 'WP_HOME', 'http://USERID.cafe24.com' ); define( 'WP_SITEURL', 'http://USERID.cafe24.com' ); - 관리자 접근후 변경된 설정값 확인. ( 영구적으로 변경되므로 접근 성공후 제거할지 선택 )
functions.php 파일을 통한 복구 방법- FTP/SSH를 통해 서버 접속
- 현재 사용중인 테마 폴더의 functions.php 파일에 아래 항목을 추가
## DB에서 현재 사용중인 테마 확인 가능 MariaDB [USERID]> select option_value from wp_options where option_name='template'; +--------------+ | option_value | +--------------+ | astra | +--------------+ 1 row in set (0.00 sec)
## 테마 경로로 이동 cd ~USERID/www/wp-content/themes/astra
## functions.php 파일에 아래 항목을 추가후 저장 ( 파일이 없는경우 생성 ) ## 변경할 도메인이 USERID.cafe24.com 인경우 update_option( 'siteurl', 'http://USERID.cafe24.com' ); update_option( 'home', 'http://USERID.cafe24.com' ); - 브라우저에서 변경 된 url의 관리자 페이지 접근 시도 ex) http://USERID.cafe24.com/wp-admin
- 정상 접근 된 것을 확인후 functions.php에 추가된 설정 제거
DB에서 직접 복구하는 방법- MYSQL(MARIADB) PROMPT로 접근 합니다. ( 또는 heidsql 등의 GUI 툴로 작업 하셔도 됩니다. )
# ssh 터미널상에서 mysql prompt로 접근 $ mysql -u USERID -p DBNAME
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9166791
Server version: 10.1.13-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [USERID] - wp_options 테이블의 siteurl, home 값을 변경할 도메인으로 update 합니다.
## USERID.cafe24.com 에서 newdomain.com 으로 변경 하는경우 MariaDB [USERID]> select * from wp_options where option_id<3;
+-----------+-------------+-------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-------------------------------+----------+
| 1 | siteurl | http://USERID.cafe24.com/ | yes |
| 2 | home | http://USERID.cafe24.com/ | yes |
+-----------+-------------+-------------------------------+----------+
2 rows in set (0.05 sec)
MariaDB [USERID]> update wp_options set option_value='http://newdomain.com' where option_id<3 limit 2;
Query OK, 2 rows affected (0.45 sec)
Rows matched: 2 Changed: 2 Warnings: 0
MariaDB [USERID]> select * from wp_options where option_id<3;
+-----------+-------------+----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+----------------------+----------+
| 1 | siteurl | http://newdomain.com | yes |
| 2 | home | http://newdomain.com | yes |
+-----------+-------------+----------------------+----------+
2 rows in set (0.00 sec)
|
| [워드프레스홈페이지] 관리자 비밀번호를 재설정 하고 싶습니다 |
일반적으로 워드프레스 관리자 이메일 주소를 통해 비밀번호를 재설정 할 수 있습니다. 이메일 주소를 잃어버렸거나, 실제 사용하지 않는 이메일 주소로 입력된 경우 아래와 같은 방법으로 재설정 할 수 있습니다. FTP 또는 SSH 접속이 가능해야 하며, DB에서 직접 변경 하는 경우 MYSQL prompt 접근 후 안내해 드리는 query 실행이 가능해야 합니다. functions.php 파일로 재설정 하는 방법- FTP 또는 SSH로 접속합니다. 본문에서는 SSH에서 직접 파일 수정 하는 방법으로 안내합니다.
- 사용중인 테마 경로로 이동합니다.
## 테마 경로로 이동 # cd ~USERID/www/wp-content/themes/twentytwentytwo/
## 사용중인 테마는 아래 query로 확인 가능 MariaDB [USERID]> select option_value from wp_options where option_name='template'; +-----------------+ | option_value | +-----------------+ | twentytwentytwo | +-----------------+ 1 row in set (0.01 sec) - 테마 경로내 functions.php 파일을 편집기로 열어서 <?php 선언 하단에 hook을 입력합니다.
## newpassword2022로 관리자 패스워드 변경 하는 경우 # head functions.php <?php wp_set_password( 'newpassword2022', 1 ); /** * Twenty Twenty-Two functions and definitions * * @link https://developer.wordpress.org/themes/basics/theme-functions/ * * @package WordPress * @subpackage Twenty_Twenty_Two * @since Twenty Twenty-Two 1.0 - 도메인/wp-admin으로 접속하면 관리자 패스워드가 변경됩니다.
- 다시 functions.php 파일에 해당 라인을 삭제하거나 주석 처리 합니다.
- 새로운 패스워드로 도메인/wp-admin을 통해 관리자 로그인 합니다.
DB에서 wp_users 테이블을 직접 업데이트 하는 방법- SSH툴을 이용하여 MYSQL prompt로 접근합니다. 또는 heidsql 과 같은 DBMS툴로 접속 합니다.
- wp_users 테이블의 계정 정보를 확인합니다.
MariaDB [USERID]> select * from wp_users\G;
*************************** 1. row ***************************
ID: 1
user_login: USERID
user_pass: $P$ByeYO.9EQ19MiGJ3vrg2lXERoLf0w30
user_nicename: USERID
user_email: USERID@USERID.cafe24.com
user_url: https://USERID.cafe24.com
user_registered: 2022-04-15 23:00:54
user_activation_key:
user_status: 0
display_name: USERID
1 row in set (0.00 sec)
ERROR: No query specified - 새로운 패스워드로 업데이트 합니다.
## newpassword2022로 새로운 패스워드를 사용 하는 경우
MariaDB [USERID]> update wp_users set user_pass=md5('newpassword2022') where ID=1 limit 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [USERID]> select user_pass from wp_users\G;
*************************** 1. row ***************************
user_pass: 18c282b61fef220c05f2ea6fb9c05bf9
1 row in set (0.00 sec)
ERROR: No query specified
MariaDB [USERID]> select user_login,user_pass from wp_users\G;
*************************** 1. row ***************************
user_login: USERID
user_pass: 18c282b61fef220c05f2ea6fb9c05bf9
1 row in set (0.00 sec)
ERROR: No query specified - 도메인/wp-admin 로 접근하여 관리자 로그인을 시도 합니다.
일반적으로 ID=1이 관리자 아이디로 생성 되지만 계정(user_login) 확인이 필요할 수 있습니다. user_pass 필드의 패스워드는 md5로 암호화 되어있으며 update시 md5('패스워드')로 업데이트 합니다. |
| [워드프레스홈페이지] https 보안 프로토콜을 사용하고 싶습니다 |
구글에서는 https 프로토콜 사용을 2014년부터 권해왔으며, 전자상거래 또는 개인정보를 다루는 사이트에서 보안 강화를 목적으로 SSL 보안인증서 사용을 선택적으로 의무화 했으나 최근에 와서는 모든 웹서비스상에서 https 보안 프로토콜을 사용하도록 의무화 하는 추세 입니다.
매니지드 워드프레스 서비스는 기본적으로 추가로 연결한 도메인에 대한 무료 인증서(R3)를 제공 합니다. 나의서비스관리 - 추가 도메인 관리 페이지에서 도메인 연결후 인증서 발급이 되면 바로 서버에 무료 인증서 설치가 진행되며, 몇분후에 바로 https 프로토콜 사용이 가능합니다.
10G 광호스팅 서비스 등의 리눅스 기반 호스팅 서비스는 별도의 인증서를 구입, 설치 되어야 https 프로토콜 사용이 가능합니다. 워드프레스 관리자 페이지에서 url 정보를 https로 수정하기 전에 인증서 설치가 먼저 진행되어야 서비스에 문제가 없습니다. 주의사항:SSL 인증서가 설치되지 않은 상태에서 https로 주소를 변경한 경우 기존 주소 복구가 필요합니다. 기본 주소 변경/복구 방법은 이 문서 를 참고 해 주시기 바랍니다.
http, https 프로토콜에 대한 설명
- HTTP (Hypertext Transfer Protocol)
하이퍼 미디어 정보를 다루는 시스템을 위한 어플리케이션 프로토콜이며 world wide web 을 위한 데이터 통신에 기반을 두고 있습니다. 인터넷 익스플로러, 구글 크롬등이 http 프로토콜을 기반으로 기본 서비스를 다루고 있습니다. - HTTPS (Hypertext Transfer Protocol Secure)
HTTP 프로토콜의 문제점은 서버에서 클라이언트 브라우저로 전송하는 정보가 암호화되지 않는다는 것이며, WIRESHARK 와 같은 툴로 패킷 캡쳐가 가능하며 개인정보가 노출될 위험이 있습니다. https 프로토콜은 이와 같은 보안 적인 문제점을 해결하고자 SSL ( secure socket layer ) 보안 소켓 계층을 사용합니다. 해당 프로토콜을 사용하는 툴에서 주고 받는 패킷에 대한 암호화처리를 하여 개인 정보가 노출되지 않습니다.
매니지드 워드프레스 무료 인증서 설치 방법- 나의서비스리 - 서비스 사용현황 페이지에서 추가 도메인 관리 선택
- 도메인 직접 입력하기에 연결 할 도메인 입력
- 연결된 도메인 페이지에서 인증서 발급 상태 확인
- https 프로토콜로 브라우저 접근 테스트
- 워드프레스 관리자 패널에서 기본 사이트 주소를 https 프로토콜로 변경
주의사항: R3 무료 SSL 인증서 발급은 일반적으로 3-5분 내외로 완료 됩니다. 발급이 늦어지는경우 문의게시판으로 확인 요청을 부탁드립니다. |
| [워드프레스홈페이지] 사이트 접속 속도가 느립니다 |
페이지 캐싱 사용워드프레스로 만든 사이트로 클라이언트가 접속하는 경우 서버내에서는 PHP가 동작을 하고 브라우저에 HTML 형식으로 페이지를 만들어지기 까지 많은 데이터를 조립하는 과정을 거치게 됩니다. 단일 페이지라 하더라도 위와 같은 과정을 매번 거치게되는 것은 서버에 부담을 줄 수밖에 없고, 접속한 클라이언트에서 최종 결과물을 접근하기까지 많은 시간이 소요되기도 합니다.
캐시 플러그인은 클라이언트에 전달하는 페이지를 서버내 HTML 형식으로 저장하여 위와 같은 과정을 일부 생략하게 되고 서버내 부담을 줄이고 응답 속도를 빠르게 합니다.
## wp-super-cache 캐시파일 생성의 예. ## wp-contents/cache/supercache 경로 하위에 html 포맷형식으로 생성 $ pwd /home/hosting_users/USERID/www/wp-content/cache/supercache/USERID.cafe24.com $ head index.html <!DOCTYPE html> <html lang="ko-KR"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> .............. 대표적인 캐싱 플러그인은 다음과 같으며 기본적으로 무료버전을 제공하고 좀 더 많은 기능은 유료 버전을 통해 제공됩니다. 자세한 사용 방법은 URL을 통해 확인 하실 수 있습니다.
카페24의 메니지드 워드프레스 호스팅 서비스, 10G광호스팅 서비스군에서의 워드프레스 자동설치시 wp-super-cache 플러그인이 자동 설치 됩니다. 위에 설명드린 대로 동작하여 접근 속도에 많은 이점이 있으며, 관리자 패널에서 동적 데이터 처리, 캐시파일 재생성 주기 설정을 직접 하실 수 있습니다. wp-super-cache 플러그인 사용법 바로 가기
CDN (Contents delivery Network ) 서버 활용
외부 CDN 서버를 사용 하는 경우 다음과 같은 장점이 있습니다. - 클라이언트의 전용망에서 응답이 빠른 미디어 서버에서 정적 데이터를 가져가므로 속도가 향상 됩니다
- 웹서버가 아닌 외부서버의 트래픽을 사용하여 클라이언트에 전송하므로 트래픽 부담을 줄일 수 있습니다.
- 접속자가 많아 지는경우 웹서버가 아닌 미디어서버에서 정적 데이터를 처리하므로 부하를 줄일 수 있습니다.
JPG, PNG, CSS, JAVASCRIPT, WOFF 등 정적 데이터를 CDN 서버에서 처리하도록 하여 위와같은 이점을 가져올 수 있고, wordpress.org 공식 홈페이지에서도 CDN 서비스를 제공하는 플러그인을 많이 찾아보실수 있습니다. 예로 대표적인 워드프레스 플러그인 jetpack에서도 간단한 설정만으로 javascript, css와 같은 정적 데이터를 캐시서버에서 로드하도록 처리 합니다. jetpack 사이트 엑셀레이터 기능 설정의 예 ( https://jetpack.com/support/site-accelerator/ )- 플러그인 설정 페이지에서 사이트 가속기 활성화를 설정 합니다.
- 브라우저 개발자 도구에서 network 탭을 통해 javascript, css 자원 정보를 확인합니다.
- 웹서버가 아닌 c0.wp.com CDN 서버 자원을 사용함을 확인 할 수 있습니다.
- jetpack 사이트 가속화 기술문서에 주의 사항이 있으니 참고 바랍니다.
- CDN 서버에 한번 업로드된 미디어파일은 만료 시점을 가지지 않습니다. 한번 캐싱된 파일은 재생성되지 않습니다.
- 1의 이유로 사이트에서 갱신은 새로운 파일명으로 올리는 방법을 택해야만 합니다.
- 이미지파일은 80, 443포트로 제공되는 jpg, png, gif, webp 파일에 한합니다.
- 특정 pixel 이상의 이미지는 지원 하지 않습니다.
css, JavaScript 최적화css, javascript 와 같은 정적 데이터에 대한 최적화 작업이 필요합니다.
해당 포맷의 파일에서 불필요한 줄바꿈, 블록 구분 기호, 공백을 없애므로써 파일 사이즈 및 트래픽을 줄일 수 있고 이는 속도 개선에 도움을 주게 됩니다. https://www.minifier.org 와 같은 온라인에서 툴로 작업을 하는 방법도 있으나 플러그인을 통해 간편하게 작업도 가능합니다. Autoptimize 플러그인을 통해 관리자 패널에서 간단히 minify 작업이 가능합니다.
## js minify 파일 생성의 예 # pwd
/USERID/www/wp-content/cache/autoptimize/js
# head autoptimize_single_ed3b4417df0895e4cf8465d32b69adc6.js
!function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}
DB 최적화워드프레스의 여러 데이터가 쌓이다보면 DB에 불필요한 레코드가 생성되는 경우도 있고 wp_posts 테이블의 경우 REVISION 레코드가 누적되어 전체적인 속도에 영향을 주는 경우가 있습니다. DBMS QUERY에 대한 이해도가 있다면 직접 테이블 / 레코드 질의를 해보고 관리가 가능하지만 플러그인을 통해 간단한 클릭만으로 최적화 작업이 가능합니다. 대표적인 플러그인으로는 wp-optimize 와 wp-sweep이 있으며 무료 버전으로도 사용하는데 무리가 없습니다. 물론 DB최적화 작업 전에는 백업이 필수 입니다. wp optimize 의 경우 DB 최적화 외에도 이미지파일 이나 css, javascript minify 등의 정적 데이터 최적화 기능도 제공합니다.
알려드린 방법 외에도 이미지 사이즈 최적화를 통해 큰 트래픽이 발생하지 않도록 하는 방법, 불필요한 테마나 플러그인을 삭제하는 것도 중요하고 너무 다이나믹한 페이지 설정을 하여 클라이언트 브라우저에 무리를 주는 것을 피하는등의 노력도 필요하며, 구글 페이지 속도 측정 페이지에서 성능 체크를 하며 최적화 하는 작업을 하시는게 좋습니다. |
| [워드프레스홈페이지] 기본 추가되는 보안 설정이 궁금합니다 |
매니지드 워드프레스 서비스, 워드프레스 자동 설치 시 최적화, 보안 강화를 위한 몇 가지 설정이 추가 됩니다. wp-config.php 전역 설정 파일에 아래와 같은 설정이 추가되며, 각 설정 내용은 다음과 같습니다. 각 항목에 대한 설명을 참고 바라며, 파일 내 설정을 주석 처리 함으로써 간단히 비활성화 하실 수 있으나 보안 강화를 위해 유지를 권장 합니다. /* custom security setting */ define('DISALLOW_FILE_EDIT',true); define('IMAGE_EDIT_OVERWRITE',true); define('DISABLE_WP_CRON',true); define('EMPTY_TRASH_DAYS',7); define('DISALLOW_FILE_EDIT',true); 워드프레스 관리자 패널에서 테마파일 편집기 항목을 비활성화 합니다. 워드프레스 침해 사고 중 가장 높은 비율이 관리자 권한 탈취이며, 테마 편집기를 통해 사용중인 ( 또는 설치되어 있는 ) 테마/플러그인 파일을 직접 수정하여 악성코드를 심는 과정을 거치게 됩니다. 테마파일 편집기 기능을 비활성화 함으로써 직접적으로 파일에 코드를 심는 문제를 해결 할수 있습니다. 블럭테마 관련 참고 사항 : 워드프레스 코어 5.9.3에서 기존 제공하는 블럭테마를 사용하는 경우 블럭편집기 메뉴가 노출 됩니다. 이 설정은 텍스트 기반 편집기 접근을 제한하는 역할을 합니다. define('IMAGE_EDIT_OVERWRITE',true); 워드프레스 라이브러리에 업로드된 미디어 파일을 수정하는 경우 ( 썸네일을 생성 하거나, 사이즈를 수정하는 등의 ) 수정 하기 전의 원본 파일을 그대로 유지합니다. 때문에 수정할 때마다 서버 내에는 미디어 파일을 중복으로 계속 생성하고 유지하게 되며 할당된 하드 용량을 계속 사용하게 됩니다. IMAGE_EDIT_OVERWRITE 설정을 활성화 함으로써 이와 같은 파일 수정 작업시 기존 이미지 파일에 overwrite 함으로써 중복으로 생성되는 문제를 해결 할 수 있습니다. define('EMPTY_TRASH_DAYS',7); 워드프레스에서 작성된 POST, PAGE등을 삭제하는 경우 완전히 삭제하지 않고 휴지통에 30일 동안 유지를 하게 됩니다. 이 기간 동안 DB에 보관을 하고 있는 것인데 이 기간을 줄임으로써 DB 사이즈와 속도의 부담을 줄일 수 있습니다. 7일 이상 지난 POST의 경우 휴지통에서 삭제되도록 함으로써 위와 같은 문제를 줄입니다.
|
| [워드프레스홈페이지] 해외에서 워드프레스 관리자 접근이 되지 않습니다 |
매니지드 워드프레스 서비스는 기본적으로 워드프레스 관리자 페이지 접근이 국내(KR) 에만 허용 되어 있습니다. 대부분의 침해 사고가 해외 IP로부터 관리자 권한 탈취후 악성 코드가 심어진 파일을 업로드하거나 유해한 소스를 업로드하는 방법으로 진행 되고 있습니다. 관리자 접근 url ( http://{도메인}/wp-admin ) 을 국내 IP만 허용함으로써 위와 같은 침해 사고를 막을 수 있습니다.
나의서비스관리 > 디렉토리 접속 설정 페이지에서 자동 설정된 항목을 확인 하실 수 있습니다. 해외에서 관리자 접속을 하셔야 하는 경우 해당 메뉴의 설정을 삭제 하시면 됩니다.
특정 IP에 대해서만 접근 허용 처리도 가능합니다. 설정 팝업 레이어창에 확인된 공인 아이피 정보를 확인 후 특정 IP에서만 접속 허용을 통해 사용하시는 디바이스에서만 접속하도록 설정 하실 수 있습니다. 중요 : 국내에서만 접속 하시는 경우 초기 설정을 유지, 해외에서 접속 하시는 경우 특정 IP만 접속 허용 하시는 것을 권장 합니다. |