Zahtevi za PHP
Neki pojedinačni moduli mogu imati posebne zahteve za PHP ekstenzije i konfiguracije, pored navedenih ispod, zato molimo proverite dokumentaciju modula.
Podržane verzije PHP-a
Verzija PHP | Podržava Drupal | Preporučeno za Drupal |
---|---|---|
5.5 | ![]() |
![]() |
5.6 | ![]() |
![]() |
7.0 | Da, 7.0.8 sa Drupal 8.7.0 (napomena 2 ispod) | ![]() |
7.1 | Da | ![]() |
7.2 | Da, od Drupal 8.5.0 | ![]() |
7.3 | Da, od Drupal 8.6.4 (napomena 1 ispod) | ![]() |
7.4 | Da, od Drupal 8.8.3 | ![]() |
8.0 | ![]() |
1) Pročitajte napomenu o promeni za više informacija o podršci PHP 7.3.
2) Pročitajte napomenu o promeni za više informacija o prekidu podrške za PHP 5.
Šta znači „preporučena“ verzija PHP-a?
Drupal radi na svim podržanim verzijama PHP-a. Preporučene verzije PHP-a su najbolji izbor za izradu Drupal sajta jer će duže biti podržavane. PHP 7 takođe donosi značajna poboljšanja brzine i keširanja.
PHP 5.5, 5.6 i 7.0 su dostigli zvanični kraj životnog ciklusa krajem 2018. godine, a PHP 7.1 je dosegao kraj podrške 1. decembra 2019. godine. (Pogledajte PHP: podržane verzije za više informacija.) Drupal 8 je prekinuo podršku za PHP 5.5 i 5.6 u maju 2019. Nove verzije zahtevaju PHP 7.0.8 ili noviji. Preporučujemo nadogradnju na najmanje PHP 7.2. (Ubuntu 18.04 dolazi sa PHP 7.2, a Debian stable sa 7.3.)
Napomena: Ovo ne utiče na Drupal 7, koji ostaje kompatibilan sa PHP 5.2.4 i novijim. Posebna objava biće data ako i kada se to promeni - pogledajte PHP zahteve za Drupal 7.
Neophodne PHP ekstenzije
Ekstenzije koje koristi Drupal jezgro definisane su u fajlu composer.json Core - pogledajte, na primer, fajl za Drupal 8.7.x. Pogledajte deo „require“ i ključeve koji počinju sa „ext-“.
Napomena: Dodavanje PHP ekstenzije u vaš sistem, bar na Linuxu (i Mac-u), znači pronalaženje i instalaciju odgovarajućeg PHP paketa putem upravnika paketa. Obično je naziv paketa za ekstenziju Foo „php-foo“ ili „php7-foo“, ali nije uvek tako. Neke ekstenzije su deo glavnog PHP paketa i samim tim su uključene po defaultu.
Ekstenzije za baze podataka
Ekstenzija PHP Data Objects (PDO) mora biti aktivirana za ispravnu instalaciju i rad Drupala 8. Verzija PDO za PECL nije kompatibilna sa Drupalom 8 i ne može se koristiti. Takođe, PHP ekstenzija za povezivanje sa bazom podataka koju ste izabrali mora biti instalirana i uključena.
Trenutno podržani konektori za baze podataka u Drupalu su: mysql (originalna MySQL ekstenzija), mysqli (poboljšani konektor za novije MySQL instalacije) i pgsql (za PostgreSQL). Napomena: PHP 5.x više ne uključuje mysql ekstenziju po defaultu. Molimo pročitajte navedene linkove za instalaciju i uključivanje odgovarajućeg konektora. Generalno, ako instalirate PDO sa podrškom za MySQL, pravi konektor je već izabran za vas.
XML ekstenzija
PHP XML ekstenzija (za Blogs API, Drupal module i Ping). Ova ekstenzija je uključena po defaultu u standardnoj PHP instalaciji; Windows verzija PHP-a ima ugrađenu podršku za ovu ekstenziju. Uključivanje XML ekstenzije takođe uključuje PHP DOM. DOM je sada sistemski zahtev.
Biblioteka za obradu slika
Biblioteka za slike u PHP-u, kao što je GD biblioteka, je obavezna ekstenzija u Drupalu 8 i potrebna je za manipulaciju slikama (promenu veličine korisničkih slika, slike modula i keširanje slika). ImageMagick je takođe podržan za osnovne manipulacije slikama u Drupal jezgru, ali ima mnogo manje podrške od dodatnih modula.
OpenSSL
PHP OpenSSL ekstenzija se preporučuje kako bi Drupal mogao praviti odlazne zahteve koristeći HTTPS. Neke platforme pružaju poseban OpenSSL paket, na primer php7-OpenSSL.
Radi se i na proveri modula Update Manager Drupala za dostupnost ažuriranja putem HTTPS-a, što bi ovu preporuku učinilo još strožom ili čak obaveznom. Pogledajte zadatke #1538118: Status ažuriranja ne proverava identitet ili autentičnost URL-a istorije izdanja i https://groups.drupal.org/node/506128.
JSON
Drupal 8 zahteva PHP kompajliran sa JSON podrškom. Podrška za JSON je obično deo PHP jezgra, ali ako dobijete greške kao što su:
PHP Fatal error: Call to undefined function Drupal\\Component\\Serialization\\json_encode() in ... core/lib/Drupal/Component/Serialization/Json.php
probajte da dodate JSON ekstenziju.
cURL
PHP cURL ekstenzija je potrebna za SimpleTest modul u Drupalu 8, kao i za Aggregator i neke dodatne module. U mnogim Linux distribucijama i razvojim okruženjima ovo je podrazumevano uključeno, ali ako nije uključeno u vašem php.ini (obično na Windows-u) ili nije instalirano preko upravnika paketa (obično na Linuxu), morate ga uključiti.
Mbstring
PHP mbstring ekstenzija pruža posebne višebajtne funkcije za rad sa stringovima, koristi se za instalaciju Drupala na drugim jezicima osim engleskog, kao i za višejezične sajtove u Drupalu. Ona pomaže u radu sa višebajtnim kodnim rasporedima u PHP-u, kao i u obradi kodnih rasporeda baziranih na Unicode-u, kao što su UTF-8 ili UCS-2.
PHP konfiguracione postavke
Zahtevi za memoriju
Zahtevi za memorijom u PHP-u mogu značajno varirati u zavisnosti od modula koji se koriste na sajtu. Minimalna potrebna količina memorije je 64 MB.
Upozoravajuće poruke će biti prikazane ako PHP konfiguracija ne zadovoljava ove zahteve. Međutim, iako ove vrednosti mogu biti dovoljne za osnovnu instalaciju Drupala, produkcioni sajt sa više uključenih često korišćenih modula će najčešće zahtevati više memorije. Obično se koriste vrednosti od 128 MB ili 256 MB u produkcionim sistemima. Za neke instalacije može biti potrebno i znatno više, naročito u slučajevima multimedijalnih rešenja. Ako koristite hosting servis, važno je osigurati da vaš host može obezbediti dovoljno memorije za skup modula koje koristite ili planirate da koristite u budućnosti. (Pogledajte stranicu povećanja PHP limit memorije u FAQ sekciji za rešavanje problema za više informacija o promeni PHP limit memorije.)
.htaccess podešavanja
Neki memorijski parametri su sadržani u podrazumevanom .htaccess fajlu koji dolazi uz Drupal, tako da ih ne morate eksplicitno podešavati. Ipak, imajte u vidu da podešavanje PHP konfiguracije iz .htaccess radi samo pod sledećim uslovima:
Sa Apache (ili kompatibilnim veb-serverom)
Ako se .htaccess fajl zaista čita, tj. AllowOverride All je omogućen u glavnoj Apache konfiguraciji (obično httpd.conf)
Ako je PHP instaliran kao Apache modul
U nekim deljenim okruženjima pristup ovim podešavanjima može biti ograničen. Ako ne možete sami da ih promenite, zatražite od vašeg hosting provajdera da ih podesi za vas.
Drugi interfejsi
Pogledajte PHP priručnik za informacije o tome kako promeniti konfiguracione postavke za druge PHP interfejse.
Xdebug
Ako koristite Xdebug:
Podešavanje: xdebug.show_exception_trace = 0
Razlog: može uzrokovati pad Drupal instalera.
Korišćenje Xdebug sa Drupal 8:
Podešavanje: xdebug.collect_params = ?
Razlog: previsoka vrednost xdebug.collect_params sprečiće instalaciju i rad Drupala 8.
Podešavanje: xdebug.max_nesting_level = 256
Razlog: korišćenje podrazumevane vrednosti max_nesting_level od 100 (u verzijama xdebug 2.3) dovodi do pada nekih stranica.
PHP iz različitih izvora
Drupal je namenjen za rad sa PHP i distribuira se sa PHP.net. Uloženi su napori da radi i sa verzijama PHP-a iz drugih izvora, ali to je na nivou „najboljih napora“. Poznato je da Suhosin remeti određene funkcije; i neke operativne sisteme raspoređuju glavne komponente u druge pakete.
Detalji PHP zahteva
Pogledajte stranicu phpinfo() na Drupal.org da naučite kako da koristite Phpinfo za dobijanje detaljnih informacija o vašem sistemu. Na primer, Phpinfo će vam reći da li je baza podataka već instalirana i koje verzije PHP, MySQL itd. rade na vašem sistemu. Phpinfo takođe prikazuje koje PHP promenljive su podešene i mnogo drugih korisnih informacija.
Često je moguće ažurirati na noviju verziju PHP-a koja dolazi sa vašim Linux distribucijom. Pročitajte dokumentaciju za vaš Linux distro.
Neki značajni napomene
Imate u vidu ograničenja 32-bitnog PHP-a.
Drupal zavisnosti bazirane na Composer-u su pakovane za PHP 5.5.9. Ako koristite višu verziju PHP-a, možete koristiti Composer update komandu da dobijete prikladnije verzije Composer zavisnosti.
Drupal 8 Update Manager može instalirati / ažurirati module i teme preko SSH ako su neophodne biblioteke instalirane na serveru. (U Debian-u se paket zove „libssh2-php“.)
Ako se koristi APC opcode keš sa Drupal 8, potrebno je da APC bude verzije 3.1.13 ili noviji.
Ako je ugrađeni opcache uključen, podešavanja opcache.save_comments moraju biti uključena (vrednost 1, podrazumevano), inače anotacije neće biti sačuvane / učitane.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.