【 更新備忘 】

更新至5.2.2

今天终于下定决心把wordpress升一下级。
结果发现需要php7.2版本支持。于是跑去问主机客服能不能升。回答说能升,但是就相当于换一次主机。所以要我一键备份一键恢复。
我点进去看了一下,发现,原来我只用了3g多一点的空间。于是备份,下载,上传。
换主机,换ip。一下午就弄了这些。

升完php版本之后,把wordpress给升了,发现传说中的新编辑器真是一言难尽。
还好已经有先驱出马,给了一句代码恢复原样。
已经习惯文本编辑的我,实在是搞不来可视化编辑。

既然已经折腾了,想着把可恶的https也搞一下吧。
于是装了个插件[ Really Simple SSL ]。装完之后,全站又崩了。
继续求助主机客服。
居然过了几分钟就可以了,也不知道他怎么弄了一下。看了一下文件根目录,好像有个公共一个私人的。把公共的文件似乎直接复制过去了?不太懂会不会占用我的空间。到时候出问题再继续求助好了。

所以今天更新折腾的结果就是,这个主机服务商的服务好好哦。
其实还想继续搞定网站备案来着。 搞定,备案可参考这里
工信部的备案不知道去哪里申请,可能最新的公安备案更好吧。


更新后,似乎没法修改主题。一直会出现错误“未能与站点联系来检查致命错误,因此PHP修改已被回滚。您需要采用其他方式(如SFTP)上传您修改的PHP文件。”的提示。
搜了一下发现按照下面这样改可能可以避免,但不知道副作用是什么。
方法来自这里
找到wp-admin/includes/file.php文件
搜索
if ( $theme instanceof WP_Theme ) {
在这句话前的

下面这段话删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
	if ( $is_active && 'php' === $extension ) {
 
		$scrape_key   = md5( rand() );
		$transient    = 'scrape_key_' . $scrape_key;
		$scrape_nonce = strval( rand() );
		set_transient( $transient, $scrape_nonce, 60 ); // It shouldn't take more than 60 seconds to make the two loopback requests.
 
		$cookies       = wp_unslash( $_COOKIE );
		$scrape_params = array(
			'wp_scrape_key'   => $scrape_key,
			'wp_scrape_nonce' => $scrape_nonce,
		);
		$headers       = array(
			'Cache-Control' => 'no-cache',
		);
 
		// Include Basic auth in loopback requests.
		if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
			$headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
		}
 
		// Make sure PHP process doesn't die before loopback requests complete.
		@set_time_limit( 300 );
 
		// Time to wait for loopback requests to finish.
		$timeout = 100;
 
		$needle_start = "###### wp_scraping_result_start:$scrape_key ######";
		$needle_end   = "###### wp_scraping_result_end:$scrape_key ######";
 
		// Attempt loopback request to editor to see if user just whitescreened themselves.
		if ( $plugin ) {
			$url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
		} elseif ( isset( $stylesheet ) ) {
			$url = add_query_arg(
				array(
					'theme' => $stylesheet,
					'file'  => $file,
				),
				admin_url( 'theme-editor.php' )
			);
		} else {
			$url = admin_url();
		}
		$url                    = add_query_arg( $scrape_params, $url );
		$r                      = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
		$body                   = wp_remote_retrieve_body( $r );
		$scrape_result_position = strpos( $body, $needle_start );
 
		$loopback_request_failure = array(
			'code'    => 'loopback_request_failed',
			'message' => __( 'Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.' ),
		);
		$json_parse_failure       = array(
			'code' => 'json_parse_error',
		);
 
		$result = null;
		if ( false === $scrape_result_position ) {
			$result = $loopback_request_failure;
		} else {
			$error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
			$error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
			$result       = json_decode( trim( $error_output ), true );
			if ( empty( $result ) ) {
				$result = $json_parse_failure;
			}
		}
 
		// Try making request to homepage as well to see if visitors have been whitescreened.
		if ( true === $result ) {
			$url                    = home_url( '/' );
			$url                    = add_query_arg( $scrape_params, $url );
			$r                      = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
			$body                   = wp_remote_retrieve_body( $r );
			$scrape_result_position = strpos( $body, $needle_start );
 
			if ( false === $scrape_result_position ) {
				$result = $loopback_request_failure;
			} else {
				$error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
				$error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
				$result       = json_decode( trim( $error_output ), true );
				if ( empty( $result ) ) {
					$result = $json_parse_failure;
				}
			}
		}
 
		delete_transient( $transient );
 
		if ( true !== $result ) {
 
			// Roll-back file change.
			file_put_contents( $real_file, $previous_content );
			if ( function_exists( 'opcache_invalidate' ) ) {
				opcache_invalidate( $real_file, true );
			}
 
			if ( ! isset( $result['message'] ) ) {
				$message = __( 'Something went wrong.' );
			} else {
				$message = $result['message'];
				unset( $result['message'] );
			}
			return new WP_Error( 'php_error', $message, $result );
		}
	}

更新日:2022/02/09 · 11:08


————本日志版权归花莫笑所有。
日志内的相关图文请勿转载。

Support By henghost
©2006-2023 ファモシャオの声優レコード | WordPress Theme: Cosimo by CrestaProject.