換成16.04 TLS(18.04 TLS)

OPENVPN 搬好了。但wordpress 搬不成功原因

由14 TLS 下do-release-upgrade 出現幾個錯誤,是與mysql my.cnf 與wordpress 資料庫結構有誤,這部分又因mysql 新版有strict mode有關

wordpress.wp_comments
error    : Table rebuild required. Please do "ALTER TABLE <code>wp_comments</code> FORCE" or dump/reload to fix it!
wordpress.wp_links
error    : Table rebuild required. Please do "ALTER TABLE <code>wp_links</code> FORCE" or dump/reload to fix it!
wordpress.wp_mbp_ping_optimizer

其間還原幾次VM與使用全新TLS ISO安裝測試,原以為先改動設定可避免升級錯誤,而從2014版升級,但搞到最後nginx與php-fpm 卻丟出 blank page ,這問題也有很多人遇到,找、看、試花了快一整天。

因為太久沒搞這些連php語法也忘了

<? phpinfo(); ?>

要使用

<?php phpinfo(); ?>

這也讓我搞好久。

最後我復原是使用

  • 全新TLS版本安裝
  • 關閉Cloudflare SSL 及CDN功能 因為會干擾
  • apt-get update

    apt-get upgrade -y
  • 安裝
    apt-get install nginx mysql-server php-fpm php-cgi php-mysql php-curl php-gd php-geoip php-xmlrpc php-xsl php-json
  • 建立mysql 中的wordpress 資料庫,建立帳號與權限付予
    CREATE DATABASE wordpress;
    CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
  • 下載最新版 wordpress,主要是把需要東西給建立起來.先把root 改到這新版的地方,把資料填好,把後續要的DB資料建立完成(不確定要不要做)下次再看看略過這步,或許mysqldump的資料就夠了
  • 修改nginx.conf  中 log 格式與 default 站台中的www root,php-fpm 的資料,由於換成php7 有些與php5 大不同,指的路徑也會有變化,要留意。
log_format main '$remote_addr - "$http_X_Forwarded_For" - $remote_user [$time_local] '
        '"$request" $status $body_bytes_sent "$http_referer" '
        '"$http_user_agent"' ;
        root /var/www/wordpress;

        # Add index.php to the list if you are using PHP
        index index.php index.htm index.nginx-debian.html;
        access_log /var/log/nginx/blog.funseed.net.access.log main;
        error_log /var/log/nginx/blog.funseed.net.error.log;
        server_name blog.funseed.net;

        location ~ /.ht {
               allow xxxxxxxx;
               allow 192.168.0.0/24;
               deny all;
        }

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.php;
        }
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
                # include snippets/fastcgi-php.conf;
        
                # With php7.0-cgi alone:
                # fastcgi_pass 127.0.0.1:9000;
                # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_index   index.php;
                include         fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
        }

php-fpm 的設定, 補充:在 2018年再次升級至18.04時 這裡會有版本問題,升級成7.2 造成網頁回覆Bad Gateway, 要改成新對應的 7.2 版路徑。

同樣的下方的設定,在不同的版本路徑也有不同,如5.X、7.X等等。

/etc/php/7.0/fpm/pool.d/www.conf

的使用方式unix socket 或  ip:port

listen = /run/php/php7.0-fpm.sock
  • rsync 原來wordpress目錄
rsync -avzP [email protected]:/var/www/wordpress .
  • 由舊主機使用mysqldump 丟出sql 檔,再scp 過新主機
mysqldump -u root -p wordpress > xxx.sql
  • 匯入 sql 至mysql 之中
  • 重新啟動server

升級18.04 TLS還有出現下列幾個問題:

在php 安裝中少了 xml 模組,rutorrent視窗中有錯誤訊息.

 apt install php-xml

curl 也有問題,主要是是ssl的支援,沒有裝好,RSS 功能會有問題,共做了下面的幾個指令才修復

sudo apt-get install libcurl-compat 
sudo apt install libcurl3 libcurl-openssl1.0-dev 
sudo apt install libcurl4 
sudo apt install curl

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料