服务器:Linux CENTOS 6 PLESK 10.4.4
我已经在我们专用服务器上的许多子域上安装了 Wordpress。它们每 10 分钟运行一次 CRON 作业。
长话短说,加载第一个字节的时间已经超过 10 秒。
我做了一些研究,发现 eAccelerator 有助于解决 PHP 密集型网站的速度问题,另一个网站也提供了一些有关如何执行此操作的说明。
http://imanpage.com/code/how-install-yum-zend-optimizer-eaccelerator-and-apc
安装 Atomic repo 并执行 YUM 更新后,我像这样安装了 eAccelerator:
yum install php-eaccelerator.x86_64
安装后我检查了 PHP 版本,发现了以下内容:
PHP 5.3.14 (cli) (built: Jun 14 2012 16:34:56)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with eAccelerator v0.9.6-svn358-dev, Copyright (c) 2004-2007 eAccelerator, by eAccelerator
with the ionCube PHP Loader v4.0.10, Copyright (c) 2002-2011, by ionCube Ltd.
所以我当时想...是的,这很容易。
然后我开始注意到所有的问题。
首先,我的几个 MYSQL 表崩溃了,必须修复。让 REPAIR 在 PHPMyAdmin 中工作的唯一方法是先通过 SCP 登录,并将实际数据库文件的所有者从空白更改为 MYSQL。此后,修复成功,表也正常了。
接下来,我正在运行的一个连接到外部 MYSQL 服务器的作业突然因密码验证错误而停止工作。我将连接字符串从 DBHOST 更改为实际 IP:port,现在 CRON 报告:
PHP Warning: mysql_connect(): Lost connection to MySQL server at 'reading initial communication packet', system error: 111 in /usr/local/bin/video-queue.php on line 230
最后,我这样做的原因是,我所有的 Wordpress 安装在长时间运行良好后,突然无法调用我知道已包含的类(因为之前运行良好)。所以现在我得到了这个:
Fatal error: Class 'PPT_Widgets_ARTICLES2' not found in /var/www/vhosts/md1network.com/albany/wp-includes/widgets.php on line 324
该特定类位于另一个目录中,但它确实存在。另一条信息是,包含该类的文件是通过使用 PHP unzip 解压压缩文件(通过 Plesk)放置在那里的。不幸的是,这搞砸了所有者和权限,但网站没有问题。
我注意到 YUM 更新重写了我的 PHP.ini 文件,所以我认为它搞乱了包含路径。我仍然不知道是否是这种情况。
我尝试过更改 CLASS 所在文件以及 widgets.php 文件的所有者和权限。这些都不起作用,它仍然认为 CLASS 不存在。事实上,只要你包含 wp-config.php(它定义了 MYSQL db、用户和密码),它就会抛出与那个愚蠢的类相同的错误(这是我编写的,运行良好,所以它不可能那么愚蠢)。
在此之前,对服务器的唯一修改是安装 FFMPEG 和 PHP TIDY。
另外...另一件奇怪的事情是,所有的 CRON 作业都运行完美,并且它们使用相同的 wp-config.php INCLUDE。
当 PHP 尝试从浏览器(eAccelerator?)运行时,问题似乎被孤立了。
我的另一个 Wordpress 网站在修复了几个表格后,在同一台服务器上运行良好。有问题的网站没有任何损坏的表格。
我希望这些信息足够了。
请帮忙。里克
答案1
我在使用 eAccelerator 时遇到了许多类似的问题(数据库表需要修复、数据库崩溃、PHP 内存错误),但当我切换到亚太经合组织我不再遇到任何问题。我也不确定你到底在问什么。也许 APC 可以帮到你。