- CentOS에 WordPress 설치
- CentOS에 WordPress 3.5.1 설치
- WordPress 4.0 설치
- WordPress 구조
- 파일 구조
- Plugin
- Thema
- Language
- Database 구조
- 유용한 Plugin
- 관리자 가이드
- Port 변경
- WordPress 이관
- 설치시 데이터베이스 연결중 오류 발생
- Enfold Theme 한글화 방법
- 기술지원
- WP Mail SMTP Plugin 설정
- 참고 문헌
Blog 솔루션인 WordPress를 정리 합니다.
홈페이지 : [http://wordpress.org/ http://wordpress.org/], http://ko.wordpress.org/
다운로드 : http://wordpress.org/
라이선스 : GPL 2.0
플랫폼 : PHP
CentOS에 WordPress 설치
CentOS에 WordPress 3.5.1 설치
CentOS에서 WordPress를 설치 합니다.
사전 준비 사항
WordPress를 다운로드하여 원하는 위치에 놓고 압축을 풉니다.
cd /cloudnas/install
wget [http://wordpress.org/latest.tar.gz](http://wordpress.org/latest.tar.gz)
tar xvzf latest.tar.gz
chown -R apache:apache wordpress
mv wordpress /cloudnas/www/html
URL로 접속하여 설치를 진행 합니다.
http://ko.wordpress.org/에 접속하여 한글팩을 다운로드 합니다.
cd /cloudnas/install
wget [http://ko.wordpress.org/wordpress-3.6-ko_KR.tar.gz](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 다운로드
다운로드 사이트 : https://ko.wordpress.org/releases/
{| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;"
|-
| style="background-color: rgb(241, 241, 241);" | cd install
### wget [https://wordpress.org/latest.tar.gz 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 : 실행
키워드 : http://codex.wordpress.org/Plugin_API/Action_Reference
do_action() 함수가 사용된 곳에 적용
Filters : 실행 후 결과 반환
키워드 : http://codex.wordpress.org/Plugin_API/Filter_Reference
apply_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
{| cellspacing="1" cellpadding="1" style="font-size: 14px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 20.7999992370605px; width: 771px;"
|-
| style="background-color: rgb(241, 241, 241);" |
update wp_options
set option_value = 'http://www.jopenbusiness.com:90/wordpress'
where option_name = 'siteurl' or option_name = 'home';
|}
WordPress 이관
"도구 -> 내보내기" 메뉴에서 xml 파일로 다운로드 한 후, "도구 -> 가져오기"로 xml 파일을 가져 옵니다.
설치시 데이터베이스 연결중 오류 발생
Database 접속 오류 코드 확인 방법
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo 'Yippee - good connection' . "\r\n"; ``` } catch(PDOException $e) { ``` echo 'Catch Connect Error--->>> ' . $e->getMessage() . '
' . "\r\n"; return false; ``` } ?>
13번 오류가 발생할 경우
SELinux에 의해서 network로 접속이 차단됨 상태 입니다. 다음 명령을 실행 하세요.
getenforce #--- SELinux 모드 확인 setsebool -P httpd_can_network_connect=1
Enfold Theme 한글화 방법
여러 사이트를 구성하기 위해서 WordPress를 사용하고 있습니다. 최근에 만든 사이트는 Enfold Theme를 사용하고 있는데 한글이 표시되지 않아 불편한 점이 있습니다. 그래서 한글을 적용하니 편리 합니다.
'''한글을 적용한 Enfold Theme'''
http://www.obcon.biz/wordpress/wp-content/uploads/2018/02/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 한글화 방법'''
{| style="width: 98%; margin: 2px 2px 2px 2px; border: 0px solid black; border-spacing: 0px; border-collapse: collapse; padding: 2px 2px 2px 16px;"
|-
| style="width: 10px; margin: 2px; border: 1px solid gray; border-spacing: 0px; border-collapse: collapse; padding: 2px; font-size: 8px; line-height: normal; color: black; background-color: gray; vertical-align: middle;" |
| style="margin: 2px; border: 1px solid gray; border-spacing: 0px; border-collapse: collapse; padding: 2px 2px 2px 12px; font-size: 14px; line-height: normal; color: black; vertical-align: middle;" |
cd /usr/share/nginx/html/wordpress/wp-content
--- Enfold Theme POT 파일로 Enfold Theme용 한글 파일 생성
cp themes/enfold/lang/enfold.pot languages/themes/avia_framework-ko_KR.po--- 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 파일을 생성하려면 아래와 같이 작업 하세요.
{| style="width: 98%; margin: 2px 2px 2px 2px; border: 0px solid black; border-spacing: 0px; border-collapse: collapse; padding: 2px 2px 2px 16px;"
|-
| style="width: 10px; margin: 2px; border: 1px solid gray; border-spacing: 0px; border-collapse: collapse; padding: 2px; font-size: 8px; line-height: normal; color: black; background-color: gray; vertical-align: middle;" |
| style="margin: 2px; border: 1px solid gray; border-spacing: 0px; border-collapse: collapse; padding: 2px 2px 2px 12px; font-size: 14px; line-height: normal; color: black; vertical-align: middle;" | #--- PO 파일을 MO 파일로 컴파일하기 위해서 gettext를 설치 합니다. 한번만 설치하면 됩니다.
yum install gettext
--- 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
--- 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
|}
'''참고 문헌'''
- [poedit](http://www.jopenbusiness.com/mediawiki/Poedit)
- [오픈소스 한글화](http://www.jopenbusiness.com/mediawiki/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4_%ED%95%9C%EA%B8%80%ED%99%94)
기술지원
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_비밀번호' ); |
http://www.obcon.biz/wordpress/wp-content/uploads/2018/03/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 ```
참고 문헌
OBCon
[[Category:WebSite|Category:WebSite]]
분류: CMS