折腾:
【记录】crifan.com的WordPress网站从Linode搬家到腾讯云香港服务器
期间,网站从Linode搬家到腾讯云香港后,此处WordPress网站的页面能显示,但是内容完全是空的:
-》猜测是缓存的问题?
去清除Chrome浏览器缓存试试:
去试试能否登录后台:
https://www.crifan.com/wp-admin
是可以的:
那就去清除缓存
WP Super Cache ‹ 在路上 — WordPress
但是去访问单个页面还是空白:
https://www.crifan.com/use_online_website_build_self_logo/
去chrome中调试看看
500,内部错误
重启服务器试试
难道和php版本有关系?
-》也不对,否则后台也无法登录才对
重启后问题依旧。
看到chrome中错误是
<code> 1. Request URL: https://www.crifan.com/ 2. Request Method: GET 3. Status Code: 500 4. Remote Address: 150.109.113.228:443 5. Referrer Policy: no-referrer-when-downgrade 1. Response Headers 1. content-type: text/html; charset=UTF-8 2. date: Sun, 30 Dec 2018 03:40:18 GMT 3. link: <https://www.crifan.com/wp-json/>; rel="https://api.w.org/" 4. server: nginx 5. status: 500 6. vary: Accept-Encoding, Cookie </code>
看来是内部nginx配置有误
去看看内部配置
<code>[root@VM_0_11_centos ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@VM_0_11_centos ~]# cd /usr/local/nginx/conf/ [root@VM_0_11_centos conf]# ll total 88 -rw-r--r-- 1 root root 1077 Dec 25 21:02 fastcgi.conf ... -rw-r--r-- 1 root root 3610 Dec 25 21:02 win-utf [root@VM_0_11_centos conf]# cd vhost/ [root@VM_0_11_centos vhost]# ll total 4 -rw-r--r-- 1 root root 1530 Dec 30 11:17 www.crifan.com.conf [root@VM_0_11_centos vhost]# cat www.crifan.com.conf </code>
WordPress change host homepage blank
A Common way to fix the blank page in WordPress sites | InMotion Hosting
感觉更像是:WordPress的插件有问题?
去禁止掉插件试试
不过还是先去看看:
php的log
和WordPress的log
和nginx的log
看看
打开:
https://www.crifan.com/?p=62015
问题依旧。
看到会去访问:
倒是正常的。
先去停用:
Autoptimize
访问内容有变化:
-》很明显是去加载了原始的内容
但是本身
https://www.crifan.com/use_online_website_build_self_logo/
还是500
Moving WordPress « WordPress Codex
https://codex.wordpress.org/Moving_WordPress#If_you_forget_to_change_the_locations
感觉是:还是wp-config.php估计哪里配置有误?
后台中是可以正常获取post的内容的:
去停用:
Redis Object Cache
问题依旧。
看log:
<code>x.x.x.40 - - [30/Dec/2018:11:45:05 +0800] "GET /use_online_website_build_self_logo/ HTTP/2.0" 500 4946 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" </code>
好像都是强制指定Http 2.0?
去下载linode中nginx的配置去看看
对比对比
也才突然意识到:
<code>[root@crifan vhost]# pwd /usr/local/nginx/conf/vhost [root@crifan vhost]# ll total 8 -rw-r--r-- 1 root root 2266 Dec 6 2017 book.crifan.com.conf -rw-r--r-- 1 root root 2360 Sep 7 2017 www.crifan.com.conf </code>
之前还有
忘了下载下来呢
然后对比Linode的和Tencent的nginx的配置,发现貌似最大的怀疑对象是TLS v1.3
所以去修改配置试试
<code>ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; </code>
重新加载nginx配置:
<code>[root@VM_0_11_centos wwwlogs]# service nginx reload Redirecting to /bin/systemctl reload nginx.service </code>
看看是否有效,结果问题依旧。
https://codex.wordpress.org/Moving_WordPress
去修改Permalink试试
Nginx « WordPress Codex
https://codex.wordpress.org/Nginx
没用,访问:
https://www.crifan.com/?p=62015
还是跳转到:
https://www.crifan.com/use_online_website_build_self_logo/
WordPress get post 500
How to Fix the 500 Internal Server Error in WordPress (with Video)
看log问题依旧
https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-internal-server-error-in-wordpress/
有说到PHP的memory limit,感觉不像
php – WordPress permalink change throws 500 Internal Server Error – Stack Overflow
难道是:.htaccess
把Default主页中index.html拷贝过来:
<code>[root@VM_0_11_centos www.crifan.com]# cp ../default/index.html . [root@VM_0_11_centos www.crifan.com]# ll index.html -rw-r--r-- 1 root root 18081 Dec 30 12:49 index.html [root@VM_0_11_centos www.crifan.com]# pwd /data/wwwroot/www.crifan.com </code>
去访问:
https://www.crifan.com/index.html
是正常的 -》说明nginx的配置没有错
难道是 wp-config.php没有加上可执行权限吗?
去加上
<code>[root@VM_0_11_centos www.crifan.com]# chmod +x wp-config.php [root@VM_0_11_centos www.crifan.com]# ll -lha wp-config.php -rwxr-xr-x 1 www www 3.6K Dec 26 23:03 wp-config.php </code>
结果没用。
php – WordPress: 500 Internal Server Error, probable issue using $wpdb – Stack Overflow
去加上debug
然后发现是php代码兼容有问题的:
大前端的主题 和其他地方有问题:
但是menu等信息还是没显示出来-》所以还是要去消除掉 那些warning
先去看第一个:
<code>Notice: wp_deregister_script的调用方法不正确。脚本和样式应在wp_enqueue_scripts、admin_enqueue_scripts和login_enqueue_scripts钩子之后再加入加载队列(enqueue)或注册(register)。 请查阅调试WordPress来获取更多信息。 (这个消息是在3.3.0版本添加的。) in /data/wwwroot/www.crifan.com/wp-includes/functions.php on line 4204 </code>
wp-includes/functions.php Notice: wp_deregister_script的调用方法不正确
WordPress php7 wp-includes/functions.php Notice: wp_deregister_script的调用方法不正确
Topic: wp_enqueue_style was called incorrectly | WordPress.org
Topic: register_uninstall_hook was called incorrectly | WordPress.org
Topic: Longstanding Errors | WordPress.org
Topic: Deprecated functions | WordPress.org
感觉好像都只是notice,不严重
但是看到一个:
<code>in /data/wwwroot/www.crifan.com/wp-includes/functions.php on line 3959 Warning: preg_replace(): Unknown modifier ']' in /data/wwwroot/www.crifan.com/wp-content/themes/daqianduan-d8-jquiss/header.php on line 71 </code>
Warning: preg_replace(): Unknown modifier ] daqianduan-d8-jquiss/header.php
wordpress php7 Warning: preg_replace(): Unknown modifier ] daqianduan-d8-jquiss/header.php
Topic: Warning: preg_replace(): Unknown modifier ‘0’ in | WordPress.org
Topic: PHP 7+ (7.2) Compatability | WordPress.org
Topic: PHP 7 Errors | WordPress.org
再去参考:
PHP 7.x preg_replace替换了ereg_replace,D8主题崩坏 – Slyar Home
去看看别人是怎么替换的
人家说了:
<code>ereg_replace("<div[^>]*><ul[^>]*>" </code>
换成:
<code>preg_replace("/<div[^>]*><ul[^>]*>/" </code>
即除了换函数外,规则中,前后都加上/
替换后,上传到服务器上:
重启php
<code>service php-fpm restart </code>
后,再去访问,主页中菜单终于显示了:
虽然顶部还有很多notice警告,但是无所谓了。
另外再去恢复之前禁止的2个插件。
再去恢复固定链接:
再去恢复默认的let’s encrypt的nginx配置,带支持TLS v1.3
<code>[root@VM_0_11_centos vhost]# ll total 4 -rw-r--r-- 1 root root 1530 Dec 30 11:17 www.crifan.com.conf [root@VM_0_11_centos vhost]# rm -f www.crifan.com.conf [root@VM_0_11_centos vhost]# rz rz waiting to receive. Starting zmodem transfer. Press Ctrl+C to cancel. Transferring www.crifan.com_LetEncryptedGenerated.conf... 100% 1 KB 1 KB/sec 00:00:01 0 Errors [root@VM_0_11_centos vhost]# ll total 4 -rw-r--r-- 1 root root 1530 Dec 30 11:17 www.crifan.com_LetEncryptedGenerated.conf [root@VM_0_11_centos vhost]# mv www.crifan.com_LetEncryptedGenerated.conf www.crifan.com.conf [root@VM_0_11_centos vhost]# service nginx reload Redirecting to /bin/systemctl reload nginx.service </code>
【总结】
此处WordPress搬家后,网站主页:
基本上是白屏
但是大前端主题的框架还能显示。
调查到最后:
通过开启了WordPress的wp-config.php的
define(‘WP_DEBUG’, true);
后,发现原因是:
php版本安装了php7后,大前端的主题中的很多文件中的:
ereg_replace
都报错了 -》 导致(Chrome调试发现)网页返回500错误
解决办法:
把ereg_replace都换成preg_replace
且语法也要略有修改。
-》
把
/wp-content/themes/daqianduan-d8-jquiss
中的7个文件:
<code>➜ daqianduan-d8-jquiss tree . . ├── header.php └── pages ├── archives.php ├── links.php ├── page.php ├── readers.php ├── tags.php └── tougao.php 1 directory, 7 files </code>
的
<code>ereg_replace("<div[^>]*><ul[^>]*>" </code>
换成:
<code>preg_replace("/<div[^>]*><ul[^>]*>/" </code>
即可。
转载请注明:在路上 » 【已解决】WordPress网站搬家后页面显示但不显示内容