【準備】
1、三臺主機:
兩臺服務器(我的是虛擬機),假設從舊服務器(192.168.1.101)遷移到新服務器(192.168.1.102)。新主機操作系統爲Ubuntu Server 18.04 LTS。
一臺主機(我的是Deepin Linux)用來遠程ssh和ftp操作,安裝有瀏覽器、FileZilla、終端,所有操作在這臺主機進行。
2、備份舊服務器數據
(1)主機使用FileZilla把192.168.1.101服務器的/var/www/html目錄整個拷貝到本機的一個目錄下;
(2)瀏覽器輸入:http://192.168.1.101/phpmyadmin
用phpMyAdmin將數據庫遷移,點擊左側wordpress,然後右側點擊導出,導出爲sql文件,也保存在本機的一個目錄下。
【新服務器配置】
1、登錄新服務器
本機打開終端,輸入
ssh 192.168.1.102
2、安裝LAMP
sudo apt install lamp-server^
給/var/www/html賦予讀寫權限
sudo chmod -R 777 /var/www/html
3、修改MySQL5.7的root密碼
sudo nano /etc/mysql/debian.cnf
找到用戶名:debian-sys-maint,密碼:fPw**********b22(這是隨機生成的)
複製這個密碼
Ctrl+X,退出
mysql -u debian-sys-maint -p
Enter password:輸入剛纔找到的密碼
接下來,設置root用戶密碼(假設爲123456)
mysql> update mysql.user set authentication_string=PASSWORD(“123456″) where User=’root’;
mysql> update mysql.user set plugin=”mysql_native_password”;
mysql> flush privileges;
mysql> quit;
注意:雙引號和單引號都是英文的,如果複製時發生問題,記得改過來
關閉再啓動MySQL
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
用root用戶和密碼進去看看
mysql -u root -p
4、安裝和配置phpMyAdmin
sudo apt install phpmyadmin
設定 phpmyadmin時按空格鍵選apache2
Configure database for phpmyadmin with dbconfig-common? 選擇yes
輸入數據庫密碼
然後,重啓apache,Mysql
sudo service apache2 restart
sudo service mysql restart
瀏覽器http://192.168.1.102/phpmyadmin看是否出現初始登錄界面
5、安裝和設置vsftpd
sudo apt install vsftpd
sudo mkdir /home/ftp
sudo chmod -R 777 /home/ftp
sudo useradd -m ftp
sudo passwd ftp
目錄/home/ftp和用戶ftp都有了,接下來配置vsftpd
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
然後把下面這段粘貼進去
listen=YES
max_clients=200
max_per_ip=4
seccomp_sandbox=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
local_root=/home/ftp/
然後Ctrl+X,Y,保存退出
接下來,編輯鎖定的用戶名單
sudo gedit /etc/vsftpd.chroot_list
打開是個空白文件,將需要的用戶名寫進去,這些用戶之前是已經建立,比如這次要把用戶ftp、abc、def設爲可用的用戶,就這樣寫:
ftp
abc
def
注意每行後面不要留空格。保存,退出。
接下來,重啓一下vsftpd
sudo service vsftpd restart
6、修改php上傳最高權限
(默認上傳爲2MB,這是爲了恢復數據庫文件的,根據數據庫大小,比如修改到50MB)
sudo nano /var/www/html/info.php
空白文件,粘貼下面內容:
<?php
phpinfo();
?>
然後Ctrl+X,Y,保存退出
瀏覽器http://192.168.1.102/info.php
找到Loaded Configuration File,這樣就可以找到/etc/php/7.2/apache2/php.ini
sudo nano /etc/php/7.2/apache2/php.ini
找到以下項目,修改爲50MB
post_max_size = 50M
upload_max_filesize = 50M
然後Ctrl+X,Y,保存退出
【恢復備份到新服務器】
1、恢復WordPress
主機使用FileZilla把html目錄下的所有文件上傳到192.168.1.102
這樣就把WordPress本尊和內容都一次性遷移過去了
2、數據庫還原
主機瀏覽器:http://192.168.1.102/phpmyadmin
語言:選中文
用戶名:root
密碼:建LAMP環境時設置的密碼
點擊數據庫,輸入數據庫名,比如wordpress,然後點擊創建。
(注意,這個數據庫名必須和之前備份的sql文件裏的一致,不記得的話可以用文本編輯器打開sql文件,找到— Database: `wordpress`,就是這個名字)
點擊導入,選擇sql文件(之前保留在本機的數據庫備份文件),然後執行。遇到問題,忽略即可。
【啓用新服務器】
現在可以將舊服務器(192.168.1.101)關機
ssh 192.168.1.101
sudo shutdown now
接下來把這個IP給新服務器,這是爲了照顧局域網內其他主機使用方便
ssh 192.168.1.102
Ubuntu Server 18.04修改的方法如下:
sudo nano /etc/netplan/50-cloud-init.yaml
然後編輯如下(IP改爲192.168.1.101,路由器IP爲192.168.1.1):
network:
ethernets:
ens33:
dhcp4: no
dhcp6: no
addresses: [192.168.1.101/24]
dhcp4: false
optional: true
gateway4: 192.168.1.1
nameservers:
addresses: [114.114.114.114,8.8.8.8]
version: 2
Ctrl+X,輸入Y,回車保存退出
執行如下命令讓配置生效,靜態IP就配置好了
netplan apply
這時主機會斷線,因爲服務器IP變動了
接下來,主機新開終端:
ssh 192.168.1.101
出現Host key verification failed
會出現祕鑰不對,不能登錄,這時主機的問題
sudo mv ~/.ssh/known_hosts ~/.ssh/known_hosts.bak
把祕鑰文件內容清空掉就好了
再次執行ssh 192.168.1.101
輸入:yes
完成了
瀏覽器:http://192.168.1.101,原來的主頁回來了
這樣,新主機就和原先的設置完全一致了。
【後記】
我的服務器是VMWare虛擬機,由於VMWare對Linux類操作系統的碎片回收不好,會出現越用空間越大的問題,用VMWare自帶的壓縮功能也是得不到好的解決。
所以乾脆用遷移新虛擬機的方法來解決,有一個好處就是軟件是最新的,而且空間最節省。
用Ubuntu Server沒有安裝圖形界面,又可以節省一些空間。
我原來的服務器虛擬機從9GB膨脹到45GB,經過遷移後,新的服務器虛擬機不到6GB。