Untuk memastikan bahwa CiviCRM terus bekerja dengan platform hosting PHP kontemporer standar, versi mendatang dapat membuat perubahan kecil dalam persyaratan hosting. Kami berharap ini sebagian besar mulus; . g. v4. 7+] untuk menghabiskan beberapa menit untuk membantu memastikan kelancaran transisi
Q. Saya tidak terlalu fasih dalam bahasa geek. Apa yang harus saya lakukan?
Teruskan ini ke siapa pun yang mengelola server Anda. Jika Anda bekerja dengan mitra CiviCRM, mereka mungkin sudah memikirkan Anda
Q. Saya fasih dalam bahasa geek. Apa yang harus saya lakukan?
Tentukan apakah server web Anda memiliki ekstensi PHP mysqli
diinstal. Semua ini akan memberi tahu Anda
- Gunakan baris perintah server
- Jalankan "
php -r 'echo extension_loaded["mysqli"] ? "loaded\n" : "missing\n";'
_" - Itu harus menampilkan "dimuat"
- Jalankan "
- Gunakan Penjelajah API
- Masuk ke CiviCRM sebagai administrator
- Arahkan ke "Dukungan => Pengembang => API Explorer"
- Pilih entitas "Sistem" dan tindakan "dapatkan". Tekan "Eksekusi"
- Cari "mysqli". Seharusnya muncul di bawah "nilai => php => ekstensi"
Kami berharap sebagian besar sistem sudah memiliki mysqli
. Jika sistem Anda tidak, maka
- Pertama, coba aktifkan
- Kedua, laporkan kembali. Bagaimana PHP diinstal?
Q. Apa ini semua tentang?
PHP5. 0 menyediakan tiga "ekstensi" alternatif untuk mengirim kueri ke MySQL -- mysql
, mysqli
, dan pdo
. CiviCRM telah menggunakan ekstensi mysql
asli; . 5 [2013] dan dihapus di PHP 7. 0 [2015] dan Ubuntu 16. 04 [2016]. Pada infrastruktur hosting kontemporer, seseorang harus menggunakan salah satu driver lain [mysqli
atau pdo
]. Hal ini membutuhkan perubahan pada CivilCRM
Beralih dari mysql
ke mysqli
umumnya merupakan masalah kecil dengan sedikit dampak pada administrator. Lagi pula, CiviCRM menggunakan abstraksi DB yang mendukung mysqli
. mysqli
adalah bagian dari PHP 5. x dan 7. x, dan mysqli
digunakan oleh banyak aplikasi PHP populer lainnya [seperti Joomla]. Melihat beberapa paket PHP populer [dari Ubuntu, Debian, CentOS, MAMP], ekstensi mysqli
sudah tersedia. Faktanya, jika Anda sudah menjalankan CiviCRM menggunakan paket PHP standar dari Ubuntu, Debian, CentOS, atau MAMP, maka Anda sebaiknya melakukannya
Namun, CiviCRM adalah produk terbuka yang berjalan di berbagai lingkungan, dan di luar sana adalah dunia yang liar. Tidak ada cara untuk menjamin bahwa semua web-host memiliki mysqli
. Misalnya, jika host web Anda menggunakan kode sumber untuk PHP untuk mengompilasi versi khusus, mereka dapat menghilangkan mysqli
Q. Siapa yang paling mungkin terpengaruh?
Sulit dikatakan -- telemetri standar kami tidak memberikan detail yang cukup untuk memperkirakan dampak dengan tepat. Berdasarkan survei informal dan diskusi tentang server yang menjalankan CiviCRM, saya menemukan satu situs langsung yang hilang mysqli
, yang mengarah ke perkiraan 0%-5% situs yang perlu menginstal mysqli
Dalam satu kasus yang ditemukan sejauh ini, situs yang terpengaruh tampaknya menjalankan distribusi Linux pengguna yang kuat [yang mendorong lebih banyak pengoptimalan pustaka tingkat rendah]. Secara intuitif, orang akan mengharapkan sedikit lebih banyak risiko pada platform hosting yang dipesan lebih dahulu dan sangat disesuaikan [mis. g. binari kustom; . Sisi positifnya, administrator yang menggunakan biner pesanan harus memiliki keterampilan/pengalaman untuk mengonfigurasinya, dan mysqli
memiliki .
Q. Mengapa Anda berbicara tentang beralih ke mysqli
?
Dalam jangka panjang, mendukung keduanya tidak masuk akal. Mendukung keduanya membutuhkan kode yang lebih kompleks, lebih banyak abstraksi, lebih banyak pekerjaan/infrastruktur QA, lebih banyak dokumentasi, lebih banyak pertanyaan tentang StackExchange, dll. Di tahun 2017, kami tidak ingin pengguna dan administrator memperdebatkan pertanyaan, "Driver mana yang harus saya gunakan?"
Namun demikian, meskipun masalah ini adalah perubahan yang cukup kecil dalam aplikasi, itu akan menjadi semakin menyakitkan seiring adopsi Ubuntu 16. 04 LTS dan PHP7. 0 terus berkembang. [PHP 7 menyediakan beberapa peningkatan besar yang diinginkan oleh banyak administrator. ] Akan berlebihan untuk mengambil overhead dari siklus pemutakhiran utama hanya untuk mendukung PHP 7. Membuat peralihan terencana adalah jalur yang paling sederhana -- dan untuk sebagian besar sistem, kami mengharapkan transisi berjalan mulus
Q. Kapan perubahan akan dilakukan?
A. Mungkin beberapa minggu. mungkin beberapa bulan. CiviCRM menggunakan proses peer-review terbuka untuk perubahan kode dengan rilis bulanan reguler. Setelah perubahan melewati peer-review, ada periode pengujian, dan kemudian akan dikirimkan pada bulan berikutnya. Pada saat penulisan, tambalan telah diusulkan untuk CiviCRM 4. 7. 10 [Agustus 2016], namun belum diterima dalam peninjauan kembali. Kami lebih cenderung melihatnya pada bulan September atau Oktober 2016
Q. Hebat, ini adalah alasan untuk segera memutakhirkan semua perangkat lunak kami
A. Antusiasme yang bagus, tetapi tidak perlu berlebihan. Kebanyakan orang seharusnya tidak membutuhkan perubahan sama sekali. Bahkan jika Anda memang membutuhkan perubahan, itu harus cukup kecil. mysqli
telah menjadi bagian umum dari PHP sejak PHP 5. 0
Dalam pendekatan apa pun, persyaratan utama CiviCRM tidak akan berubah. PHP5. 3+ [5. 5 direkomendasikan]; . 1+;
Q. Mengapa mysqli
?
A. Kebetulan. Civi menggunakan lapisan abstraksi DB [PEAR DB] yang sudah memiliki dukungan bawaan untuk mysqli
. tetapi tidak memiliki dukungan untuk pdo
. Untuk tujuan kita, mysqli
dan pdo
memberikan manfaat yang sama -- tetapi pdo
akan membutuhkan lebih banyak waktu/energi. Itu bukan penilaian atas kualitas salah satu proyek - hanya evaluasi biaya/manfaat untuk kode khusus ini pada saat penulisan
Q. Ah, ada masalah lain yang belum Anda perkirakan
A. Itu mungkin. Jika Anda telah membaca blog ini dan masih merasa ada masalah yang belum terselesaikan, silakan tindak lanjuti CRM-17789
Tapi harap diingat. terlepas dari seperti apa tambalan terakhir itu. tindakan pencegahan paling sederhana, tercepat, paling efektif, paling paranoid, yang dapat Anda lakukan adalah memastikan bahwa mysqli
telah diinstal
Diarsipkan di bawah
Arsitektur
Pengumuman rilis
Kiat
Klik jempol ke atas jika menurut Anda postingan blog ini bermanfaat [login untuk memberi suara atau berkomentar]
MenyimpanKomentar
Anonim [tidak terverifikasi]
21-07-2016 - 09. 56
kami menggunakan Amazon Linux, dan menemukan mysqli sudah terpasang
PHP diinstal dengan perintah berikut
yum instal mysql55-server php56-mysqlnd php56-opcache httpd24 httpd24-tools mod24_ssl php56-fpm
Semoga ini membantu
totten 21-07-2016 - 14. 43 Sebagai balasan oleh Anonim [tidak terverifikasi]
Bagus sekali. Terima kasih atas catatannya
dvhirst
22-07-2016 - 11. 51
Saya telah menyiapkan tiga instance LAMP/WordPress/CiviCRM di infrastruktur AWS. Periksa masing-masing menggunakan baris perintah php, di atas. Dalam setiap contoh, temukan mysqli terinstal, seperti yang diharapkan. Instalasi PHP per default apt-get install LAMP^ -- yang telah bekerja dengan baik untuk saya. Semoga sukses
Anonim [tidak terverifikasi]
22-07-2016 - 15. 15
Kami memiliki beberapa server dengan usia yang berbeda-beda, OS yang berbeda-beda, diatur dengan cara yang berbeda, dan menginstal versi PHP yang berbeda-beda [walaupun semuanya setidaknya PHP 5. 5x saat ini]. mysqli diinstal pada semuanya. Semoga ini membantu
davej
27-07-2016 - 04. 49
Telah menjalankan pemeriksaan baris perintah kira-kira. 40 server web, sebagian besar menjalankan Debian [berbagai versi, satu atau dua menggunakan paket dotdeb] plus CentOS/cPanel/WHM. Semua melaporkan mysqli sebagai hadiah. Di server cPanel, ketika EasyApache dibangun, mysqli harus dipilih secara eksplisit
Anonim [tidak terverifikasi]
26-08-2016 - 05. 11
Saya memiliki beberapa situs dengan PHP 7. 0. 7 - Nginx di Amazon Linux. Satu-satunya cara sejauh ini saya mendapatkan phpMyAdmin 4. 6. 2 berfungsi adalah menginstal mysqli, lalu hapus mysql dan instal mysqlnd. Tanpa mysql penginstalan CiviCrm gagal. Jika ada yang punya pekerjaan, saya ingin tahu. CiviCrm pasti perlu segera pindah ke mysqli post
totten 26-08-2016 - 12. 25 Sebagai balasan oleh Anonim [tidak terverifikasi] Terima kasih atas catatannya. Saya berharap ini keluar untuk 4. 7. 12 [awal Oktober]
Anonim [tidak terverifikasi]
07-09-2016 - 22. 50
Perlu berhati-hati dalam menginstal ekstensi PHP mysqli dan pastikan Anda telah melakukan konfigurasi server dengan benar