WordPress搬家全攻略
零、前言
我自己有兩個博客,一個是你看到的這個,專門用來寫我的技術(shù)文章;另一個是我自己的心情記錄博客,專門記錄和技術(shù)無關(guān)的東西。
之前我的心情記錄博客一直放在openshift上面,這是redhat官方搞的一個云平臺。好處是一鍵就可以搞定博客的部署,非常方便。但是使用了一段時間之后發(fā)現(xiàn)了兩個問題:固定的https以及網(wǎng)絡(luò)問題。
固定的https是什么意思呢?就是只能通過https訪問,如果是http就無法訪問。我Google了N多方法,最后還是解決不了這個問題。
網(wǎng)絡(luò)問題主要是不穩(wěn)定。畢竟是國外的云平臺,大家都懂的,國內(nèi)訪問速度慢就不說了,還經(jīng)常上不去,發(fā)一篇文章卡半天。。。
最終讓我決定搬家的一件事:放假回家之后居然徹底上不去了。
忍無可忍無需再忍!我決定把博客搬家到我的vps上。
一、原理介紹
我自己也是新手,怕搞壞影響到vps上的其他站,所以非常小心,百度了超多文章,確定自己搞清楚原理才正式操作。這里我簡單總結(jié)一下原理,不感興趣的可以直接跳過了。
先說下環(huán)境吧:
Ubuntu12.04 + Nginx + PHP + spawn-fcgi + WordPress + MySQL
原理其實(shí)很簡單:
Nginx是整個vps的代理,負(fù)責(zé)把外來的訪問請求轉(zhuǎn)發(fā)到各個“下家”,在本例中下家就是PHP。雖然PHP本身有php-cgi,但是因?yàn)椴惶?#xff0c;作為服務(wù)器部署不夠,所以我們使用spawn-fcgi來代替php-cgi。spawn-fcgi的作用簡單說就是“保姆”,它負(fù)責(zé)保證PHP的正常運(yùn)行,同時它代替PHP成為Nginx的“下家”。
因?yàn)閃ordPress就是用PHP寫的,所以對WordPress的訪問其實(shí)最終是對PHP的訪問。
上面說的大家可能有點(diǎn)混亂,下面我們舉個例子:
當(dāng)我在瀏覽器訪問http://for-never.name時,會有一條請求發(fā)送到我的vps,到達(dá)vps之后首先是Nginx接收,Nginx一看,哦,你是找for-never.name,那么就把你轉(zhuǎn)發(fā)給wordpress,然后wordpress的頁面需要PHP解析,同樣會發(fā)一條請求給Nginx,Nginx一看,哦,你找PHP,那么就轉(zhuǎn)發(fā)給spawn-fcgi,然后spawn-fcgi接收請求之后讓PHP處理,處理結(jié)果返回Nginx,Nginx再返回給WordPress,然后WordPress再返回給Nginx,Nginx再返回給外部請求,也就是我發(fā)起的那個請求,這樣我的瀏覽器里就會顯示出來網(wǎng)頁了。
有點(diǎn)亂,大家稍微理解一下就懂了。
下面就是實(shí)戰(zhàn)了,分為兩部分,博客搭建以及數(shù)據(jù)轉(zhuǎn)移。
二、博客搭建
上面已經(jīng)介紹了原理,大家可能會問,那Nginx怎么知道什么請求發(fā)給誰呢?這個就是我們要做的工作了,對Nginx進(jìn)行配置,告訴它不同請求對應(yīng)的不同“下家”。
首先我們先把需要的東西都安裝好:
安裝nginx: sudo apt-get install nginx 安裝PHP和php-cli: sudo apt-get install php5 php5-cli 安裝spawn-fcgi: sudo apt-get install spawn-fcgi 安裝WordPress: wget http://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz注意:
1、很多教程里說不能直接安裝spawn-fcgi,其實(shí)是可以的。
2、大家記一下wordpress解壓后(也就是tar命令執(zhí)行之后)的路徑,這里假設(shè)為/wordpress/wordpress/ 。
3、這里我沒有介紹安裝MySQL的方法,因?yàn)槲业膙ps之前就已經(jīng)安裝過MySQL,所以我這次搬家并沒有安裝MySQL。大家可以自己去搜索一下Ubuntu安裝及配置MySQL。
好了,現(xiàn)在我們已經(jīng)安裝完成了,下面進(jìn)行配置。
首先,我們先用“保姆”spwan-fcgi把PHP運(yùn)行起來:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid注意:
1、-p是端口,你可以自己更改,但是一定要記住是什么端口。
接下來配置Nginx:
首先找到你的nginx.conf文件,我的是在/etc/nginx/下面。
在同目錄下創(chuàng)建一個文件,名字叫fastcgi-params,文件內(nèi)容為:
fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol;fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name;fastcgi_param HTTPS $https;# PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;保存。
然后打開nginx.conf文件,在http{}段里面添加:
server { listen 80; server_name www.for-never.name for-never.name; server_name_in_redirect off; root /wordpress/wordpress; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; } }注意:
1、 server_name 就是你的域名。
2、root 就是上文提到的,WordPress的解壓路徑。
3、fastcgi_pass 就是上文提到的spawn-fcgi那條命令里面的ip和端口。
?
好了,配置完之后重啟nginx:
/usr/sbin/nginx -s reload然后訪問網(wǎng)站,發(fā)現(xiàn)已經(jīng)出來WordPress的安裝界面了。
?
大家先別著急安裝,還有最后一步:
chown -R www-data /wordpress/wordpress/ chown -R www-data /wordpress/wordpress/* chgrp -R www-data /wordpress/wordpress/ chgrp -R www-data /wordpress/wordpress/* chmod +x /wordpress/wordpress/ chmod +x /wordpress/wordpress/*?這步的作用:
1、將wordpress目錄下的所有文件的所有者更改為www-data。這個www-data是nginx使用的用戶,大家可以查看一下nginx.conf里面的user項(xiàng),如果不一樣就改過去。這條命令如果不運(yùn)行的話,后面使用WordPress時候會出現(xiàn)權(quán)限問題。
2、chmod是給wordpress目錄下所有文件添加執(zhí)行權(quán)限,這條也是為了防止權(quán)限問題。
?
好了,現(xiàn)在可以安裝了。
安裝完之后更改wp-config.php,把define("WPLANG", ""); 這句改成define("WPLANG", "zh_CN"); 然后保存,在后臺就可以升級為中文版了。
如果大家不需要轉(zhuǎn)移數(shù)據(jù)的話那就可以開始使用了。
三、數(shù)據(jù)轉(zhuǎn)移
我之前的博客是使用wp-db-backup這個插件進(jìn)行備份的,備份的是sql文件。
數(shù)據(jù)轉(zhuǎn)移其實(shí)很簡單,就是把這個sql文件導(dǎo)入到wordpress的數(shù)據(jù)庫里。運(yùn)行
mysql -uroot -p命令,輸入密碼進(jìn)入MySQL,然后輸入:
use wordpress;進(jìn)入wordpress數(shù)據(jù)庫,大家的庫如果名字不一樣記得修改。然后輸入:
source /xxx/xxx/backup.sql;這樣就會把backup.sql的內(nèi)容寫入wordpress數(shù)據(jù)庫。
?
我導(dǎo)入數(shù)據(jù)之后本來以為已經(jīng)搞定了,但是打開頁面發(fā)現(xiàn)是一片空白。這是怎么回事呢?
仔細(xì)研究sql文件之后發(fā)現(xiàn),原來這個sql文件不僅包含之前的數(shù)據(jù),也包含之前網(wǎng)站的配置,比如域名什么的。所以我們打開sql文件(使用文本編輯器就可以),把之前的域名都替換成現(xiàn)在的域名,然后重新導(dǎo)入——搞定!
?
下面就是進(jìn)行各種個性化設(shè)置了,大家自由發(fā)揮吧~
四、后記
搬家大概搞了兩天才搞定,中間遇到了不少困難。在此記錄下來以供大家參考。
如果有什么寫錯的地方歡迎大家指出!文筆不好,多多諒解!
謝謝~
轉(zhuǎn)載于:https://www.cnblogs.com/numbbbbb/p/3259478.html
總結(jié)
以上是生活随笔為你收集整理的WordPress搬家全攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用HTML5开发离线应用 - cach
- 下一篇: ZOJ 2432 Greatest Co