最近一位客户在 1&1 购买了 VPS,我将 Worpress 站点从旧的共享主机 (Bluehost) 移至新的 VPS。该站点极慢并且我不知道如何解决这个问题,这意味着攻击的位置,如果我应该在 Apache 中优化某些东西,如果我应该安装一些插件来避免这个或其他东西所以我需要一些忠告。关于该 WP 的一些数据:
- 数据库拥有大约 35,000 个帖子
- 我已禁用 W3C Total Cache 插件,因为我认为它配置不当并且会降低网站速度
- 我没有使用任何图像压缩器,如
thimbthumb
(这是最初安装的,但出于安全原因,我从网站上删除了) - VPS 有两个内核和 4GB 内存,运行 Centos、PHP 5.3.3、MySQL 5.5.x 和 Apache 2.2.15
可以给我一些想法吗?建议?经验?不知道还能做什么或如何解决这个问题,我的知识还没有到此为止。
注:网址为this自己测试,注意它有多慢
执行测试:
为了找到我启用的瓶颈:
Wordpress 调试日志:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors',0);
这记录了大部分时间这样的错误
[13-Feb-2015 12:01:46] PHP 注意:未定义的属性:stdClass::$category_parent in/var/www/vhosts/elclarinweb.com/httpdocs/sistema/wp-content/themes/elclarin_v2/functions.php 第 136 行
MySQL 日志:
mysql.log
、mysqld.log
和mysqld_slow.log
对于 mysql.log
,我注意到大量访问,对于 mysqld_slow.log
,我注意到以下输出:
SET timestamp=1423830131;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.001520 Lock_time: 0.000043 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830131;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# Time: 150213 13:22:14
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.003051 Lock_time: 0.000097 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830134;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.003259 Lock_time: 0.000097 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830134;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# Time: 150213 13:22:15
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.001597 Lock_time: 0.000048 Rows_sent: 227 Rows_examined: 261
为什么一直执行同一个查询?任何 Web 服务器线程正在杀死我的 Wordpress?
最佳答案
看来你至少需要仔细看三方面:
- 服务器创建页面需要多长时间
- GZip 压缩
- 页面显示时加载的内容。
服务器需要很长时间才能创建您的页面。所有的 SQL 查询都可能是原因。您将需要找出标准页面的数据库事件。如果您能分辨出是什么导致了该事件,它将为您提供有关如何攻击它的线索。即使在速度较慢的 VPS 上,WordPress 本身通常也不会那么慢。
其次,您的站点未设置为使用 GZip。只需打开 GZip 即可显着减少要下载的数据量。
第三,您在上面提供的链接中的页面发出了 168 个不同的 HTTP 请求。页面显示时间如此之长也就不足为奇了。其中一些请求会阻止浏览器开始显示(呈现)页面。我建议您使用类似 WebPageTest 的网站.它将分析您的网站并为您提供有关确切情况的详细信息。然后您可以查看每个下载的项目,看看是否有加快速度的方法。
关于mysql - Wordpress 在 VPS 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28499673/