2010-01-29 10 views
8

Po prostu zauważyłem, że nie jestem w stanie zwiększyć mojego limitu pamięci powyżej wartości skonfigurowanej w php.ini przy użyciu ini_set(). Mogę jednak ustawić ją na dowolną wartość poniżej i zwiększyć ją do dowolnej innej wartości poniżej wartości zdefiniowanej w pliku ini.Nie można zwiększyć memory_limit z ini_set()

Czy ktoś wie, dlaczego tak się dzieje i jak mogę to naprawić?

+0

Czy prowadzisz własny serwer? Czy masz hostowane konto? –

+4

Wierzę, że memory_limit jest ustawieniem chronionym. Na serwerze współdzielonym byłoby bezsensowne zezwolenie skryptowi na użycie całej dostępnej pamięci. Więc jeśli jesteś na współdzielonym serwerze, sposób na obejrzenie jest pytaniem twojej firmy hostingowej; na dedykowanym serwerze, należy zmienić to ustawienie w pliku php.ini. – zneak

+0

Zneak ma rację. Możesz poprosić swojego dostawcę usług internetowych o zwiększenie limitu dla ciebie. – Ben

Odpowiedz

12

To dziwne, zgodnie z instrukcją limit pamięci można ustawić w dowolnym miejscu.

  • Czy masz zainstalowanego Suhosin? Dzięki Suhosin możliwe jest narzucenie globalnego limitu pamięci.

  • Czy masz plik .htaccess leżący gdzieś w pobliżu, mówiąc: php_value memory_limit xyz?

  • Czy masz aktywną ochronę Shell Fork Bomb? Może narzucić globalny limit pamięci. Zobacz pytanie dotyczące SO here. (Przypuszczam, że to może być część Suhosin).

  • Co mówi twój phpinfo() na temat wartości "local" i "global" memory_limit?

  • W jaki sposób określasz limit, czy możesz opublikować fragment kodu?

+3

Wielkie dzięki, to była łata z Suhosin. Wartość domyślna 'suhosin.memory_limit' powodowała takie zachowanie: http://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit – soulmerge

1

Sprawdź ustawienie "safe_mode" - jeśli jest włączone, może uniemożliwić podniesienie limitu pamięci (mimo że nie jest to udokumentowane).

+0

'safe_mode' jest wyłączone – soulmerge

0

Nie można zastąpić limitu pamięci na współdzielonych kontach hostingowych. to proste. zdobądź prywatny (dedykowany) hosting i poprosisz swojego dostawcę, aby ustawił go na maksa (choć nie jest to zalecane).

+0

Powodem, dla którego nie jest możliwe na współdzielonych kontach hostingowych jest to, że normalnie mają włączony tryb" safe_mode ", co nie ma miejsca na moim komputerze lokalnym. – soulmerge

Powiązane problemy