将wordpress从nginx+php5.6迁移到apache+php7后出现的若干问题

导语:叶子为提高服务器的性能,为一个客户做了一次数据迁移,从nginx迁移到apache,从php5.6升级到php7,迁移后出现了一些问题。

伪静态化的问题

迁移后出现固定网址访问不了,原因是apache需要编写一个.htaccess的文件放在根目录下面,内容如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

# END WordPress

后台不能访问

登录后台网址/wp-admin/直接出现错误:[] operator not supported for strings。这个问题是因为使用了低版本的Slider Revolution插件。

低版本的Slider Revolution插件在php7中运行时,会出现此问题,从版本5.3.02开始,修复了这个问题。

插件configure smtp出现警告

如果是使用了configure smtp插件,它会出现下面的报错内容。

options_page_description($localized_heading_text = '') in wp-content/plugins/configure-smtp/configure-smtp.php on line 47

那么你打开configure-smtp.php,在171行找到:

public function options_page_description() {

改为

public function options_page_description($localized_heading_text = '') {

对于nginx的一点看法

因为nginx支持上万的静态并发处理,所以有很多的同学就迷信这个,想象自己的网站在上万并发访问下能流畅访问。

我要说的是,服务器的性能是一个整体,即使的web服务器支持,那么你的数据库呢?它能支持吗?即使你把所有网页都静态化,但如果你的文章够多,还是会拖垮数据库。

再者,当你有上万并发的时候,已经不是一台服务器能够解决的问题了。它需要专业的数据库服务器,对象缓存服务器,负载均衡服务器了。

一个小网站,比如叶子,就老实的追求稳定和响应速度吧。

这次要迁移的原因是,一台2核4G的阿里云在采用nginx+apache+php5.6的服务器,上了memcached ,上了opcache,一个页面58次查询响应时间始终保持在1.5秒,吐血了。

赶紧的,迁移到一台1核1G的apache+php7的阿里云服务器上,上了memcached ,上了opcache,一个页面58次查询响应时间只需要0.2秒。

如果以后用户多了,那么可以将静态资源使用对象存储,迁移到其他的服务器上,那么这时候,主服务器的压力一样不大。

结束

你学会了吗?

发表评论

邮箱地址不会被公开。 必填项已用*标注