Кривой eaccelerator, который нужно патчить при каждом чихе.
Например могут встретиться такие ошибки:
[error] [client 1.1.1.1] eAccelerator: Unable to change cache directory /var/cache/php-eaccelerator permissions
или
Fatal error: Invalid opcode 153/1/8. in /var/www/.../pdofetch.class.php on line 494
Для устранения первой ошибки мне помог этот патч:
# diff -U 0 eaccelerator.c_old eaccelerator.c
--- eaccelerator.c_old 2016-08-16 14:17:15.331786184 +0300
+++ eaccelerator.c 2016-08-16 13:34:36.592906639 +0300
@@ -1770 +1770 @@
- if (buffer.st_mode != 777) {
+ if (buffer.st_mode != 040777) {
Для второй:
# diff -U 0 optimize.c_old optimize.c
--- optimize.c_old 2016-08-08 12:00:02.000000000 +0300
+++ optimize.c 2016-08-08 12:00:43.000000000 +0300
@@ -3503,0 +3504,11 @@
+ /* do not optimize if opcodes have "closures" */
+ zend_op* op = op_array->opcodes;
+ int len = op_array->last;
+ int line_num;
+
+ for (line_num = 0; line_num < len; op++,line_num++) {
+ if (op->opcode == ZEND_DECLARE_LAMBDA_FUNCTION) {
+ return;
+ }
+ }
+
Например могут встретиться такие ошибки:
[error] [client 1.1.1.1] eAccelerator: Unable to change cache directory /var/cache/php-eaccelerator permissions
или
Fatal error: Invalid opcode 153/1/8. in /var/www/.../pdofetch.class.php on line 494
Для устранения первой ошибки мне помог этот патч:
# diff -U 0 eaccelerator.c_old eaccelerator.c
--- eaccelerator.c_old 2016-08-16 14:17:15.331786184 +0300
+++ eaccelerator.c 2016-08-16 13:34:36.592906639 +0300
@@ -1770 +1770 @@
- if (buffer.st_mode != 777) {
+ if (buffer.st_mode != 040777) {
Для второй:
# diff -U 0 optimize.c_old optimize.c
--- optimize.c_old 2016-08-08 12:00:02.000000000 +0300
+++ optimize.c 2016-08-08 12:00:43.000000000 +0300
@@ -3503,0 +3504,11 @@
+ /* do not optimize if opcodes have "closures" */
+ zend_op* op = op_array->opcodes;
+ int len = op_array->last;
+ int line_num;
+
+ for (line_num = 0; line_num < len; op++,line_num++) {
+ if (op->opcode == ZEND_DECLARE_LAMBDA_FUNCTION) {
+ return;
+ }
+ }
+
Также можно еще в /etc/php.d/eaccelerator.ini попробовать сменить значение переменной eaccelerator.cache_dir:
eaccelerator.cache_dir = "/tmp"
;eaccelerator.cache_dir = "/var/cache/php-eaccelerator"
Комментариев нет:
Отправить комментарий