Codex secara longgar hanya menyebutkan versi PHP dalam persyaratan server , namun PHP dapat dikonfigurasikan dalam kisaran yang cukup luas untuk mengecualikan / memasukkan bagian yang berbeda.
Apa ekstensi / perpustakaan itu:
- Apakah WP harus bekerja? MySQL ...
- diperlukan untuk fungsi tertentu? GD? ...
- lebih disukai untuk operasi terbaik dari fungsi tertentu? ikal...
- yang biasa digunakan oleh plugin? Zip...
Jawaban:
Saya memberikan ini lebih banyak pemikiran dan diberikan ukuran basis kode WP (termasuk perpustakaan dibundel) tampaknya tidak realistis untuk menyusun daftar tersebut dengan tangan (dan ulangi untuk setiap versi baru - meh).
Saya mencari alat analisis kode statis yang sesuai - PHP_CompatInfo dan setelah beberapa bermain-main dihasilkan laporan ekstensi yang digunakan oleh core (versi dipindai 3.3.1):
cURL - 127 penggunaan (membutuhkan libcurl )
WP_Http_curl
)url_is_accessable_via_ssl()
SimplePie(diganti dengan kelasWP_SimplePie_File
)GoogleSpell(dari paket TinyMCE, tidak digunakan?)Tanggal / Waktu - 367 penggunaan
Penggunaan DOM - 6 (membutuhkan libxml )
iis7_rewrite_rule_exists()
iis7_delete_rewrite_rule()
iis7_add_rewrite_rule()
saveDomDocument()
POSIX Regex - 23 menggunakan
Filter - 2 penggunaan
PHPMailer->ValidateAddress()
(opsional)FTP - 72 menggunakan
ftp_base
ftp
( versi murni dan soket )WP_Filesystem_FTPext
WP_Filesystem_ftpsockets
GD - 56 menggunakan
wp-admin\includes\image-edit.php
wp-admin\includes\image.php
wp-includes\media.php
Hash - 6 menggunakan
wp-includes\pluggable.php
banyak kegunaan (opsional - fallback inwp-includes\compat.php
)iconv - 5 menggunakan
SimplePie
(opsional)wp_check_invalid_utf8()
(pilihan)wp-mail.php
(pilihan)JSON - 20 menggunakan
wp-includes/compat.php
libxml - 4 menggunakan
WP_oEmbed->_parse_xml()
(opsional)String Multibyte - 29 menggunakan
wp-includes/compat.php
MySQL - 60 menggunakan
wpdb
kelas(ditimpa dengan kelasSimplePie_Cache
WP_Feed_Cache
)OpenSSL - 4 menggunakan
PHPMailer
PCRE - 743 menggunakan
SimpleXML - 1 menggunakan
WP_oEmbed
(tampaknya opsional)Soket - 64 penggunaan
ftp
(sockets
implementasi)SPL - 3 menggunakan
Tokenizer - 3 penggunaan
wp_doc_link_parse()
(pilihan)Parser XML - 89 menggunakan
XMLReader - 1 menggunakan
Zlib - 30 menggunakan
sumber
Jawaban untuk ini mungkin rumit dan sangat panjang, sejauh yang saya tahu, juga akan ada beberapa perbedaan antara server & OS (IIS, Apache) .. Saya tidak bisa mengatakan bahwa daftar berikut ini adalah daftar LENGKAP, tetapi itu termasuk beberapa dari mereka yang saya tahu diharuskan:
Curl dan CurlSSL - Tidak yakin itu DIBUTUHKAN tetapi tetapi sebagian besar kode WordPress akan menggunakannya jika tersedia. Namun banyak plugin DO memerlukannya dan / atau akan memiliki fungsi terbatas tanpanya.
Exif - memungkinkan media handler WordPress untuk menarik data Exif dari gambar.
Gettext - .po .mo menangani internasionalisasi terjemahan lokalisasi ..
FTP - digunakan untuk melakukan peningkatan plugin dan WordPress melalui FTP.
GD - Tidak perlu pengenalan, kan?
Iconv - karakter mengatur konversi untuk semuanya mulai dari email hingga penguraian RSS.
Mbregex dan Mbstring - namanya cukup deskriptif - menyediakan fungsi yang digunakan di semua tempat :-)
Mcrypt - Tidak diperlukan untuk wordpress, tetapi banyak plugin yang membutuhkannya.
Mime Magic - Sudah tidak digunakan lagi di wordpress - tetapi masih bagus untuk kompatibilitasnya.
* Mysql dan Mysql dari sistem * - kita semua tahu apa ini dan mengapa itu diperlukan, bukan?
Openssl - Pustaka ini digunakan untuk menangani pemrosesan koneksi yang dienkripsi dengan sertifikat SSL untuk WordPress agar dapat terhubung ke lokasi terenkripsi SSL (https) apa pun.
POSIX - digunakan untuk memastikan bahwa WordPress menjaga izin dan kepemilikan file dengan benar.
Path Info Check - beberapa pengaturan permalink.
Pspell - kemampuan pemeriksaan ejaan ke TinyMCE,.
Soket - mengelola koneksi FTP dan penanganan surat AKA SMTP dan POP di WordPress.
Zip - Tidak yakin jika DIBUTUHKAN - tetapi kelas pembuatan file zip dan ekstraksi yang kompatibel lintas platform ini AKAN digunakan oleh wordpress jika tersedia.
Zlib - Digunakan dalam banyak kasus. contoh - kompresi file js dan css. lagi, tidak yakin jika DIBUTUHKAN tetapi dibutuhkan.
Seperti yang dinyatakan di atas - ini bukan daftar LENGKAP - Itu dikompilasi sekitar setahun yang lalu - dan mungkin perlu beberapa pembaruan. Banyak dari fungsi-fungsi itu tidak benar-benar DIBUTUHKAN tetapi DIUNGKAPKAN . Dalam banyak kasus, wordpress akan menggunakan fungsi JIKA tersedia, dan jika tidak, akan mengabaikan tugas. Contoh yang baik adalah kurangnya pustaka GD, itu tidak akan menghentikan wordpress dari berfungsi, tetapi itu tidak akan memotong, mengubah ukuran, atau mengubah gambar yang diunggah - sehingga meninggalkan yang asli (dan menghapuskan opsi "size" di "insert" image to post "function) ..
Sebagai catatan - saya juga akan mengatakan bahwa mungkin pertanyaan ini mungkin akan mendapatkan jawaban yang lebih benar / diperbarui di serverfault.com daripada di sini ...
sumber
( Ini tidak dimaksudkan sebagai jawaban. Hanya beberapa informasi yang berguna. Jika menurut Anda info ini tidak berguna, beri tahu saya, saya akan menghapusnya.)
Saya pikir berbicara dalam hal paket akan lebih mudah bagi pemula, tetapi karena paket bervariasi dari satu sistem ke sistem, sulit untuk mencakup semuanya.
Karena saya memiliki pengalaman dengan Debian (& distro berbasis Debian), saya ingin berbagi informasi spesifik ini:
Paket-paket tersebut menginstal semua ekstensi / perpustakaan / modul yang disebutkan dalam jawaban lain; semua, kecuali Mime Magic, yang tidak lagi diperlukan oleh WordPress .
Cara lain yang baik untuk memastikan server Anda 100% kompatibel dengan WordPress adalah untuk memeriksa paket apa yang sudah diinstal dengan perusahaan hosting yang dikelola . Karena mereka memiliki pengalaman bertahun-tahun dengan keluhan pelanggan tentang ketidakcocokan, mereka akan lebih tahu.
Dalam hal Hostgator , modul-modul PHP yang telah mereka instal sebelumnya menyertakan (Anda mungkin hanya membutuhkan sebagian besar tetapi tidak semuanya):
Media Temple menyediakan
phpinfo();
file bagi Anda untuk memeriksa konfigurasi mereka. Ini berguna untuk tujuan perbandingan juga.sumber
Jika Anda ingin cara mudah untuk memverifikasi apakah server Anda memenuhi persyaratan ini, sekarang ada perintah WP-CLI ext yang berguna untuk melakukannya.
wp ext required
menunjukkan semua ekstensi PHP yang diperlukan untuk menjalankan WordPress, sementara ituwp ext recommended
menunjukkan ekstensi yang opsional .wp ext check
adalah kombinasi dari kedua perintah.Ini sangat berguna ketika Anda membutuhkan cara cepat untuk memeriksa persyaratan sistem pada server baru dan / atau jika Anda ingin memproses lebih lanjut daftar ini secara terprogram.
Begini cara
wp ext required
kerjanya:sumber
Saya telah mengembangkan pemeriksa lingkungan WordPress saya. Ini adalah kelas sederhana, berjalan di web SAPI atau di CLI. Ini adalah versi yang dikelola https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php
Berdasarkan karya @rarst
sumber
Jika Anda menggunakan Debian 7 (Debian Wheezy), Anda perlu menginstal PHP sendiri dan sejumlah kecil ekstensi. Sebagian besar yang disebutkan oleh @Rarst sudah termasuk dalam salah satu pemasangan PHP paling dasar Debian.
PHP
Anda memiliki empat opsi di Debian Wheezy: libapache2-mod-php5 , libapache2-mod-php5filter , php5-cgi , atau php5-fpm . Saya memilih php5-fpm tetapi semuanya tergantung pada bagaimana Anda ingin server web Anda dan PHP berinteraksi.
MySQL
Anda juga perlu PHP untuk menggunakan MySQL. Pilihan Anda adalah php5-mysql dan php5-mysqlnd . php5-mysqlnd adalah asli dan umumnya lebih cepat. Beberapa mungkin memilih alternatif seperti MariaDB.
Perpustakaan Grafik Opsional
Jika Anda ingin ukuran gambar Anda diubah, Anda dapat menginstal php5-gd atau php5-imagick . php5-imagick akan memberikan Anda kualitas yang lebih baik dan Wordpress akan menggunakannya jika tersedia. Jika keduanya diinstal, php5-imagick akan digunakan. Jika tidak ada yang diinstal, gambar tidak akan diubah ukurannya (dan Wordpress tidak akan mengeluh).
HTTP Opsional
Jika Anda menginstal php5-curl , itu akan digunakan tetapi tidak diperlukan untuk apa pun kecuali kinerja yang lebih baik.
Tidak ada lagi yang diperlukan oleh Wordpress dan sebagian besar ekstensi, meskipun beberapa ekstensi mungkin memiliki persyaratan lain.
Berikut ini adalah baris instalasi dasar lengkap untuk memberikan semua yang dibutuhkan Wordpress untuk kinerja optimal dan tidak ada yang tidak:
sumber
Perlu disebutkan bahwa sejak WordPress 5.2, ada fitur bawaan yang melaporkan modul yang hilang. Temukan di Alat> Kesehatan Situs.
sumber
"Cheatsheet" kecil saat memasang PHP untuk Wordpress di Debian:
0. Tambahkan repositori dotdeb
Tambahkan dua baris ini ke
/etc/apt/sources.list
file Anda :Tambahkan kunci GPG:
Perbarui "daftar paket":
1. Instal PHP 7:
Sumber: http://php.net/manual/en/install.unix.debian.php
2. Daftar modul, yang termasuk dalam paket "php7.0-common":
Sumber: https://packages.debian.org/sid/amd64/php7.0-common/filelist
3. Untuk menginstal modul tambahan yang diperlukan / direkomendasikan oleh wordpress:
Sumber: https://wordpress.stackexchange.com/a/42141/107878
4. Saya tidak dapat menemukan yang berikut di debian:
5. "pencarian apt-cache php7" mengembalikan:
Referensi: https://packages.debian.org/source/sid/php7.0
sumber
The WordPress buku pegangan sekarang daftar modul PHP yang direkomendasikan:
Itu juga mencantumkan ekstensi PHP berikut sebagai opsional:
sumber
mod_xml
harus dilakukan dengan apa pun karena core tidak mengimplementasikan peta situs XML atau terikat untuk berjalan di server web tertentu.Anda memerlukan ekstensi mysqli, pdo, dan gd. dan terkadang xml-rpc.
Saya sudah menjalankan WP dengan ekstensi asli mysqlnd untuk sementara waktu sekarang, itu cukup rapi. Memiliki barang-barang refleksi bawaan, jadi jika Anda ingin melihat apa yang terjadi dengan db dalam permintaan khusus itu, Anda dapat melakukannya.
zip sebagai ekstensi tidak diperlukan, sebagian besar program memanggil sistem zip yang dapat dieksekusi.
sumber