导语:叶子为提高服务器的性能,为一个客户做了一次数据迁移,从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秒。
如果以后用户多了,那么可以将静态资源使用对象存储,迁移到其他的服务器上,那么这时候,主服务器的压力一样不大。
结束
你学会了吗?