PHP 7.2, 7.4 버전에서 멀쩡하던게 8.1, 8.2 버전에서 오류가 발생하네요~

 

AH01071: Got error 'PHP message: PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in /home/example/www/_wp_/wp-includes/script-loader.php on line 757'

AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function get_magic_quotes_gpc() in /home/example/www/_wp_/wp-includes/load.php:926

 

/wp-includes/script-loader.php
        foreach ( $tinymce_settings as $key => $value ) {
                if ( is_bool( $value ) ) {
                        $val       = $value ? 'true' : 'false';
                        $init_obj .= $key . ':' . $val . ',';
                        continue;
                } elseif ( ! empty( $value ) && is_string( $value ) && (
                        ( '{' == $value{0} && '}' == $value{strlen( $value ) - 1} ) ||
                        ( '[' == $value{0} && ']' == $value{strlen( $value ) - 1} ) ||
                        preg_match( '/^\(?function ?\(/', $value ) ) ) {
                        $init_obj .= $key . ':' . $value . ',';
                        continue;
                }
                $init_obj .= $key . ':"' . $value . '",';
        }

위에서 {} 중괄호 이부분을 [] 대괄호로 변경합니다.

                        ( '{' == $value[0] && '}' == $value[strlen( $value ) - 1] ) ||
                        ( '[' == $value[0] && ']' == $value[strlen( $value ) - 1] ) ||

그리고 이번엔 get_magic_quotes_gpc 에러인데 8.0 버전 부터 이 함수가 없어졌다는군요 ㅋ

/wp-includes/load.php
/wp-includes/formatting.php
        if ( get_magic_quotes_gpc() ) {
        }
=>
        if ( function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() ) {
        }

Warning 부분은 제외 하고 일단 3개의 파일을 수정하니 작동을 합니다.

 

그래도 워드프레스는 당분간 PHP 7.x 버전을 사용하는게 좋아보입니다.

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

리다이렉트 되도록 처리한 내용이 동작을 안하길래 확인해보니 .htaccess 파일이 초기화가 되어있네요~

파일이 변경된 시간으로 아파치 로그를 확인하니 wp-admin/plugins.php 가 호출된 시간과 동일하였습니다.

이때 워드프레스 플러그인 추가하고 삭제했었는데 아마도 그때 초기화가 된 것 같네요~

아래는 초기화 된 .htacces 파일의 내용입니다.

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

# END WordPress

미리 백업해놓은 파일이 있어서 확인하고 다시 작성하였네요~

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

wordpress wp_posts 테이블만으로는 썸네일(특성이미지)을 알 수가 없습니다.

wp_postmeta 테이블에서 값을 찾아서 다시 wp_posts 에서 guid 값을 가져와야합니다.

SELECT meta_value FROM `wp_postmeta` WHERE post_id = 포스트id and meta_key = '_thumbnail_id'
SELECT guid FROM `wp_posts` WHERE ID = '$meta_value'

위의 mysql 쿼리를 보시면 아실겁니다.

응용해서 서브쿼리로 작성하면 하나의 쿼리문으로 값을 가져올 수 있습니다.

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] 위젯 메인페이지만 나오게 하는 방법


워드프레스에서 Header Widget 또는 Footer Widget 을 달면 모든 페이지 마다 위젯이 나옵니다.

특정 위젯을 자바스크립트로 메인 홈페이지에만 나오게 하고 나머지 하위 메뉴에서는 숨기는 방법입니다.


먼저 위젯을 달고 소스보기로 해당 위젯 영역의 태그를 살펴봅니다.

<!-- Upper widgets -->
<div class="header-widgets-wrapper">
<div class="header-widgets-three header-widgets-left">
<section id="custom_html-5" class="widget_text header-widget widget swidgets-wrap widget_custom_html"><div class="swidget"><div class="sidebar-title-border"><h3 class="widget-title">인터넷속도측정</h3></div></div><div class="textwidget custom-html-widget"><style>
#sc-container { margin: 0 auto; }
</style>

section id="custom_html-5" 로 해당 위젯을 숨겨 보도록 하겠습니다.


<script>

if(window.location.pathname !== '/') {

document.getElementById('custom_html-5').parentNode.parentNode.style.display='none';

}

</script>

메인 홈이 아닐때를 조건으로 custom_html-5 를 찾아서 상위노드를 숨기는 방법입니다.

위에는 parentNode.parentNode 가 두번이나 있기 때문에 Header Widget 자체를 숨기는 코드입니다.

해당 위젯만 숨기려면 parentNode 하나만 넣어주면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] All in One SEO 플러그인



워드프레스로 만들 블로그를 구글이나 네이버 웹마스터 도구에 등록하려면 sitemap.xml 과 rss feed 가 있으면 자신의 블로그 게시글의 URL 을 등록해서 검색 노출에 도움이 됩니다.


워드프레스 자체에는 티스토리 처럼 피드 기능은 제공하는데 사이트맵 기능을 제공하지 않네요~


플러그인 이용해서 사이트맵을 만들면 됩니다.


Yoast SEO 와 All in One SEO 가 인기가 좋던데 제가 볼때는 아이콘이 더 가미된 올인원SEO 를 더 추천 하고 싶네요~ ㅎ



[워드프레스] All in One SEO 플러그인


원하는 기능을 활성화 시켜서 사용하면 될 것 같습니다.




블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] wp-admin 차단하기


워드프레스의 관리자 접근은 사이트주소/wp-admin 형태입니다.

사이트의 보안을 위해서는 다른 이름으로 바꾸는 것이 좋습니다.


.htaccess 파일을 아래와 같이 작성하면 됩니다.

<IfModule mod_rewrite.c>

RewriteEngine On


RewriteCond %{REQUEST_URI} ^/wp-admin(.*)$ [NC]

RewriteRule ^(.*)$ - [L]

RewriteCond %{REQUEST_URI} ^/change-myadmin$ [NC]

RewriteRule ^(.*)$ /wordpress/wp-admin [L]

</IfModule>

change-myadmin 은 관리자가 접근을 허용할 uri 입니다.

사이트주소/change-myadmin 으로 접근시 리다이렉트 되어 관리자 페이지로 이동을 합니다.

/wordpress 는 자신의 경로에 맞게 적으시면 됩니다.


그리고 wp-login.php 파일을 특정IP 만 허용하는 방법도 있습니다.

<Files wp-login.php>

Order Deny,Allow

Deny from All

Allow from 특정IP

</Files>

참고로 특정아이피가 여러개라면 나열을 해도 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] CyberSyn RSS/Atom Syndicator


워드프레스 플러그인 중에 다른사이트나 블로그의 게시글 RSS 를 자동으로 긁어서 가져오는 플러그인이 있습니다.

여러 종류가 있지만 사용해보니 CyberSyn 이라는 Plugin 이 제일 마음에 드네요~


[워드프레스] CyberSyn RSS/Atom Syndicator

설정시 "Check this feed for updates every" 에 30분 정도로 적당하게 설정하세요~

그리고 "Maximum number of posts to be syndicated from each feed at once" 에는 한번에 싱크될 게시글 수를 입력하면 됩니다.

처음엔 수치를 많이 적고 나중에 어느정도 싱크되고 나면 숫자를 줄이면 될 것 같습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] iwinv.net wp 리디렉션 방법


iwinv.kr 에서 웹계정을 만들면 public_html/wp 폴더에 WordPress 가 설치가 됩니다.

이런경우 URL 주소에 http://계정명.iwinv.net/wp 이렇게 주소 뒤에 폴더명을 붙여야 하는데,

도메인명 만으로 사이트를 운영하고 싶다면 리디렉션을 하여야 합니다.


방법은 .htaccess 파일을 만들어 RewriteRule 을 이용하면 됩니다.

FTP로 접속해서 public_html 폴더에 아래의 내용으로 .htaccess 파일을 만들어서 업로드합니다.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule !^/wp/(.*)$ /wp/$1 [L]

</IfModule>


그리고 wp_options 테이블에 home 값을 변경합니다. ( 워드프레스 관리자 메뉴 -> 설정에서도 변경 가능 )


▶ 변경후

위 테이블에 home 부분만 변경하면 됩니다.


이제 주소에 도메인명만 입력하고 페이지를 열어보세요~

로그인 부분과 관리자페이지를 제외하고는 변경이 되어있을겁니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] 관리자 비밀번호 분실시 재설정 방법



워드프레스로 홈페이지를 만들고 난뒤에 관리자 비밀번호를 잊어버렸을 경우 비밀번호를 초기화 할 수 있습니다.


▶ wp-login.php 수정


<?php

/**

 * WordPress User Page

 *

 * Handles authentication, registering, resetting passwords, forgot password,

 * and other user handling.

 *

 * @package WordPress

 */


/** Make sure that the WordPress bootstrap has run before continuing. */

require( dirname(__FILE__) . '/wp-load.php' );

wp_set_password('새로운비밀번호', 1);


wp-login.php 파일을 열어서 require wp-load.php 아래줄에 wp_set_password('새로운비밀번호', 1); 을 추가하고 저장합니다.


http://홈페이지url/wp-login.php 파일을 한번 열어주면 새로운 비밀번호로 설정이 됩니다.


이제 위에 추가한 부분을 지우고 로그인을 하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[워드프레스] NGINX 유저 설정



NGINX 는 디폴트 user 가 nginx 입니다.


nginx 로 사용해도 되지만 apache 로 바꿔봅시다~


먼저 /etc/httpd/conf/httpd.conf 파일에 아래 부분을 찾습니다.


User apache

Group apache



/etc/nginx/nginx.conf 파일에서 user 부분을 수정합니다.


#user nginx;

user apache apache;


위와 같이 저장하고 systemctl restart nginx 하면 됩니다.


그리고 홈페이지 root 디렉토리의 소유권을 변경해 주어야 합니다.


읽기전용이라면 755 퍼미션을 주면 되지만 안에서 파일을 생성하거나 디렉토리를 만들려면 소유권을 변경해주어야 됩니다.


# chown -R apache.apache /var/www/html


이렇게 하시면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,