Автор Тема: eAccelerator: shmmax should be at least 2MBPHP  (Прочетена 2590 пъти)

theshit

  • Гост
eAccelerator: shmmax should be at least 2MBPHP
« -: May 09, 2014, 23:13 »
Здравейте, имам следния проблем с php eAccelerator под NetBSD. Apache не ще да стартира. Apache Error Log:
Цитат
eAccelerator: shmmax should be at least 2MBPHP Warning:  [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0

Цитат
[root@nt001]# uname -a
NetBSD Nt001.tk 6.1_STABLE NetBSD 6.1_STABLE (nt001) #0: Fri May  2 01:04:10 EEST 2014  billy@nt001.tk:/usr/obj/sys/arch/i386/compile/nt001 i386

Цитат
[root@nt001]# php -v
PHP 5.3.28 (cli) (built: Apr  1 2014 01:31:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
    with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH
[root@nt001]#

Преди време имах същия проблем, бях намерил решение и го направих по тоя начин, но вече не мога, защото не го компилирам от порт колекция, а направо го инсталирам с pkgin (като apt-get, yum).

Някакви идеи  ??? :o

« Последна редакция: May 10, 2014, 10:35 от theshit »
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: eAccelerator: shmmax should be at least 2MBPHP
« Отговор #1 -: May 10, 2014, 00:00 »
Пробвай да зададеш стойността на kern.ipc.shmmax със sysctl
Цитат
sysctl -w kern.ipc.shmmax=БАЙТИ
Ако не ти позволи, задай стойността през kern.ipc.shmmaxpgs пак със sysctl
Цитат
sysctl -w kern.ipc.shmmaxpgs=БРОЙ
Имай предвид, че, тъй като PAGE_SIZE по подразбиране е 4096 байта, то ако искаш да зададеш kern.ipc.shmmax да е с размер 2МБ, то за kern.ipc.shmmaxpgs трябва да зададеш 512
Цитат
2 * 1024 * 1024 / 4096 = 512
Ако се получи, впиши крайните стойности в /etc/sysctl.conf, за да се прилагат тези стойности и при следващите зареждания на системата.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

theshit

  • Гост
Re: eAccelerator: shmmax should be at least 2MBPHP
« Отговор #2 -: May 10, 2014, 10:28 »
Цитат
[root@nt001]# sysctl kern.ipc.shmmaxpgs
kern.ipc.shmmaxpgs = 262144
[root@nt001]# sysctl -w kern.ipc.shmmaxpgs=2097152
kern.ipc.shmmaxpgs: 262144 -> 2097152
[root@nt001]# apachectl restart
[root@nt001]# cat /var/log/httpd/error_log
[Sat May 10 10:25:05 2014] [notice] SIGHUP received.  Attempting to restart
[Sat May 10 10:25:07 2014] [notice] Digest: generating secret for digest authentication ...
[Sat May 10 10:25:07 2014] [notice] Digest: done
[Sat May 10 10:25:08 2014] [notice] Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1g DAV/2 PHP/5.3.28 configured -- resuming normal operations

С  kern.ipc.shmmaxpgs стана, благодаря :)
Няма да забравя да го сетна в /etc/sysctl.conf за да се изпълнява при boot на машината ;)


# ааа още нещо, не те разбрах точно, какво искаше да кажеш. Има някакви зависимости между тия стойности ли ? В смисъл:

kern.ipc.shmmaxpgs  (в MB) * 1024 * 1024 / 4096 = kern.ipc.shmmaxpgs  (в MB) ? Или казано по по-лесния начин
kern.ipc.shmmaxpgs  / 4096 = kern.ipc.shmmaxpgs

Щото в случая даже като гледам е точно така:

kern.ipc.shmmax = 8589934592
kern.ipc.shmmaxpgs = 2097152

« Последна редакция: May 10, 2014, 11:03 от theshit »
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: eAccelerator: shmmax should be at least 2MBPHP
« Отговор #3 -: May 10, 2014, 14:26 »
Има някакви зависимости между тия стойности ли ?
Да. Зависимостта между kern.ipc.shmmaxpgs и kern.ipc.shmmax е същата, както съответно между броя на корите за яйца и броя на яйцата, които можеш да имаш общо в тях. В случая по подразбиране една кора за яйца побира 4096 яйца, така че, ако искаш да носиш 2097152 яйца ще ти трябват 512 кори, и съответно, ако имаш 512 кутии ще можеш да носиш 2097152 яйца :) 1 яйце е 1 байт споделена памет, а 1 кора за яйца е 1 страница (page) от тази памет.

Малко са ти объркани интерпретациите на формулата. Правилните са:
Цитат
kern.ipc.shmmax (в MB) * 1024 * 1024 / PAGE_SIZE = kern.ipc.shmmaxpgs (в брой)
kern.ipc.shmmax / PAGE_SIZE = kern.ipc.shmmaxpgs
където PAGE_SIZE по подразбиране е 4096 байта.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Проблем с инсталацията на eAccelerator
Настройка на програми
BlackPearl 6 1350 Последна публикация Jun 27, 2012, 17:02
от n00b