워드프레스 IP소스 잘 받아오지 못하는 오류 해결

2017. 5. 30. 23:31보안 & 해킹/IT 꿀팁

포트 포워딩 등으로 바뀐 경우에는 적절하지 않다.

Local IP를 내부IP주소로 출력할 텐데 외부에서 접속할 때는 외부IP 주소 체계여야 하기 때문.


내부 NAT 전용이고 외부에서 받을때야 고정IP가 쉽사리 바뀌지 않으니 문제 없을 테다... 오류 해결하느라 삽질했다.




/root 폴더에 두 스크립트를 생성한 후 auto.sh을 실행하자.






/root/ori_wp-config.php    // 이 스크립트는 워드 프레스 버전에 따라 다를 수 있음. 아래에서 처음으로 등장하는 define 구문 3가지만 따로 추가해 주면 된다. 원본은 /var/www/wordpress/wp-config.php 소스파일이다.

<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the
 * installation. You don't have to use the web site, you can
 * copy this file to "wp-config.php" and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * MySQL settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://codex.wordpress.org/Editing_wp-config.php
 *
 * @package WordPress
 */
define('WP_HOME','http://DAMN/wordpress');
define('WP_SITEURL','http://DAMN/wordpress');
define(`WPLANG`,`ko_KR`);
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wpadmin');

/** MySQL database password */
define('DB_PASSWORD', 'HEP0826!@#$');

/** 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', '');

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         '--[7uUOc$AfpnBhHTKFf0<d,UmaFOotwe?mwS4&O)#9&h `VY2Wn*+dVzp`OdI&R');
define('SECURE_AUTH_KEY',  'e5DfT!:mw?g[?,v1Jq~p;54-<Z3mjBC#c1U0k6ms5&C(zp{(@aV{ <Exv?`D`>;Y');
define('LOGGED_IN_KEY',    'x|NDvrR-DpS&mS:$UE1A^Df4gd6L#EXcO}Wb^Nr-}%E6C}chz-Z#lXdMO$ytD&8I');
define('NONCE_KEY',        'G7~,_D *a@.?d!4lB3zX(})#`~5>)&$yvP|D4S+P|;tIzj_~7O[6D5NGO5 F~fNM');
define('AUTH_SALT',        '`|IwU0-V/Prp ;}Qa]QP7uWQyNM-yII3ekU)twZz/(R[rbHc-<#G#3#hh!L|~#jV');
define('SECURE_AUTH_SALT', 'v_sEG6O9!v.:m;B|8x1~<Mcla2*ESt*:jIdCx1+[IS%n/AWUh{j/X/DR&ZwiIe2B');
define('LOGGED_IN_SALT',   'o3oj:DdLT{>.0vg/~QU,`%j~k$rf!mr%R,G/%bj3b Y.?0Z`)f}sRr554;=Hs?g#');
define('NONCE_SALT',       'gfK+9u1]yD17mx6R3~V}7_w#T`+.`@0$:S87ahVN]?X&Y6eiDeco72O_J8AHM84x');

/**#@-*/

/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = 'wp_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the Codex.
 *
 * @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define('WP_DEBUG', false);

/* That's all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');




/root/auto.sh

#!/bin/sh
MYIP=`hostname -I`
cp 'ori_wp-config.php' 'ori_wp-config2.php'
sed -i 's/DAMN/'"$MYIP"'/g' ori_wp-config2.php
sed '20,21{s/ //}' ori_wp-config2.php > /var/www/wordpress/wp-config.php
service apache2 restart





설명 : auto.sh을 실행 시키면 자신의 local ip를 받아온 후 ori_wp-config.php를 수정하여 웹 서버 경로에 붙여넣는다. 근데 hostname -I 구문은 ip 주소 맨 끝에 공백이 들어가게 반환되는 에러?가 있다. 이를 해결하기 위해 sed로 공백을 삭제한다.