1. modulis · 1.2
Zem pārsega: tīmekļa serveris, PHP un datu bāze
1. modulis: Kā darbojas WordPress · Lasīšanas laiks: 8 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet soli pa solim izskaidrot, kā lapas pieprasījums WordPress sistēmā kļūst par HTML lapu, un kur kešatmiņa šo ceļu saīsina.
Galvenie jēdzieni: tīmekļa serveris (LiteSpeed, Apache, nginx), PHP, MariaDB/MySQL, vaicājums (query), index.php, veidņu hierarhija, dinamisks pretstatā statiskam, TTFB
Statiska un dinamiska lapa
Ja tīmekļa vietne ir statiska, katra lapa serverī atrodas kā gatavs fails. Tīmekļa serveris paņem failu un nosūta to. Tas ir ātri un vienkārši, bet katra izmaiņa nozīmē jaunu failu.
WordPress ir dinamisks: lapa rodas tikai brīdī, kad kāds to pieprasa. Nav tāda faila kā contact.html. Ir teksta fragments datu bāzē, tēma ar veidnēm un virkne PHP koda, kas abus apvieno. Tas sniedz ērtības (tekstu varat mainīt pārlūkā), bet katrā apmeklējumā tas prasa aprēķinus. Ja Jūs saprotat šos aprēķinus, vēlāk saprotat arī to, kāpēc tīmekļa vietne ir lēna, kāpēc kešatmiņa tik ļoti ietekmē ātrumu un kāpēc PHP jauninājums kaut ko var salauzt.
Lapas pieprasījuma ceļš
Pieņemsim, ka apmeklētājs atver https://example.com/contact/. Notiek šādi soļi:
- DNS: pārlūks noskaidro
example.comIP adresi (skatiet DNS kursu). Tas izveido drošu savienojumu ar šo adresi. - Tīmekļa serveris: serverī darbojas tīmekļa serveris, piemēram, LiteSpeed, Apache vai nginx. Tas saņem pieprasījumu. Ja ar šādu nosaukumu pastāv reāls fails vai mape (attēls, stilu lapa), tas tiek nosūtīts tieši. Ja ne, spēkā ir noteikums no
.htaccess(LiteSpeed un Apache gadījumā) vai no nginx konfigurācijas: "visu, kas neeksistē, nodotindex.php". - PHP:
index.phpir PHP fails. Tīmekļa serveris to nodod izpildei PHP, programmēšanas valodai, kurā uzrakstīts WordPress. PHP vispirms ielādēwp-config.php(iestatījumus, tostarp datu bāzes datus), tad pārējo WordPress daļu, tad visus aktīvos spraudņus un aktīvo tēmu. - Datu bāze: WordPress noskaidro, kurš saturs atbilst
/contact/, un uzdod jautājumus datu bāzei (MariaDB vai MySQL): kurai lapai ir slugcontact, kādi ir tīmekļa vietnes iestatījumi, kura izvēlne tai pieder? Šādu jautājumu sauc par vaicājumu (query). Vienkāršai lapai ātri vien sanāk vairāki desmiti vaicājumu; ar spraudņiem to var kļūt vairāki simti. - Tēma: WordPress izvēlas, kura tēmas veidne lapu noformēs. Tas notiek pēc veidņu hierarhijas principa: lapai ar slug
contactWordPress vispirms meklē veidnipage-contact, tadpage-<id>(lapas numurs), tadpage, tadsingularun visbeidzotindex. Uzvar pirmā, kas pastāv. - HTML atpakaļ: rezultāts ir HTML lapa, ko PHP nodod tīmekļa serverim, un tīmekļa serveris to nodod pārlūkam.
- Pārlūks nolasa HTML un pēc tam vēl iegūst stilu lapas, skriptus, fontus un attēlus. Tie ir parasti faili, tāpēc tie nāk tieši no tīmekļa servera (vai no kešatmiņas).
Starp 2. un 6. soli ir laiks, kas serverim nepieciešams, lai izveidotu lapu. To redzat kā TTFB (time to first byte): laiku starp pieprasījumu un atbildes pirmo baitu. Labi iekārtotā tīmekļa vietnē tas ir krietni zem vienas sekundes. Moduli 6 Jūs to izmērīsiet pats.
Kāpēc katrs spraudnis ir nozīmīgs
3. solī tiek ielādēti visi aktīvie spraudņi, pie katra pieprasījuma. Arī tad, ja šis spraudnis šajā lapā neko nedara. Fotogalerijas spraudnis tātad tiek ielādēts arī tad, kad kāds atver Jūsu kontaktu lapu. Katrs spraudnis var veikt papildu vaicājumus, ielādēt papildu kodu un pievienot lapai papildu skriptus.
Tas izskaidro divas lietas, ar kurām Jūs šajā kursā sastapsieties biežāk:
- Mazāk spraudņu parasti nozīmē ātrāku darbību. Ne tāpēc, ka pats skaitlis ir svarīgs, bet tāpēc, ka katrs spraudnis pie katra pieprasījuma var veikt darbu.
- Viens bojāts spraudnis var apstādināt visu tīmekļa vietni. Ja 3. solī kaut kas noiet greizi (piemēram, spraudnis, kas nestrādā ar jauno PHP versiju), PHP nekad nenonāk līdz 6. solim. Apmeklētājs redz tukšu lapu vai paziņojumu "Šajā tīmekļa vietnē ir radusies kritiska kļūda" (5.4. nodarbība).
No kurienes nāk PHP un datu bāze
PHP un datu bāze darbojas Jūsu mitināšanas pakalpojuma sniedzēja serverī. Parasti PHP versiju izvēlaties pats vadības panelī (DirectAdmin tas saucas Select PHP version, skatiet 8.4. nodarbību). Datu bāzi izveidojat instalācijas laikā; instalētājs to bieži izdara Jūsu vietā (2.2. nodarbība).
Dažas lietas, ko atcerēties:
- PHP versija: katra jauna PHP versija ir ātrāka un drošāka, bet vecais kods uz tās var neuzsākt darbu. wordpress.org pašlaik iesaka PHP 8.3 vai jaunāku (stāvoklis 2026. gada novembrī).
- Datu bāze: wordpress.org iesaka MariaDB 10.11 vai jaunāku, vai MySQL 8.0 vai jaunāku. MariaDB ir MySQL atzars; WordPress darbībai tam nav nozīmes.
- Datu bāze parasti atrodas tajā pašā serverī (
DB_HOSTtad irlocalhost). Lielākas mitināšanas gadījumā tā var atrasties atsevišķā serverī.
Kešatmiņa: ceļa saīsināšana
Ja simts apmeklētāju pieprasa vienu un to pašu kontaktu lapu, WordPress bez kešatmiņas to izveidotu simts reizes no jauna. Katru reizi tie paši vaicājumi, tā pati veidne, tas pats HTML. Lapas kešatmiņa saglabā HTML pēc pirmās reizes. Nākamais apmeklētājs saņem saglabāto versiju: 3. līdz 6. solis atkrīt.
Zonder cache: browser > webserver > PHP > WordPress + plugins > database > thema > HTML
Met cache: browser > webserver > opgeslagen HTMLTāpēc kešatmiņa dod vislielāko ātruma pieaugumu (6.2. nodarbība). Tas izskaidro arī bieži sastopamu neskaidrību: "Es mainīju tekstu, bet redzu veco versiju." Tad Jūs saņemat saglabātu versiju; pēc kešatmiņas iztukšošanas redzēsiet jauno.
Ne viss drīkst nākt no kešatmiņas. Pieteicies administrators, iepirkumu grozs vai norēķinu lapa katram apmeklētājam ir atšķirīga. Labs kešatmiņas spraudnis šādas lapas izlaiž.
Galvenes: ko serveris Jums pasaka
Katra tīmekļa servera atbilde sākas ar galvenēm (headers), pirms HTML. Jūs tās neredzat lapā, bet gan pārlūka izstrādātāja rīkos (F12, cilne Tīkls, noklikšķiniet uz pirmā pieprasījuma). Piemērs:
HTTP/2 200
server: LiteSpeed
content-type: text/html; charset=UTF-8
link: <https://example.com/wp-json/>; rel="https://api.w.org/"
x-litespeed-cache: hitserverparāda, kurš tīmekļa serveris atbild.linkarwp-jsonatklāj, ka tā ir WordPress.x-litespeed-cache: hitnozīmē, ka šī lapa nāca no LiteSpeed kešatmiņas. Citas kešatmiņas izmanto citus nosaukumus, piemēram,x-cache: HITvaicf-cache-status: HITCloudflare gadījumā.
Jums nav jāzina šīs rindas no galvas. Bet tas, kurš tās prot nolasīt, var daudzas problēmas atrisināt pats.
Kopsavilkums
- WordPress izveido katru lapu pieprasījuma brīdī: tīmekļa serveris, PHP, spraudņi, datu bāze, tēma, HTML.
- Pie katra pieprasījuma tiek ielādēti visi aktīvie spraudņi; viens bojāts spraudnis var apturēt visu tīmekļa vietni.
- Veidņu hierarhija nosaka, kura tēmas veidne noformē lapu.
- Lapas kešatmiņa izlaiž aprēķinus, sniedzot saglabātu HTML. Pieteikušies lietotāji un iepirkumu grozi šajā kešatmiņā nedrīkst nokļūt.
- Atbildes galvenes atklāj, kurš tīmekļa serveris atbild un vai lapa nāca no kešatmiņas.
Tests (quiz)
Uzdevums
Uzdevums A1.2: Nolasiet savas tīmekļa vietnes galvenes. Atveriet savu tīmekļa vietni (vai wordpress.org) ar pārlūka izstrādātāja rīkiem (F12, cilne Tīkls, atsvaidziniet lapu, noklikšķiniet uz pirmā pieprasījuma). Norādiet, kurš tīmekļa serveris minēts galvenē server (vai "neviens", ja tādas nav) un vai ir galvene, kas norāda, ka lapa nāca no kešatmiņas (kāds nosaukums un kāda vērtība). Programma pieprasa to pašu lapu un salīdzina.
Papildu lasāmviela
Šie raksti apraksta soļus WebOké paneļos; citos paneļos tie darbojas līdzīgi.
- DirectAdmin rokasgrāmata 1.9: Begrippen uitgelegd: domain, subdomain, pointer, DNS, mailbox en database
- DirectAdmin rokasgrāmata 14.1: PHP versijas izvēle (Select PHP version)
- Bezmaksas DNS kurss 1.4: DNS vaicājuma ceļojums
- Veidņu hierarhija (developer.wordpress.org, angļu valodā): https://developer.wordpress.org/themes/basics/template-hierarchy/
