СЕРВЕР: Linux CENTOS 6 PLESK 10.4.4
Я устанавливал Wordpress на множество поддоменов на нашем выделенном сервере. Все они запускают задания CRON каждые 10 минут.
Короче говоря, время загрузки первого байта приближалось к более чем 10 секундам.
Я провел небольшое исследование и обнаружил, что eAccelerator помогает решать проблемы со скоростью для веб-сайтов с интенсивным использованием PHP и другого веб-сайта, который дает некоторые инструкции о том, как это сделать.
http://imanpage.com/code/how-install-yum-zend-optimizer-eaccelerator-and-apc
После установки репозитория Atomic и обновления 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: порт, и теперь отчеты 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 после долгой работы FINE внезапно перестали иметь возможность вызывать CLASS, который, как я знаю, включен (потому что раньше он работал нормально). Итак, теперь я понял:
Fatal error: Class 'PPT_Widgets_ARTICLES2' not found in /var/www/vhosts/md1network.com/albany/wp-includes/widgets.php on line 324
Этот конкретный класс находится в другом каталоге, но он там. Другая информация заключается в том, что файл, содержащий КЛАСС, был помещен туда путем извлечения заархивированного файла (через Plesk) с помощью PHP unzip. К сожалению, это повредило владельцу и разрешениям, но сайты были в порядке.
Я заметил, что обновление YUM переписало мой файл PHP.ini, поэтому я подумал, что он испортил путь включения. Я до сих пор не знаю, так ли это.
Я попытался изменить владельца и права доступа к файлу, в котором находится КЛАСС, а также к файлу widgets.php. Ничего из этого не сработало, и он все еще думает, что CLASS не существует. Фактически, каждый раз, когда вы включаете wp-config.php (который ОПРЕДЕЛЯЕТ базу данных MYSQL, пользователя и пароль, он выдает ту же ошибку в отношении этого глупого класса (который я написал и работал нормально, поэтому он не может быть все это глупо).
До этого единственными модами для сервера были установка FFMPEG и PHP TIDY.
ТАКЖЕ ... Еще одна странная вещь заключается в том, что все задания CRON работают БЕЗУПРЕЧНО и используют один и тот же ВКЛЮЧЕНИЕ wp-config.php.
Как будто проблема изолирована, когда PHP пытается запустить из браузера (eAccelerator?)
У меня есть еще один сайт Wordpress, который отлично работает на том же сервере после того, как я восстановил несколько его таблиц. На проблемных сайтах нет поврежденных таблиц.
Надеюсь, информации достаточно.
ПОЖАЛУЙСТА ПОМОГИ. Рик
У меня было много подобных проблем при использовании eAccelerator (таблицы базы данных, требующие ремонта, сбои базы данных, ошибки памяти PHP), когда я переключился на APC У меня больше не было проблем. Я тоже не уверен, о чем вы спрашиваете. Может быть, APC вам поможет.