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