遷移 wordpress 博客主機(jī)

wordpress 博客遷移到新的服務(wù)器上,其實(shí)很簡單,整機(jī)遷移即可,將數(shù)據(jù)庫、wordpress博客文件打包壓縮后,在新的服務(wù)器上啟用就好了。但中間有一些細(xì)節(jié),比如新采購的阿里云服務(wù)器,空機(jī)器,啥也沒有,需要搭建 wordpress 的運(yùn)行環(huán)境,對 php 等運(yùn)行原理不怎么熟悉的人來說,浪費(fèi)的很多時間。

需求如下,域名 abc.com 原來采用 https://www.hostinger.com.hk/ 的年費(fèi)主機(jī),之前采用的原因是方便,集成了 wordpress 環(huán)境,直接在后臺頁面操作就可以,關(guān)鍵是便宜些,比起國內(nèi)的廠商便宜很多。hostinger有免費(fèi)的主機(jī), 推薦對速度性能要求不高的人來用一下。 現(xiàn)在打算將 abc.com 對應(yīng)的博客遷移到阿里云上,購買的阿里云 ecs 服務(wù)器,空盤 centos 6.8 ;其實(shí)初始化時候可以直接從云市場購買 wordpress 的服務(wù),不過后來才知道。

搭建 wordpress 的運(yùn)營環(huán)境,我們知道 wordpress 是用 php 寫的,所以很自然的想到 lnmp 架構(gòu),好在 lnmp 搭建很方便,https://lnmp.org/ 按照說明安裝即可,等待時間看網(wǎng)絡(luò)情況了,我大概是20分鐘左右。 這里提一下 lnmp 安裝后軟件都去了哪些目錄: https://lnmp.org/faq/lnmp-software-list.html

軟件位置:

  • Nginx:/usr/local/nginx/
  • MySQL:/usr/local/mysql/
  • MariaDB:/usr/local/mariadb/
  • PHP:/usr/local/php/
  • PHPMyAdmin:/home/wwwroot/default/phpmyadmin/
  • 默認(rèn)虛擬主機(jī)網(wǎng)站目錄:/home/wwwroot/default/
  • Nginx日志目錄:/home/wwwlogs/

配置文件

  • Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
  • MySQL/MariaDB配置文件:/etc/my.cnf
  • PHP配置文件:/usr/local/php/etc/php.ini
  • PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf
  • PureFtpd配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
  • Apache配置文件:/usr/local/apache/conf/httpd.conf

lnmp 搭建好后,php、nginx、mysql 都已經(jīng)起來好了,在原主機(jī) hostinger 后臺進(jìn)行備份 db 和網(wǎng)站文件,下載對應(yīng)的 zip 包,下載后上傳到新的阿里云 ecs 上面,可以采用 scp 、rz、或者其它的 ssh 工具等。

一、恢復(fù) db 數(shù)據(jù)

我安裝的是 mariadb ,登錄 : /usr/local/mariadb/bin/mysql -u root -p,輸入安裝時數(shù)據(jù)庫的密碼即可進(jìn)入:

[tester@ixirong bin]$ /usr/local/mariadb/bin/mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 756
Server version: 10.1.23-MariaDB Source distribution
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 創(chuàng)建數(shù)據(jù)庫,執(zhí)行導(dǎo)出的 sql 文件,即可恢復(fù)網(wǎng)站數(shù)據(jù)
MariaDB [(none)]> create database testdb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use testdb;
Database changed
MariaDB [testdb]>source /home/tester/abc.com.sql

二、恢復(fù)網(wǎng)站 wordpress 文件

wordpress 備份恢復(fù)很簡單,將原有 hostinger 主機(jī)上 public_html 目錄下所有文件zip 包,拷貝到 ecs 虛擬機(jī)上面,解壓縮即可,我放到了目錄 /home/tester/public_html下面了。

-rw-r--r--  1 u783329617 u783329617   418 Sep 17  2016 index.php
-rw-r--r--  1 u783329617 u783329617 19935 Aug  5 08:03 license.txt
-rw-r--r--  1 u783329617 u783329617  6956 Aug  5 08:03 readme.html
-rwxrwxrwx  1 u783329617 u783329617 42385 Aug  4 22:42 sitemap_baidu.xml
-rw-r--r--  1 u783329617 u783329617  5447 Aug  5 08:03 wp-activate.php
drwxr-xr-x  9 u783329617 u783329617  4096 Sep 17  2016 wp-admin
-rw-r--r--  1 u783329617 u783329617   364 Sep 17  2016 wp-blog-header.php
-rw-r--r--  1 u783329617 u783329617  1627 Aug  5 08:03 wp-comments-post.php
-rw-r--r--  1 u783329617 u783329617  2930 Aug  5 08:03 wp-config-sample.php
-rw-------  1 u783329617 u783329617  3519 Oct 21  2016 wp-config.php
drwxr-xr-x 10 u783329617 u783329617  4096 Oct 21  2016 wp-content
-rw-r--r--  1 u783329617 u783329617  3286 Sep 17  2016 wp-cron.php
drwxr-xr-x 18 u783329617 u783329617 12288 Aug  5 08:03 wp-includes
-rw-r--r--  1 u783329617 u783329617  8044 Sep 17  2016 wp-itapi.php
-rw-r--r--  1 u783329617 u783329617  2422 Aug  5 08:03 wp-links-opml.php
-rw-r--r--  1 u783329617 u783329617  3301 Aug  5 08:03 wp-load.php
-rw-r--r--  1 u783329617 u783329617 34327 Aug  5 08:03 wp-login.php
-rw-r--r--  1 u783329617 u783329617  8048 Aug  5 08:03 wp-mail.php
-rw-r--r--  1 u783329617 u783329617 16200 Aug  5 08:03 wp-settings.php
-rw-r--r--  1 u783329617 u783329617 29924 Aug  5 08:03 wp-signup.php
-rw-r--r--  1 u783329617 u783329617  4513 Aug  5 08:03 wp-trackback.php
-rw-r--r--  1 u783329617 u783329617  3065 Aug  5 08:03 xmlrpc.php

注意: wp-config.php 文件里面存儲著 wordpress 的數(shù)據(jù)庫連接串信息,及時根據(jù)自己剛才創(chuàng)建的 db 的數(shù)據(jù)庫信息,庫名、用戶名、密碼、前綴信息及時更新,不更新的話,待會 nginx 配置好后通過 http://127.0.0.1 來訪問創(chuàng)建也可以。

三、nginx 配置可訪問 wordpress 內(nèi)容

這塊是重點(diǎn),比如配置后出現(xiàn) 403 forbidden,之前的博客內(nèi)容出現(xiàn)404頁,首頁 500/502 打不開等都是配置不正確的原因。
在配置之前,先略微了解下原因,nginx 是無法解析 php 語言的內(nèi)容的,所以需要 fast-cgi 模塊來處理,關(guān)于 CGI、FastCGI、PHP-FPM、PHP-CGI 分別是什么,卻別又是啥,應(yīng)該用哪個 !http://www.awaimai.com/371.html

看完之后應(yīng)該可以理解了,我們需要使用 php-fpm 來解析 php 程序,通過 nginx 將請求轉(zhuǎn)發(fā)到 php-fpm 上來。
php-fpm 啟動方式以及參數(shù)如下:

# 配置地方,詳情文件參考 https://wizardforcel.gitbooks.io/nginx-doc/content/Text/6.5_nginx_php_fpm.html
# /usr/local/php/etc/php-fpm.conf  
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi.sock   ##注意這個地方很多教程上都是配置的 127.0.0.1:9000 
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log

如果需要重啟的話,直接重新加載配置即可:/etc/init.d/php-fpm reload

nginx 配置最終的配置如下,注意有注釋的地方:

server
    {
        listen 80 default_server;    
        server_name _;    
        index index.php;
        root /home/u783329617/public_html;
        #error_page   404   /404.html;
        
        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;  ##這是 php-fpm 對接的地方
        include wordpress.conf;   ## 這是 wordpress 的配置,如果不加入,則會報(bào)404錯誤
        access_log  /home/wwwlogs/access.log;
    }
    include vhost/*.conf;  ##這是其它的域名配置

enable-php.conf、wordpress.conf 的配置如下:

   # enable-php.conf
    location ~ [^/]\.php(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock; #這個地方的配置要看/usr/local/php/etc/php-fpm.conf的 listen 處,很多教程配置都是 127.0.0.1:9000 
            fastcgi_index index.php;
            include fastcgi.conf;
        }

   # wordpress.conf
   location / {
        try_files $uri $uri/ /index.php?$args;
     }

    # Add trailing slash to */wp-admin requests.
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

nginx 配置完成后重新加載文件 /usr/local/nginx/sbin/nginx -s reload 后直接訪問 http:127.0.0.1 就能看到經(jīng)典的 wordpress 的安裝文件了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容