如果 WordPress 當初設定的 URL (設定 / 一般 / Wordpress 位址 , 網站位址) 為 IP 時,搬家的同時連 IP 也要換掉,這就有一點麻煩了.
測試環境為 CentOS 7 x86_64 + Apache (Httpd)
先來看一下 wordpress 搬家需要備份資料為 wordpress 網頁 與 資料庫.
[root@localhost ~]$ tar zcvf wordpress.tar.gz /var/www/html
[root@localhost ~]$ mysqldump -u root -p wordpress > mysql.sql Enter password:
資料庫還不能還原,因為裡面的資料皆為舊 IP ,最簡單的方式就是透過 文字編輯器打開 SQL 檔案 (mysql.sql) ,使用取代功能把舊的 IP 修改成新的 IP 即可.
或是先還原資料庫再透過 phpMyAdmin 來修改資料庫資料.
還原 wordpress 網頁,並複製到新的 http DocumentRoot .
[root@localhost ~]$ tar zxvf wordpress.tar.gz [root@localhost ~]$ rsync -avP ./var/www/html/* /var/www/html/
還原資料庫
[root@localhost ~]$ mysql -u root -p Enter password: mysql > create database wordpress; mysql> grant all privileges on wordpress.* to suser@localhost identified by 'your.password' ; mysql > exit; [root@localhost ~]$ mysql -u root -p wordpress < mysql.sql Enter password:
透過 phpMyAdmin 來修改 wordpress 資料庫的資料
搬家方式不止一種,更多關於 WordPress 搬家請參考 https://codex.wordpress.org/Changing_The_Site_URL#Changing_the_URL_directly_in_the_database
需編輯 wp-config.php
[root@localhost ~]$ vi /var/www/wp-config.php define( 'WP_HOME', 'http://example.com' ); define( 'WP_SITEURL', 'http://example.com' );
最後還要再設定一次 WordPress 固定網址設定 (Apache)
[root@localhost ~]$ vi /etc/httpd/conf/httpd.conf <Directory /var/www> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
[root@localhost ~]$ vi /var/www/.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
其中的 RewriteBase , RewriteRule 需依據實際相對位置填寫( Apache http 預設資料夾路徑為 /var/www/html )
[root@localhost ~]$ chown apache:apache /var/www/.htaccess
詳細說明請參考 https://benjr.tw/10918
遇到一個比較奇怪的問題,就是搬家後在 Firefox 瀏覽器輸入新網站 IP 但卻一直被導向舊網站的 IP ,後來是把 Cached Web Conten (Preferences / Advanced Network) 清除就正常了.