ฉันจะเปิดใช้งาน OPCache ของ PHP 5.5 ได้อย่างถูกต้องใน Ubuntu 14.04 อย่างไร


10

ฉันตั้งค่าเซิร์ฟเวอร์ท้องถิ่นเพื่อทดสอบการกำหนดค่า เป็นเซิร์ฟเวอร์ clean 14.04 LAMP ตามที่เลือกระหว่างการติดตั้งระบบปฏิบัติการ

ถ้าฉันเข้าใจถูกต้อง OPCache จะมาพร้อมกับ PHP 5.5 ( php -vยืนยันสิ่งนี้) แต่อยู่ในสถานะปิดใช้งาน ฉันได้ทำตามคำแนะนำของอินเทอร์เน็ตเพื่อเปิดใช้งาน แต่ฉันได้รับข้อความที่หลากหลายว่าสิ่งนี้ประสบความสำเร็จหรือไม่

ของฉันphp.iniมี

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

กระนั้นphp -iหลังจากรีสตาร์ทเครื่องกำลังบอกฉัน

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

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

นั่นคือมันเปิดใช้งานได้ชัดเจนและปิดการใช้งานพร้อมกัน

การเปิดใช้งาน OPCache เป็นไปได้ด้วยแพคเกจ PHP ที่เก็บ 14.04 หรือฉันจำเป็นต้องรวบรวม PHP จากแหล่งที่มา?

คำตอบ:


8

ด้วยเหตุผลบางอย่างการตั้งค่าfast_shutdown=1ทำให้เกิดปัญหาและป้องกัน OPCache ไม่ให้เริ่มทำงาน เมื่อตั้งค่า0นี้แล้ว OPCache จะสามารถใช้งานได้สำเร็จ (อาจเกี่ยวข้องกับข้อผิดพลาดนี้หรือไม่)

สิ่งที่จำเป็นทั้งหมดในการเปิดใช้งาน OPCache คือการตั้งค่า

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

ใน Apache php.iniแล้วตามด้วยการรีสตาร์ทเซิร์ฟเวอร์

service apache2 restart

หมายเหตุด้านข้าง: php -iมีแนวโน้มที่จะใช้แตกต่างphp.iniจาก Apache (เช่น/etc/php5/cli/php.ini) ดังนั้นความแตกต่างที่ทำให้เกิดความสับสนในคำถามต้นฉบับ


สิ่งนี้ไม่ได้แก้ไขปัญหาของฉัน มีแนวคิดอื่นอีกไหม? ฉันใช้ php5-fpm และกำลังแก้ไข php.ini ที่ถูกต้อง (การปิดระบบอย่างรวดเร็วเปลี่ยนจาก 1 เป็น 0 ใน PHPInfo) และฉันรีสตาร์ท php5-fpm และ nginx
Maciej Swic

สำหรับฉันยังคงเป็นปัญหาเดียวกัน: / logs: [เสาร์ 13 มิถุนายน 19: 54: 33.435550 2015] [แกน: แจ้งให้ทราบล่วงหน้า] [pid 19088] AH00060: ข้อผิดพลาด seg $ PHP คำเตือน: โมดูล 'Zend OPcache' โหลดแล้วในไม่รู้จักในบรรทัด 0 PHP คำเตือน: Zend OPcache: การลงทะเบียนโมดูลล้มเหลว! ในไม่รู้จักในบรรทัด 0
Codium

ฉันคิดออกแล้ว ฉันติดตั้ง opcache ผ่าน sudo php5enmod opcache
Codium

ดังนั้นถ้า/etc/php5/cli/php.iniไม่ถูกต้องเส้นทางที่ถูกต้องคืออะไร?
Qian Chen

2

ฉันประสบปัญหาเดียวกันนี้ตลอดทั้งวันและดีใจที่ฉันแก้ไขได้ด้วยวิธีการด้านล่าง แม้ว่าคำตอบข้างต้นจะถูกทำเครื่องหมายเป็นคำตอบ แต่ก็ยังเห็นได้อย่างชัดเจนจากความคิดเห็นต่อคำตอบนั้นโดยไม่ได้ตอบคำถามอย่างสมบูรณ์

ไฟล์ที่ถูกต้องที่จะเปิดใช้งานอยู่

/etc/php5/cli/conf.d 

จากนั้นป้อนข้อมูลต่อไปนี้ในนั้น

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

อย่าลืมรีสตาร์ท apache

ใช้เครื่องมือเช่นสถานะ Opcache เพื่อตรวจสอบว่าทุกอย่างเรียบร้อยและมันจะช่วยคุณในการปรับแต่ง

หวังว่าจะช่วยใครซักคน


1

ฉันพบปัญหานี้เมื่อใช้ php-fpm ฉันค้นพบใน /etc/php5/fpm/conf.d ว่ามี symlink 05-opcache.iniไป../../mods-available/opcache.iniและหนึ่ง20-opcache.iniชี้ไปที่สถานที่เดียวกัน นั่นเป็นสาเหตุของความขัดแย้ง

ฉันลบหนึ่ง (20 ตั้งแต่ที่มีวันที่แก้ไขในภายหลัง) เริ่ม php-fpm และทุกอย่างกลับมา


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.