Jak poprawnie włączyć OPCache PHP 5.5 w Ubuntu 14.04?

10

Konfiguruję lokalny serwer do testowania konfiguracji; to czysty serwer 14.04 LAMP, wybrany podczas instalacji systemu operacyjnego.

Jeśli dobrze rozumiem, OPCache zawiera PHP 5.5 ( php -vpotwierdza to), ale jest w stanie wyłączonym. Postępowałem zgodnie z sugestiami Internetu, aby je włączyć, jednak otrzymuję mieszane wiadomości o tym, czy to się udało.

Mój php.inima

zend_extension=/usr/lib/php5/20121212/opcache.so
opcache.enable=1
opcache.enable_cli=1

jednak php -ipo ponownym uruchomieniu komputera mówi mi

Opcode Caching => Disabled
Optimization => Disabled
Startup Failed => Opcode Caching is disabled for CLI

opcache.enable => On => On
opcache.enable_cli => Off => Off

tzn . jest najwyraźniej włączony i jednocześnie wyłączony.

Czy włączenie OPCache jest możliwe w pakiecie PHP repozytorium 14.04, czy też muszę skompilować PHP ze źródła?

mtdevans
źródło

Odpowiedzi:

8

Z jakiegoś powodu ustawienie fast_shutdown=1powodowało problemy i uniemożliwiało uruchomienie OPCache. Po ustawieniu tej opcji 0OPCache działa poprawnie (być może związany z tym błędem ?).

Dlatego wszystko, co jest potrzebne do włączenia OPCache, to ustawienie

; Determines if Zend OPCache is enabled
opcache.enable=1

w Apache php.ininastępuje restart serwera

service apache2 restart

Uwaga dodatkowa: php -izwykle używa innego php.ininiż Apache (np. /etc/php5/cli/php.ini), Stąd myląca rozbieżność w pierwotnym pytaniu.

mtdevans
źródło
To nie rozwiązało mojego problemu. Jeszcze jakieś pomysły? Używam php5-fpm i edytuję poprawne php.ini (szybkie zamknięcie zmieniło się z 1 na 0 w PHPInfo) i zrestartowałem php5-fpm oraz nginx
Maciej Swic
Dla mnie wciąż ten sam problem: / logs: [Sat Jun 13 19: 54: 33.435550 2015] [core: notice] [pid 19088] AH00060: seg fault $ PHP Ostrzeżenie: Moduł 'Zend OPcache już załadowany w Nieznany w linii 0 PHP Ostrzeżenie: Zend OPcache: rejestracja modułu nie powiodła się! w Nieznany w linii 0
Codium
Zrozumiałem to. Zainstalowałem opcache przez sudo php5enmod opcache
Codium
Więc jeśli /etc/php5/cli/php.inijest niepoprawny, jaka jest właściwa ścieżka?
Qian Chen,
2

W ciągu dnia napotykałem dokładnie ten sam problem i cieszę się, że rozwiązałem go w następujący sposób. Chociaż powyższa odpowiedź jest oznaczona jako odpowiedź, z komentarzy do tej odpowiedzi jasno wynika, że ​​nie odpowiada ona w całości na pytanie.

Prawidłowy plik do włączenia znajduje się w

/etc/php5/cli/conf.d 

Następnie wprowadź następujące informacje

zend_extension=opcache.so
opcache.memory_consumption=128
opcache.max_accelerated_files=2500
opcache.interned_strings_buffer=8
opcache.revalidate_freq=60
opcache.fast_shutdown=1

Nie zapomnij zrestartować Apache

Użyj narzędzia, takiego jak status Opcache, aby sprawdzić, czy wszystko jest w porządku, a pomoże ci to w dostrojeniu obszarów.

Mam nadzieję, że komuś pomoże.

Vinu D.
źródło
1

Natknąłem się na to podczas korzystania z php-fpm. Odkryłem w /etc/php5/fpm/conf.d, że istnieje dowiązanie 05-opcache.inido ../../mods-available/opcache.inii jedna 20-opcache.iniskierowana w tym samym miejscu. To spowodowało konflikt.

Usunąłem jedną (20, ponieważ miała późniejszą datę modyfikacji), ponownie uruchomiłem php-fpm i wszystko wróciło.

apple4ever
źródło
0

poprawny plik to :/etc/php5/apache2/conf.d/user.ini

Hanmant
źródło