Kodeks luźno wspomina tylko o wersji PHP w wymaganiach serwera , jednak PHP można skonfigurować w całkiem szerokim zakresie wykluczania / włączania różnych części.
Jakie są rozszerzenia / biblioteki, które:
- są wymagane, aby WP w ogóle działało? MySQL ...
- są wymagane do określonych funkcji? GD? ...
- są preferowane dla najlepszego działania określonych funkcji? kędzior...
- są powszechnie używane przez wtyczki? Zamek błyskawiczny...
Odpowiedzi:
Zastanowiłem się nad tym i biorąc pod uwagę rozmiar bazy kodu WP (w tym bibliotek dołączonych), ręczne tworzenie takiej listy (i powtarzanie jej dla każdej nowej wersji - meh) nie wydaje się zbyt realistyczne.
Poszukałem odpowiedniego narzędzia do analizy kodu statycznego - PHP_CompatInfo i po pewnym majsterkowaniu wygenerowałem następujący raport o rozszerzeniach używanych przez rdzeń (wersja przeskanowana 3.3.1):
cURL - 127 zastosowań (wymaga libcurl )
WP_Http_curl
)url_is_accessable_via_ssl()
SimplePie(zastąpione klasąWP_SimplePie_File
)GoogleSpell(z pakietu TinyMCE, nie jest używany?)Data / godzina - 367 zastosowań
DOM - 6 zastosowań (wymaga libxml )
iis7_rewrite_rule_exists()
iis7_delete_rewrite_rule()
iis7_add_rewrite_rule()
saveDomDocument()
POSIX Regex - 23 zastosowania
Filtr - 2 zastosowania
PHPMailer->ValidateAddress()
(opcjonalnie)FTP - 72 zastosowania
ftp_base
ftp
( wersje czysta i gniazdowa )WP_Filesystem_FTPext
WP_Filesystem_ftpsockets
Używa GD - 56
wp-admin\includes\image-edit.php
wp-admin\includes\image.php
wp-includes\media.php
Hash - 6 zastosowań
wp-includes\pluggable.php
wiele zastosowań (opcjonalnie - awaryjnewp-includes\compat.php
)iconv - 5 zastosowań
SimplePie
(opcjonalnie)wp_check_invalid_utf8()
(opcjonalny)wp-mail.php
(opcjonalny)JSON - 20 zastosowań
wp-includes/compat.php
libxml - 4 zastosowania
WP_oEmbed->_parse_xml()
(opcjonalnie)Ciąg wielobajtowy - 29 zastosowań
wp-includes/compat.php
MySQL - 60 zastosowań
wpdb
klasa(zastąpiona przez klasęSimplePie_Cache
WP_Feed_Cache
)OpenSSL - 4 zastosowania
PHPMailer
PCRE - 743 zastosowania
SimpleXML - 1 wykorzystuje
WP_oEmbed
(wydaje się opcjonalna)Gniazda - 64 zastosowania
ftp
(sockets
implementacja)SPL - 3 zastosowania
Tokenizer - 3 zastosowania
wp_doc_link_parse()
(opcjonalny)Parser XML - 89 zastosowań
XMLReader - 1 zastosowania
Zlib - 30 zastosowań
źródło
Odpowiedź na to pytanie może być skomplikowana i bardzo długa, o ile wiem, będą też pewne różnice między serwerami a systemem operacyjnym (IIS, Apache) .. Nie mogę powiedzieć, że poniższa lista jest pełna, ale zawiera niektóre z tych, które znam, są wymagane:
Curl i CurlSSL - Nie jestem pewien, czy jest WYMAGANY, ale większość kodu WordPress go wykorzysta, jeśli jest dostępny. Wiele wtyczek jednak tego wymaga i / lub będzie mieć bez niego ograniczone funkcje.
Exif - pozwala programowi obsługi multimediów WordPressa pobierać dane Exif z obrazów.
Gettext - .po .mo obsługa internacjonalizacji lokalizacji tłumaczeń ..
FTP - służy do przeprowadzania aktualizacji wtyczek i WordPress przez FTP.
GD - Nie trzeba przedstawiać, prawda?
Iconv - konwersje zestawu znaków dla wszystkiego, od poczty do parsowania RSS.
Mbregex i Mbstring - nazwa jest dość opisowa - zapewniają funkcje używane wszędzie :-)
Mcrypt - Nie jest potrzebny do wordpressa, ale wiele wtyczek go potrzebuje.
Mime Magic - przestarzałe teraz w wordpress - ale nadal dobrze mieć kompatybilność wsteczną.
* MySQL i MySQL systemu * - wszyscy wiemy, co to jest i dlaczego jest potrzebne, nie?
Openssl - ta biblioteka służy do obsługi przetwarzania połączeń zaszyfrowanych certyfikatami SSL. WordPress może łączyć się z dowolną lokalizacją zaszyfrowaną SSL (https).
POSIX - służy do zapewnienia, że WordPress odpowiednio zachowuje uprawnienia do plików i prawa własności.
Sprawdzanie informacji o ścieżce - niektóre ustawienia łącza bezpośredniego.
Pspell - możliwości sprawdzania pisowni w TinyMCE ,.
Gniazda - zarządzanie połączeniami FTP i obsługa poczty AKA SMTP i POP w WordPress.
Zip - Nie jestem pewien, czy WYMAGANE - ale ta klasa tworzenia i rozpakowywania plików zip kompatybilna z wieloma platformami BĘDZIE używana przez wordpress, jeśli jest dostępna.
Zlib - Używany w wielu przypadkach. przykład - kompresja plików js i css. ponownie, nie jestem pewien, czy WYMAGANE, ale potrzebne.
Jak stwierdzono powyżej - to nie jest PEŁNA lista - została skompilowana około roku temu - i może wymagać aktualizacji. Wiele z tych funkcji nie jest WYMAGANYCH, ale ZALECANYCH . W wielu przypadkach wordpress użyje funkcji JEŻELI jest dostępna, a jeśli nie, zignoruje to zadanie. Dobrym przykładem jest brak biblioteki GD, nie powstrzyma ona działania WordPressa, ale nie będzie przycinać, zmieniać rozmiaru ani modyfikować przesyłanych obrazów - pozostawiając w ten sposób oryginał (i zaznacz opcję „size” w „insert” obraz do opublikowania ”).
Na marginesie - powiedziałbym również, że może to pytanie prawdopodobnie uzyska więcej poprawnych / zaktualizowanych odpowiedzi na serverfault.com niż tutaj ...
źródło
( To nie jest odpowiedź. Po prostu kilka przydatnych informacji. Jeśli uważasz, że te informacje nie są przydatne, daj mi znać, po prostu je usunę).
Myślę, że rozmawianie o pakietach byłoby łatwiejsze dla początkujących, ale ponieważ pakiety różnią się w zależności od systemu, ciężko jest je wszystkie pokryć.
Ponieważ mam doświadczenie z Debianem (i dystrybucjami opartymi na Debianie), chciałbym podzielić się tymi konkretnymi informacjami:
Wyżej wymienione pakiety instalują wszystkie rozszerzenia / biblioteki / moduły wymienione w innych odpowiedziach; wszystko oprócz Mime Magic, która nie jest już wymagana przez WordPress .
Innym dobrym sposobem, aby upewnić się, że Twój serwer jest w 100% zgodny z WordPress, jest sprawdzenie, z jakimi pakietami są wstępnie zainstalowane zarządzane firmy hostingowe . Ponieważ mają wieloletnie doświadczenie w skargach klientów na niezgodności, będą wiedzieć lepiej.
W przypadku Hostgatora moduły PHP, które wstępnie instalują obejmują (prawdopodobnie będziesz potrzebować tylko większość, ale nie wszystkie):
Media Temple udostępnia
phpinfo();
plik umożliwiający sprawdzenie ich konfiguracji. Jest także przydatny do celów porównawczych.źródło
Jeśli chcesz w łatwy sposób sprawdzić, czy serwer spełnia te wymagania, możesz teraz skorzystać z przydatnej komendy ext WP-CLI .
wp ext required
pokazuje wszystkie rozszerzenia PHP niezbędne do uruchomienia WordPress, awp ext recommended
pokazuje opcjonalne .wp ext check
jest kombinacją obu poleceń.Przydają się one, gdy potrzebujesz szybkiego sposobu sprawdzenia wymagań systemowych na nowym serwerze i / lub jeśli chcesz dalej programowo przetwarzać tę listę.
Oto jak
wp ext required
działa:źródło
Opracowałem moduł sprawdzania środowiska WordPress. Jest to prosta klasa, działająca na sieci SAPI lub CLI. To jest utrzymywana wersja https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/php-env-check.php
Na podstawie pracy @rarst
źródło
Jeśli używasz Debian 7 (Debian Wheezy), musisz zainstalować sam PHP i niewielką liczbę rozszerzeń. Większość tego, o czym wspomniał @Rarst, jest już zawarta w jednej z najbardziej podstawowych instalacji PHP Debiana.
PHP
Masz cztery opcje w Debian Wheezy: libapache2-mod-php5 , libapache2-mod-php5filter , php5-cgi lub php5-fpm . Wybieram php5-fpm, ale wszystko zależy od tego, jak chcesz, aby twój serwer WWW i PHP współdziałały.
MySQL
Potrzebujesz także PHP, aby korzystać z MySQL. Dostępne opcje to php5-mysql i php5-mysqlnd . php5-mysqlnd jest natywny i ogólnie szybszy. Niektórzy mogą wybrać alternatywę, taką jak MariaDB.
Biblioteka grafiki Opcjonalnie
Jeśli chcesz zmienić rozmiar zdjęć, możesz zainstalować php5-gd lub php5-imagick . php5-imagick zapewni lepszą jakość, a Wordpress użyje go, jeśli będzie dostępny. Jeśli oba są zainstalowane, zostanie użyty php5-imagick. Jeśli żaden z nich nie zostanie zainstalowany, rozmiar obrazów nie zostanie zmieniony (a Wordpress nie będzie narzekał).
HTTP Opcjonalne
Jeśli zainstalujesz php5-curl , zostanie on użyty, ale nie jest wymagany do niczego poza chyba lepszą wydajnością.
Wordpress i większość rozszerzeń nie wymaga niczego innego, chociaż niektóre rozszerzenia mogą mieć inne wymagania.
Oto kompletna podstawowa linia instalacyjna zapewniająca Wordpressowi wszystko, czego potrzebuje do optymalnej wydajności, i nic, czego nie robi:
źródło
Warto wspomnieć, że od WordPress 5.2 istnieje wbudowana funkcja, która zgłasza brakujące moduły. Znajdź go w Narzędzia> Zdrowie witryny.
źródło
Mały „ściągawka” podczas instalowania PHP dla Wordpress na Debianie:
0. Dodaj repozytorium dotdeb
Dodaj te dwa wiersze do
/etc/apt/sources.list
pliku:Dodaj klucz GPG:
Zaktualizuj „listę pakietów”:
1. Zainstaluj PHP 7:
Źródło: http://php.net/manual/en/install.unix.debian.php
2. Lista modułów zawartych w pakiecie „php7.0-common”:
Źródło: https://packages.debian.org/sid/amd64/php7.0-common/filelist
3. Aby zainstalować dodatkowe moduły wymagane / zalecane przez wordpress:
Źródło: https://wordpress.stackexchange.com/a/42141/107878
4. Nie mogłem znaleźć na Debianie:
5. Zwraca „apt-cache search php7”:
Odniesienie: https://packages.debian.org/source/sid/php7.0
źródło
WordPress poradnik teraz listę zalecanych modułów PHP:
Wymienia również następujące rozszerzenia PHP jako opcjonalne:
źródło
mod_xml
ma z tym wspólnego, ponieważ rdzeń ani nie implementuje map witryn XML, ani nie jest powiązany z działaniem na określonym serwerze WWW.potrzebujesz rozszerzeń mysqli, pdo i gd. a czasem xml-rpc.
Od jakiegoś czasu korzystam z WP z natywnym rozszerzeniem mysqlnd, jest całkiem fajnie. Ma wbudowane elementy odbicia, więc jeśli chcesz zobaczyć, co się dzieje z bazą danych w tym konkretnym żądaniu, możesz to zrobić.
zip, ponieważ rozszerzenie nie jest potrzebne, większość programów nazywa systemowy plik wykonywalny zip.
źródło