2018년 5월 22일 화요일

구축된 WordPress 홈페이지의 IP 주소 변경시 접속이 안되는 문제





WordPress로 홈페지를 구축했다가 구축당시의 IP가 변경될 경우 해당 WordPress 홈페이지는 웹브라우저에서 열리지를 않는다.
이때에는 WordPress의 환경 설정 값을 새로 바뀐 IP로 변경해 주어야 한다.
다음과 같은 환경이라고 가정해 보자.

ㆍ 노트북 PC Windows 10에 VirtualBox로 Ubuntu 16.04를 설치하고 여기에 WordPress로 홈페이지를 만듦

ㆍ VirtualBox의 Ubuntu에 있는 WordPress 접속 IP가 다음과 같다.
   http://192.168.0.10/wordpress

ㆍ노트북 PC를 다른 장소로 옮김으로 인해 VirtualBox의 Ubuntu IP가 다음과 같이 변경되었다.
   192.168.89.105
   이때 http://192.168.89.105/wordpress로 접속하면 해당 홈페이지가 열리지 않는다.

이 문제의 해법은 몇 가지가 있는데

(1) wp-config.php 설정 값 조정을 통해
WordPress가 설치된 경로에서 wp-config.php 파일을 열어 다음의 내용을 변경해준다. 만일 다음 내용이 없으면 해당 파일의 적당한 곳에 다음 내용을 추가해 준다.

    define('WP_HOME', 'http://192.168.89.105/wordpress');
    define('WP_SITEURL', 'http://192.168.89.105/wordpress');

(2) WordPress에서 사용하는 Database 설정 값 조정을 통해
WordPress가 사용하는 Database(여기서는 MariaDB)에 접속해서 관련 정보의 변경을 통해서 문제를 해결할수 있다.
여기서는 WordPress 홈페이지가 사용하는 Database 명이 mywp2라고 가정한다.

root@....# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 55
Server version: 10.0.34-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mywp2
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

WordPress 홈페이지가 사용하는 데이터베이스 mywp2에서 변경작업을 해야 할 table은 wp_options 테이블이다. 이 테이블의 구조를 보면 다음과 같다.

MariaDB [mywp2]> desc wp_options;
+--------------+---------------------+------+-----+---------+----------------+
| Field        | Type                | Null | Key | Default | Extra          |
+--------------+---------------------+------+-----+---------+----------------+
| option_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
option_name  | varchar(191)        | NO   | UNI |         |                |
option_value | longtext            | NO   |     | NULL    |                |
| autoload     | varchar(20)         | NO   |     | yes     |                |
+--------------+---------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

이 테이블에서 option_name 필드의 값이 home인 레코드와 option_name 필드의 값이 siteurl을 값으로 갖는 레코드가 있는데 그 2 레코드의 option_value의 값을 새로 바뀐 IP주소로 변경해 주어야 한다.
즉 wp_options라는 테이블에서 option_name필드의 값이 home인 레코드와 siteurl인 레코드의 option_value 필드에 해당 홈페지의 IP 주소 값이 설정되어 있다.
이 2 레코드의 값을 새로 변경된 IP 주소로 update해 주면 된다.  먼저 현재 어떤 값이 들어 있는지 확인해 본다.

MariaDB [mywp2]> select * from wp_options where option_name='home';
+-----------+-------------+--------------------------------+----------+
| option_id | option_name | option_value                   | autoload |
+-----------+-------------+--------------------------------+----------+
|         2 | home        | http://192.168.0.10/wordpress | yes      |
+-----------+-------------+--------------------------------+----------+
1 row in set (0.00 sec)

MariaDB [mywp2]> select * from wp_options where option_name='siteurl';
+-----------+-------------+--------------------------------+----------+
| option_id | option_name | option_value                   | autoload |
+-----------+-------------+--------------------------------+----------+
|         1 | siteurl     | http://192.168.0.10/wordpress | yes      |
+-----------+-------------+--------------------------------+----------+
1 row in set (0.00 sec)

위와 같은 값을 가지고 있을 것이고 저 IP는 변경되기 이전의 IP 주소가 될 것이다.
저 두 값을 새롭게 변경된 IP로 update해 주는 것이다.
참고로 위에서 2개의 SQL 쿼리로 해당 정보를 확인했는 아래와 같이해도 동일한 결과가 나온다.

MariaDB [mywp2]> select * from wp_options where option_name in ('siteurl', 'home');
+-----------+-------------+--------------------------------+----------+
| option_id | option_name | option_value                   | autoload |
+-----------+-------------+--------------------------------+----------+
|         2 | home        | http://192.168.0.10/wordpress | yes      |
|         1 | siteurl     | http://192.168.0.10/wordpress | yes      |
+-----------+-------------+--------------------------------+----------+
2 rows in set (0.00 sec)

이제 새롭게 바뀐 IP로 변경해 주도록 하자.

MariaDB [mywp2]> update wp_options set option_value='http://192.168.89.105/wordpress' where option_name='home';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [mywp2]> update wp_options set option_value='http://192.168.89.105/wordpress' where option_name='siteurl';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

WordPress 홈페이지의 IP 주소가 정상적으로 변경되었는지 확인해 보도록 하자.

MariaDB [mywp2]> select * from wp_options where option_name in('siteurl', 'home');
+-----------+-------------+--------------------------------+----------+
| option_id | option_name | option_value                   | autoload |
+-----------+-------------+--------------------------------+----------+
|         2 | home        | http://192.168.89.105/wordpress | yes      |
|         1 | siteurl     | http://192.168.89.105/wordpress | yes      |
+-----------+-------------+--------------------------------+----------+
2 rows in set (0.00 sec)

이후부터는 변경 된 IP 주소로 WordPress 홈페이지가 정상적으로 잘 접속이 될 것이다. 아래와 같이 변경된 IP로 WordPress 홈페이지에 접속해 본다.

http://192.168.89.105/wordpress 

댓글 없음:

댓글 쓰기