Apa perbedaan antara php thread dan non thread safe?

Anda dapat mengunduh PHP dari salah satu anggota jaringan situs PHP. Ini dapat ditemukan di » https. // www. php. bersih/. Anda juga dapat menggunakan Git anonim untuk mendapatkan versi sumber terbaru mutlak. Untuk informasi selengkapnya, buka » https. // www. php. bersih/git. php

Apakah tersedia versi biner pra-kompilasi?

Kami hanya mendistribusikan binari yang telah dikompilasi untuk sistem Windows, karena kami tidak dapat mengkompilasi PHP untuk setiap platform Linux/Unix utama dengan setiap kombinasi ekstensi. Perhatikan juga, bahwa banyak distribusi Linux hadir dengan PHP yang dibuat saat ini. Binari Windows dapat diunduh dari » laman Unduhan kami, untuk binari Linux, kunjungi situs web distribusi Anda

Di mana saya bisa mendapatkan pustaka yang diperlukan untuk mengkompilasi beberapa ekstensi opsional PHP?

Catatan. Yang ditandai dengan * sepengetahuan kami tidak aman untuk thread;

Bagaimana cara membuat perpustakaan ini berfungsi?

Anda harus mengikuti instruksi yang diberikan oleh perpustakaan. Beberapa pustaka ini terdeteksi secara otomatis saat Anda menjalankan skrip 'konfigurasi' PHP (seperti pustaka GD), dan yang lain harus Anda aktifkan menggunakan opsi '--with-EXTENSION' ke 'configure'. Jalankan 'configure --help_' untuk daftar ini

Saya mendapatkan kode sumber PHP versi terbaru dari repositori Git di mesin Windows saya, apa yang saya perlukan untuk mengompilasinya?

Lihat Wiki PHP untuk petunjuk terbaru. » Petunjuk Pembuatan Langkah demi Langkah

Di mana saya menemukan File Kemampuan Browser?

Anda dapat menemukan browscap. ini di » http. //browscap. org/

Apa yang dimaksud dengan keamanan utas saat mengunduh PHP?

Thread Safety berarti bahwa biner dapat bekerja dalam konteks server web multithreaded, seperti Apache 2 di Windows. Thread Safety bekerja dengan membuat salinan penyimpanan lokal di setiap utas, sehingga data tidak bertabrakan dengan utas lainnya

Jadi apa yang saya pilih? . Untuk server web multithreaded, seperti IIS5 dan IIS6, Anda harus menggunakan versi threaded dari PHP

Saya harap Anda telah memperbarui ke rilis terbaru dan yakin bahwa CRM Anda didukung di bawah versi baru ini

Saya telah melihat hal-hal php hanya berjalan di bawah versi baru, tetapi lompatan besar dari PHP yang sangat lama ke PHP yang sangat baru Anda mungkin memiliki beberapa pekerjaan yang harus dilakukan.

Baca tentang migrasi dari Apache 2. 2 ke 2. 4. Banyak yang telah berubah

* Saya tidak menemukan bahwa saya harus melakukan terlalu banyak hal, tetapi Anda harus berurusan dengan pernyataan Izinkan dan Tolak. file htaccess

* Masalah lainnya adalah berbagai modul telah hilang sehingga Anda mungkin memiliki beberapa pekerjaan yang harus dilakukan di sana. "layanan httpd configtest" dapat membantu banyak dengan mendapatkan sintaks yang benar

Untuk menggunakan PHP secara maksimal (memasang ekstensi, menggunakan pustaka pihak ketiga, dan sebagainya), Anda seringkali perlu mengetahui versi persis PHP yang dipasang di server web Anda (5. x, 7. x, 8. x), serta arsitektur CPU (32 atau 64 bit) dan mode keamanan thread (ts atau nts) yang digunakan. Mengambil info ini bisa cukup sederhana di sebagian besar skenario tetapi kadang-kadang bisa rumit, terutama jika Anda tidak memiliki dan/atau telah membangun server Anda sendiri tetapi Anda menggunakan VPS, VM, wadah atau solusi IaaS berbasis cloud lainnya

Dalam posting ini kami akan menjelaskan secara singkat cara mengambil nilai-nilai ini dengan tiga perintah PHP CLI sederhana

Periksa versi PHP

Buka folder PHP (kecuali Anda tidak memilikinya di variabel lingkungan PATH Anda) dan jalankan perintah CLI berikut

Kerang

1

php -i. temukan "Versi PHP"

Periksa mode keamanan benang

Buka folder PHP (kecuali Anda tidak memilikinya di variabel lingkungan PATH Anda) dan jalankan perintah CLI berikut

Kerang

1

php -i. temukan "Keamanan Thread"

Anda akan memiliki nilai diaktifkan untuk thread safe atau dinonaktifkan untuk tidak thread safe

Periksa arsitekturnya

Buka folder PHP (kecuali Anda tidak memilikinya di variabel lingkungan PATH Anda) dan jalankan perintah CLI berikut

Kerang

1

php -i. temukan "Arsitektur"

Anda akan memiliki nilai x86 untuk 32 bit dan x64 untuk 64 bit

Apa yang dimaksud dengan thread-safe?

Sebelum mengakhiri posting ini, akan bermanfaat untuk merangkum secara singkat apa yang kami maksud dengan PHP "thread-safe" dan "non-thread-safe" dan apa arti keamanan thread sebenarnya

Pendeknya

  • A versi PHP thread-safe membuat salinan penyimpanan lokal di setiap thread, sehingga data tidak bertabrakan dengan thread lain; . Namun, "keamanan" ini datang dengan biaya tambahan dalam hal kinerja, oleh karena itu sebaiknya gunakan versi tersebut hanya jika kita benar-benar memiliki satu instance PHP yang diharapkan dapat melayani banyak permintaan.
  • Sebaliknya, versi a   PHP yang tidak aman untuk thread menggunakan satu salinan penyimpanan untuk semua thread; . since the binary is invoked at each request.

Jika Anda tidak yakin bagaimana server web Anda benar-benar menjalankan PHP, hal terbaik yang dapat Anda lakukan adalah menggunakan metode phpinfo() dengan cara berikut

PHP

1

gemaphpinfo() echo phpinfo(); ?>

Letakkan one-liner di atas dalam file phpinfo. php, publikasikan ke server web Anda dan jalankan sekali untuk melihat nilai bagian API Server

Apa perbedaan antara php thread dan non thread safe?
Apa perbedaan antara php thread dan non thread safe?

Jika ada string "cgi", seperti pada tangkapan layar di atas, itu berarti server menjalankan PHP dalam mode CGI/FastCGI;

PERINGATAN. pastikan untuk menghapus phpinfo. php file segera setelah Anda tidak membutuhkannya lagi. membiarkannya tersedia untuk umum adalah risiko keamanan utama, karena memaparkan seluruh konfigurasi PHP Anda, serta beberapa pengaturan sistem dan struktur folder yang sensitif

Kesimpulan

Itu saja, setidaknya untuk saat ini. setelah Anda menentukan versi PHP, arsitektur, dan mode keamanan utas, Anda akan siap untuk menginstal ekstensi PHP dan/atau alat pihak ketiga tanpa risiko mendapatkan build yang tidak kompatibel

Haruskah saya menggunakan benang

Jika Anda memilih untuk menjalankan PHP sebagai biner CGI, maka Anda tidak memerlukan keamanan thread , karena biner dipanggil pada setiap permintaan. Untuk server web multithreaded, seperti IIS5 dan IIS6, Anda harus menggunakan versi threaded dari PHP.

Apa itu benang

Aman bersyarat. Utas yang berbeda dapat mengakses objek yang berbeda secara bersamaan, dan akses ke data bersama dilindungi dari kondisi balapan. Tidak aman benang. Struktur data tidak boleh diakses secara bersamaan oleh thread yang berbeda

Apa yang bukan

Mengacu pada satu utas hanya dibuat . Pada versi non-thread safe, binari banyak digunakan dalam hal interaksi dengan web server melalui protokol FastCGI, dengan tidak memanfaatkan multi-threading. Sebagai contoh. Apache + FastCGI. IIS + FastCGI.

Mengapa kita membutuhkan benang

Keamanan thread hanya memastikan bahwa ketika sebuah thread memodifikasi atau membaca data yang dibagikan, tidak ada thread lain yang dapat mengaksesnya dengan cara yang mengubah data. If your code depends on a certain order for execution for correctness, then you need other synchronization mechanisms beyond those required for thread safety to ensure this.