Di atas web, anda dengan mudah akan menemui banyak tutorial yang meliputi semua langkah pemasangan dan konfigurasi Opcache (ia didayakan secara lalai pada 5.5, tetapi boleh dipasang sebagai lanjutan pada versi lama). Baca artikel di bawah untuk mencari jawapan kepada beberapa soalan biasa mengenai aspek praktikal yang berbeza untuk bekerja dengan enjin cache tertentu ini.
1. Adakah Opcache patut dipasang sama sekali? Apa rangsangan kelajuan yang boleh saya harapkan?
Jika anda sedang mencari beberapa ujian prestasi Opcache, anda pasti perlu membaca artikel AppDynamics mengenai melaksanakan enjin cache ini. Dalam ujian mereka, pemasangan Opcache mengurangkan masa tindak balas min laman web sebanyak 14%. Pengurangan masa tindak balas tindakan yang berbeza dari aplikasi web bervariasi dari 6% hingga sebanyak 74%. Seperti yang dijelaskan dalam artikel, bahagian kod yang berbeza mungkin memberi manfaat lebih kurang daripada melaksanakan enjin caching bytecode. Saya menggalakkan anda membaca artikel secara terperinci dan periksa di mana anda boleh mendapatkan peningkatan prestasi tertinggi.
Jika anda mencari beberapa sumber lain mengenai prestasi Opcache, periksa contoh di Fideloper.com dan MassiveCale.com. Kedua -dua ujian melaporkan kira -kira 50% penurunan masa tindak balas selepas memasang OPCACHE.
Saya fikir anda sepatutnya. Terdapat beberapa kelebihan yang boleh menjadikan Opcache penyelesaian yang lebih baik daripada APC.
Pertama sekali, cache APC tidak akan berfungsi dengan versi PHP terbaru. Ia tidak menyokong PHP 5.5 sama sekali. Ia tidak dinasihatkan untuk memasangnya pada Php 5.4 sama ada, kerana telah dilaporkan bahawa konfigurasi tersebut boleh membawa kepada kesilapan pelaksanaan yang memecahkan keseluruhan permohonan. Cukup periksa artikel Wikipedia mengenai PHP Accelerators atau thread limpahan stack ini untuk mendapatkan beberapa butiran.
Satu -satunya perkara penting yang perlu diingat apabila berpindah dari APC ke Opcache adalah hakikat bahawa yang terakhir tidak berfungsi sebagai enjin caching data. Jika anda telah melaksanakan APC, anda mungkin menggunakan fungsi APC_ADD () dan APC_Fetch () yang berfungsi sebagai antara muka kepada perkhidmatan caching data. Opcache hanya enjin caching bytecode supaya ia tidak akan menawarkan fungsi yang sama. Jika anda merancang untuk beralih dari APC ke Opcache, ingatlah untuk mempertimbangkan batasan ini. Perlu diingat bahawa jika anda ingin mengekalkan fungsi userland APC, terdapat projek APCU (banyak terima kasih kepada Oscar Merina kerana menunjukkannya dalam komen).
Jika anda telah memasang dan mengkonfigurasi Opcache, anda mungkin mendapati penting untuk mengawal fail PHP yang sebenarnya di -cache. Enjin cache keseluruhan berfungsi di latar belakang dan telus kepada pelawat atau pemaju web. Untuk memeriksa statusnya, anda boleh menggunakan salah satu daripada dua fungsi yang memberikan maklumat sedemikian: OPCACHE_GET_CONFIGURATION () dan OPCACHE_GET_STATUS (). Nasib baik, terdapat beberapa scrips yang disediakan yang mengambil semua konfigurasi dan data status Opcache dan memaparkannya dengan cara yang mesra. Anda tidak perlu menulis apa -apa kod sendiri, hanya ambil salah satu alat dari ini di bawah:
- Panel Kawalan Opcache,
-Opcache-Status oleh Rasmus Lerdorf,
- Opcachegui oleh Pieter Hordijk,
-Opcache-Gui oleh Andrew Collington.
Dalam projek saya, saya menggunakan skrip Opcache-Gui yang mempunyai semua fungsi yang saya perlukan. Untuk memeriksa sama ada enjin caching berfungsi dengan betul, lihat sahaja peratusan di tab "Gambaran Keseluruhan" di halaman Opcache-Gui. Jika penggunaan memori dan nilai hit kadar lebih besar daripada sifar, ini bermakna OPCACHE adalah cache kod PHP dan fail cache sedang digunakan untuk mengendalikan permintaan. Untuk melihat senarai fail PHP tertentu yang di -cache, hanya navigasi ke tab "Penggunaan Fail". Lihat melalui senarai fail untuk memastikan bahawa fail di dalam projek anda mendapat cache.
Pertama sekali, mungkin dalam setiap projek biasa, anda perlu memastikan bahawa pilihan opcache.use_cwd ditetapkan kepada benar. Membolehkan tetapan ini bermakna bahawa enjin Opcache akan melihat laluan fail penuh untuk membezakan antara fail dengan nama yang sama. Menetapkannya kepada palsu akan membawa kepada perlanggaran antara fail dengan nama asas yang sama.
Terdapat juga tetapan yang penting dalam alat dan kerangka yang menggunakan anotasi. Jika anda menggunakan doktrin, Rangka Kerja Zend 2 atau PHP, ingatlah untuk menetapkan tetapan opcache.load_comments dan opcache.save_comments kepada Benar. Hasilnya, komen dokumentasi dari fail anda juga akan dimasukkan ke dalam kod yang dipraktikkan yang dihasilkan oleh OPCACHE. Tetapan ini akan membolehkan anda bekerja dengan anotasi tanpa sebarang gangguan.
Jika projek anda didasarkan pada rangka kerja tertentu atau aplikasi web, ia sentiasa merupakan idea yang baik untuk menyemak dokumentasi untuk sebarang garis panduan mengenai konfigurasi Opcache. Sebagai contoh, terdapat konfigurasi sampel untuk Moodle di sini.
Jika projek anda mengandungi fail yang sedang diubah lebih kerap daripada yang lain, anda boleh mengecualikannya daripada caching. Ia mungkin sangat berguna apabila berurusan dengan fail PHP yang mengandungi arahan konfigurasi untuk laman web anda. Sekiranya anda menghalangnya daripada di -cache, anda boleh memastikan bahawa setiap perubahan dimasukkan ke dalam fail sedemikian akan dapat dilihat dalam permohonan anda dengan segera.
Opcache membolehkan anda menentukan fail senarai hitam yang mengandungi semua laluan yang tidak akan diproses oleh enjin caching. Selepas menetapkan arahan opcache.blacklist_filename, letakkan senarai fail yang betul dalam laluan yang telah anda tentukan. Halaman dokumentasi mengandungi beberapa contoh tentang cara mengecualikan fail tertentu dari cache.
Jika pelayan anda menjalankan beberapa aplikasi, anda mungkin bersedia menggunakan Opcache hanya di sebahagian daripada mereka. Laman pembangunan dan ujian adalah contoh persekitaran sedemikian di mana mempunyai bait bait yang didayakan tidak lebih baik dan boleh menyebabkan lebih banyak kemudaratan daripada yang baik.
Untungnya, mungkin ada OPCache yang didayakan dalam satu projek dan dilumpuhkan di dalam yang lain, semuanya pada satu pelayan. Untuk berbuat demikian, pertama anda perlu mengaktifkan opcache di peringkat global dengan menetapkan Arahan Opcache.enable kepada TRUE dalam fail php.ini anda. Kemudian, jika anda tidak mahu menggunakan caching byteCode dalam salah satu projek anda, lumpuhkannya dengan menetapkan arahan yang sama kepada palsu menggunakan fungsi ini_set (). Oleh itu, pertama -tama anda perlu membolehkan caching di seluruh dunia dan kemudian anda boleh melumpuhkannya dalam beberapa projek "tempatan". Anda tidak boleh melakukan yang bertentangan - membolehkan caching menggunakan ini_set () tidak dibenarkan.
menetapkan opcache.enable untuk palsu dalam fail teratas dalam projek anda akan melumpuhkan caching sambil menyimpannya di tempat lain.
Saya harap set soalan dan jawapan yang sama memberi anda beberapa maklumat praktikal tentang cara menggunakan OPCACHE dalam aplikasi PHP. Jika anda mempunyai soalan atau komen lain mengenai subjek, jangan ragu untuk menyiarkannya di bawah. Anda juga boleh menghubungi saya melalui Google Plus.
Bagaimana saya boleh mengaktifkan OPCACHE dalam konfigurasi PHP saya? Cari bahagian yang dilabel [Opcache] dan tukar nilai opcache.enable kepada 1. Jika bahagian atau arahan tidak wujud, anda boleh menambahnya. Setelah membuat perubahan, simpan fail dan mulakan semula pelayan web anda untuk perubahan yang berlaku. Menggunakan fungsi OPCACHE_GET_STATUS () dalam PHP. Fungsi ini mengembalikan pelbagai maklumat mengenai status Opcache, termasuk tetapan konfigurasi, penggunaan memori, dan kadar hit. Anda boleh menggunakan maklumat ini untuk mengesahkan jika Opcache berfungsi dengan betul dan cekap. Php. Fungsi ini akan membersihkan OPCACHE dan memaksa PHP untuk mengkompilasi semula skrip pada permintaan seterusnya. Walau bagaimanapun, perlu diingat bahawa membersihkan opcache dengan kerap boleh memberi kesan negatif terhadap prestasi, kerana ia mengalahkan tujuan caching. Meningkatkan prestasi PHP, ia bukan tanpa isu atau batasan yang berpotensi. Sebagai contoh, ia boleh menyebabkan masalah dengan sesi berasaskan fail atau penyimpanan data pengguna berasaskan fail, kerana ia tidak mengkompilasi skrip melainkan perubahan cap waktu. Juga, ia mungkin tidak berkesan untuk laman web dengan trafik yang rendah atau aplikasi mudah, kerana keuntungan prestasi mungkin tidak dapat dilihat.
Atas ialah kandungan terperinci Memahami opcache. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!