WordPress

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Blog 솔루션인 WordPress를 정리 합니다.

CentOS에 WordPress 설치

CentOS에 WordPress 3.5.1 설치

CentOS에서 WordPress를 설치 합니다.

  • 사전 준비 사항
  • WordPress를 다운로드하여 원하는 위치에 놓고 압축을 풉니다.
cd /cloudnas/install
wget http://wordpress.org/latest.tar.gz

tar xvzf latest.tar.gz
chown -R apache:apache wordpress
mv wordpress /cloudnas/www/html
  • URL로 접속하여 설치를 진행 합니다.
cd /cloudnas/install
wget http://ko.wordpress.org/wordpress-3.6-ko_KR.tar.gz

tar xvzf wordpress-3.6-ko_KR.tar.gz
cd wordpress/wp-content
chown -R apache:apache languages
mv languages /cloudnas/www/html/wordpress/wp-content

cd /cloudnas/www/html/wordpress
vi wp-config.php
  define('WPLANG', 'ko_KR');


WordPress 4.0 설치

WordPress 4.0 다운로드

cd install
### wget https://wordpress.org/latest.tar.gz
wget 
https://downloads.wordpress.org/release/ko_KR/wordpress-4.0.zip

createDatabase ossblog ossblog ossblog ????

WordPress 구조

파일 구조

  • index.php
  • wp-blog-header.php
  • wp-load.php
  • wp-config.php : DB 등 정보 설정
  • wp-settings.php
  • wp-includes/load.php
  • wp-includes/default-constant.php
  • wp-includes/version.php
  • wp-includes/compat.php
  • wp-includes/functions.php
  • wp-includes/class-wp.php
  • wp-includes/class-wp-error.php
  • wp-includes/plugin.php
  • wp-includes/pomo/mo.php
  • wp-includes/default-filters.php
  • wp-includes/ms-blogs.php
  • wp-includes/ms-settings.php
  • wp-includes/l10n.php
  • wp-includes/class-wp-walker.php
  • wp-includes/class-wp-ajax-response.php
  • wp-includes/formatting.php
  • wp-includes/capabilities.php
  • wp-includes/query.php
  • wp-includes/date.php
  • wp-includes/theme.php
  • wp-includes/class-wp-theme.php
  • wp-includes/template.php
  • wp-includes/user.php
  • wp-includes/meta.php
  • wp-includes/general-template.php
  • wp-includes/link-template.php
  • wp-includes/author-template.php
  • wp-includes/post.php
  • wp-includes/post-template.php
  • wp-includes/revision.php
  • wp-includes/post-formats.php
  • wp-includes/post-thumbnail-template.php
  • wp-includes/category.php
  • wp-includes/category-template.php
  • wp-includes/comment.php
  • wp-includes/comment-template.php
  • wp-includes/rewrite.php
  • wp-includes/feed.php
  • wp-includes/bookmark.php
  • wp-includes/bookmark-template.php
  • wp-includes/kses.php
  • wp-includes/cron.php
  • wp-includes/deprecated.php
  • wp-includes/script-loader.php
  • wp-includes/taxonomy.php
  • wp-includes/update.php
  • wp-includes/canonical.php
  • wp-includes/shortcodes.php
  • wp-includes/class-wp-embed.php
  • wp-includes/media.php
  • wp-includes/http.php
  • wp-includes/class-http.php
  • wp-includes/widgets.php
  • wp-includes/nav-menu.php
  • wp-includes/nav-menu-template.php
  • wp-includes/admin-bar.php
  • wp-includes/ms-functions.php
  • wp-includes/ms-default-filters.php
  • wp-includes/ms-deprecated.php
  • wp-includes/vars.php
  • wp-includes/pluggable.php
  • wp-includes/pluggable-deprecated.php
  • wp-includes/locale.php
  • STYLESHEETPATH/functions.php 또는 TEMPLATEPATH/functions.php
  • wp()
  • wp-includes/template-loader.php

Plugin

  • Hooks 방식으로 제작되는 Plugin의 종류
  • Actions : 실행
  • Filters : 실행 후 결과 반환
  • Plugin 적용 방법
  • wp-includes/functions.php, ms-functions.php 파일에 추가
  • 'include', 'include_once', 'require', 'require_once' 등을 사용하여 Plugin 파일 추가
  • wp-includes/themes/테마명/functions.php 파일에 추가
  • STYLESHEETPATH/functions.php 또는 TEMPLATEPATH/functions.php
  • 폴더 : wp-content/plugins/플러그인폴더/
  • 참고 문헌

Thema

  • 폴더 : wp-content/themes/테마폴더/
  • index.php
  • 참고 문헌

Language

  • 폴더 : wp-content/languages/
  • ko_KR.po, ko_KR.mo
  • admin-ko_KR.po, admin-ko_KR.mo
  • plugins/~.po, ~.mo
  • themes/~.po, ~.mo

Database 구조

  • WordPress용 주요 테이블
  • wp_users : 사용자
  • wp_usermeta : 사용자의 메타데이터
  • wp_options : 설정 메뉴의 옵션값
  • wp_posts : 포스트
  • wp_postmeta : 포스트의 메타데이터, Post의 부가적인 속성
  • wp_comments : 댓글
  • wp_commentsmeta : 댓글의 메타테이터
  • wp_links : 링크 관리자 기능에서 추가한 링크
  • wp_terms : 용어
  • wp_term_taxonomy : 각 용어에 할당된 텍사노미 (분류 계층도)
  • wp_term_relationships : 포스트와 링크 등의 콘텐츠와 텍사노미 결합

유용한 Plugin



  • WordPress Related Posts : 관련 Post 글 목록 표시
  • WordPress Popular Posts : 인기글 목록 표시
  • List category posts :

관리자 가이드

Port 변경

mysql -uwordpress -p wordpress

update wp_options
           set option_value = 'http://www.jopenbusiness.com:90/wordpress'
           where option_name = 'siteurl' or option_name = 'home';


WordPress 이관

"도구 -> 내보내기" 메뉴에서 xml 파일로 다운로드 한 후, "도구 -> 가져오기"로 xml 파일을 가져 옵니다.

설치시 데이터베이스 연결중 오류 발생

Database 접속 오류 코드 확인 방법

<?php
$hostIn     = '';
$dbIn       = '';
$userIn     = '';
$passwordIn = '';
try {
    $MySQLDataBaseLink = new PDO(
                    "mysql:host=" . $hostIn . ";dbname=" . $dbIn, $userIn, $passwordIn);
    $MySQLDataBaseLink->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Yippee - good connection' . "\r\n";
} catch(PDOException $e) {
    echo '<h3>Catch Connect Error--->>> ' . $e->getMessage() . '</h3>' . "\r\n";
    return false;
}
?>

13번 오류가 발생할 경우

SELinux에 의해서 network로 접속이 차단됨 상태 입니다. 다음 명령을 실행 하세요.

getenforce                                  #--- SELinux 모드 확인
setsebool -P httpd_can_network_connect=1

Enfold Theme 한글화 방법

 

여러 사이트를 구성하기 위해서 WordPress를 사용하고 있습니다. 최근에 만든 사이트는 Enfold Theme를 사용하고 있는데 한글이 표시되지 않아 불편한 점이 있습니다. 그래서 한글을 적용하니 편리 합니다.

 

한글을 적용한 Enfold Theme

enfold_ko_KR.png

 

서비스 운영 환경

홈페이지 구성을 위해서 아래와 같은 환경을 사용하고 있습니다.

  • OS : CentOS
  • DOCUMENT_ROOT : /usr/share/nginx/html
  • WordPress 설치 폴더 : /usr/share/nginx/html/wordpress
  • Enfold Theme
    • /usr/share/nginx/html/wordpress/wp-content/themes/enfold
    • Version : 4.2.3
  • Enfold Chield Theme 사용
    • /usr/share/nginx/html/wordpress/wp-content/themes/enfold_child

 

Enfold Theme 한글화  방법

 

cd /usr/share/nginx/html/wordpress/wp-content

  1. --- Enfold Theme POT 파일로 Enfold Theme용 한글 파일 생성
    cp  themes/enfold/lang/enfold.pot  languages/themes/avia_framework-ko_KR.po
  1. --- Enfold Theme에 포함된 LayerSlider Plugin용 한글 파일 생성
    cp themes/enfold/config-layerslider/LayerSlider/locales/LayerSlider-en_US.pot
        languages/plugins/LayerSlider-ko_KR.po

vi  themes/enfold_child/functions.php                                  #--- 아래 내용을 추가 합니다.
    //--- Enfold Theme에 있는 LayerSlider Plugin의 한글 파일을 사용하도록 설정
    function enfoldLayerSlider() {
        if (!current_theme_supports('deactivate_layerslider')) {
            load_plugin_textdomain('LayerSlider'); 
        } 
    }
    add_action('wp', 'enfoldLayerSlider', 11);

 

위 작업을 마치면 po 파일은 생성이 되지만 실제로 작업하는 mo 파일이 존재하지 않습니다. po 파일에서 번역한 후 mo 파일을 생성하려면 아래와 같이 작업 하세요.

  #--- PO 파일을 MO 파일로 컴파일하기 위해서 gettext를 설치 합니다. 한번만 설치하면 됩니다.
yum  install  gettext 
  1. --- Enfold Theme를 번역한 후 mo 파일을 생성 합니다.
    cd  /usr/share/nginx/html/wordpress/wp-content/languages/themes
    vi  avia_framework-ko_KR.po                                                         #--- 편집기에서 번역 작업을 진행하세요.
    msgfmt  avia_framework-ko_KR.po  -o  avia_framework-ko_KR.mo

 

  1. --- LayerSlider Plugin을 번역한 후 mo 파일을 생성 합니다.
    cd  /usr/share/nginx/html/wordpress/wp-content/languages/plugins
    vi  LayerSlider-ko_KR.po                                                                  #--- 편집기에서 번역 작업을 진행하세요.
    msgfmt  LayerSlider-ko_KR.po  -o  LayerSlider-ko_KR.mo

 

참고 문헌

  


 

 

기술지원

WP Mail SMTP Plugin 설정

WordPress를 사용할 때 WP Mail SMTP 플러그인을 사용 합니다.

메일 서버에서 TLS 방식의 접속을 허용하는데 공인 CA가 없어서 오류가 발생 합니다. 이런 경우 아래와 같이 설정할 수 있습니다.


보안 설정


WP Mail SMTP 설정 화면에서 비밀번호를 등록하면 Plain Text로 저장이 되기 때문에 보안상 위험 합니다. 아래와 같이 설정 파일에 설정하여 사용하세요.

vi  wp-config.php

define( 'WPMS_ON', true );
define( 'WPMS_SMTP_PASS', 'SMTP_비밀번호' );

 

WP_Mail_SMTP_options.png

오류 조치


오류 메시지

CLIENT -> SERVER: STARTTLS

SERVER -> CLIENT: 220 ready for tls
SMTP Error: Could not connect to SMTP host.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT:  TLS connection failed: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca (#4.3.0)
SMTP ERROR: QUIT command failed: 454 TLS connection failed: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca (#4.3.0)

Connection: closed

조치 내역

Chield Theme를 사용하고 있으므로 functions.php 파일에 필터를 추가 합니다.

vi  wp-content/themes/챠일드_테마_폴더/functions.php

add_filter('wp_mail_smtp_custom_options', function( $phpmailer ) {

$phpmailer->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,                                           #—false. peer 확인 않음
'verify_peer_name' => false,                              #— false, peer 이름 확인 않음
'allow_self_signed' => true                                #— true. 사설 인증 허용
)
);return $phpmailer;

} );

WordPress의 관련 파일

  • wp-includes/class-smtp.php
  • wp-includes/class-phpmailer.php
    • WP Mail Plugin을 사용하지 않는 경우, $SMTPOptions 값을 직접 수정할 수도 있습니다.
  • wp-mail.php

참고 문헌