Ubuntu: Kuidas paigaldada ja seadistada PHP (samm-sammuline juhend algajatele ja edasijõudnutele)

目次

1. Sissejuhatus

Miks kasutada PHP-d Ubuntus?

PHP on serveripoolne skriptikeel, mida kasutatakse paljudes veebirakendustes, sh WordPressis. Eriti veebiarenduses on PHP-d laialdaselt kasutatud juba aastaid ning paljud CMS-id ja raamistikud on loodud just PHP abil.

Ubuntu on väga stabiilne ja kogu maailmas arendajate poolt kasutatav Linuxi distributsioon, mis sobib ideaalselt ka serverite jaoks. Ubuntu ja PHP kombinatsiooni kasutatakse laialdaselt nii isiklikes projektides kui ka ettevõtete tootmiskeskkondades.

Artikli sihtrühm ja eesmärk

See artikkel on mõeldud nii algajatele, kes soovivad Ubuntusse PHP installida, kuid ei tea kust alustada, kui ka edasijõudnutele, kes soovivad installida kindlat PHP versiooni. Püüame samm-sammult lihtsalt selgitada kõiki vajalikke samme.

Kasutatav Ubuntu versioon on eeldatavalt 22.04 LTS, kuid juhend sobib üldiselt ka teistele versioonidele.

Mida õpid sellest artiklist

Pärast selle artikli lugemist oskad järgmisi asju ise praktikas rakendada:

  • Põhiline PHP paigaldamine Ubuntus
  • Kuidas paigaldada ja vahetada mitut PHP versiooni
  • PHP töö kontrollimine ja tõrkeotsing
  • Seadistamine koos Apache või Nginxiga
  • Kuidas lisada levinumaid PHP mooduleid

2. Eeldused ja ettevalmistus

Kuidas kontrollida Ubuntu versiooni

Esmalt kontrolli, millist Ubuntu versiooni kasutad. PHP paigaldamise viisid ja ühilduvad moodulid võivad olenevalt Ubuntu versioonist natuke erineda.

Ubuntu versiooni saad kontrollida järgmise käsuga:

lsb_release -a

Või alternatiivina:

cat /etc/os-release

Selles juhendis lähtume Ubuntu 22.04 LTS-ist, kuid põhietapid sobivad ka versioonidele 20.04 ja 23.10.

Süsteemipakettide ajakohastamine

Enne PHP paigaldamist uuenda kindlasti kõik süsteemipaketid. See aitab vältida vananenud sõltuvusi ja probleeme. Kasuta järgmisi käske:

sudo apt update
sudo apt upgrade -y

Nii tagad, et APT paketihaldur ja kõik paketid on värsked.

Vajalike utiliitide paigaldamine

Mõne PHP versiooni jaoks on vaja lisada hoidlaid ja haldada pakette, mistõttu võib olla vajalik paigaldada „software-properties-common“ pakett. Kui see pole veel olemas, kasuta järgmist käsku:

sudo apt install -y software-properties-common

See on vajalik näiteks add-apt-repository käsu jaoks ja eriti kasulik, kui tahad PPA kaudu installida spetsiifilise PHP versiooni.

Root-õigused või sudo kasutamine

Paljud siin kirjeldatud toimingud nõuavad süsteemi muutmist, seetõttu tuleb käsud täita sudo-ga. Kui sa ei ole igapäevaselt sudo-käskudega harjunud, tasub nende kasutus põhimõtted üle vaadata.

3. PHP paigaldamine

Ubuntus saab PHP paigaldada peamiselt kahel moel: kas standardhoidlast või PPA-st (Personal Package Archive), kus saad valida täpse versiooni. Mõlemad meetodid on allpool selgitatud.

PHP paigaldamine standardhoidlast

Ubuntu ametlikus hoidlas on olemas stabiilne PHP versioon. Kui versioon ei ole oluline, saad paigalduse teha lihtsalt nii:

sudo apt install -y php

Pärast paigaldust kontrolli PHP olemasolu käsuga:

php -v

Näide:

PHP 8.1.2 (cli) (built: ...)

Ubuntu 22.04 pakub vaikimisi PHP 8.1 versiooni.

Konkreetse versiooni paigaldamine PPA abil

Kui soovid kasutada uuemat PHP-d või mitut versiooni, lisa ondrej/php PPA hoidla, et saada lai valik PHP versioone.

1. samm: PPA hoidla lisamine

sudo add-apt-repository ppa:ondrej/php
sudo apt update

See hoidla on väga populaarne ja pakub stabiilseid PHP versioonide ehitisi.

2. samm: Soovitud PHP versiooni paigaldamine

Näiteks PHP 8.2 paigaldamiseks kasuta:

sudo apt install -y php8.2

Sarnaselt saab paigaldada ka PHP 7.4 või 8.0.

3. samm: Versiooni kontrollimine

php -v

Kui versioon on õigesti paigaldatud, näed siin seda versiooninumbrit.

4. PHP töö kontrollimine

Pärast PHP paigaldamist kontrolli, kas kõik töötab. Ubuntus saab seda teha nii käsurealt (CLI) kui ka läbi veebiserveri (Apache või Nginx). Mõlemad variandid on allpool kirjas.

Kontroll käsurealt (CLI)

Lihtsaim viis kontrollida on käivitada terminalis:

php -v

Kui näed PHP versiooni ja ehitise infot, töötab CLI osa korrektselt.

Näide:

PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies

Kontroll Apache kaudu

Kui sul on Apache, loo testfail phpinfo() funktsiooniga:

1. Loo testfail

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

2. Ava brauseris

http://localhost/info.php

3. Kontrolli sisu

Kui kuvatakse PHP infoleht, siis töötab Apache kaudu PHP õigesti.

🔍 Märkus: phpinfo() kuvab ka tundlikku infot, seega kustuta see fail pärast kontrolli:

sudo rm /var/www/html/info.php

Kontroll Nginx + PHP-FPM puhul

Nginx kasutab PHP töötlemiseks php-fpm-i. Kontrolli, et .php failid on õigesti seadistatud Nginxi konfiguratsioonis ning kasuta sama testfaili meetodit nagu Apaches.

Kui ilmneb 500-vea teade või fail laetakse alla, vaata üle fastcgi_pass ja include fastcgi-php.conf; seaded.

5. Levinumate PHP moodulite paigaldamine

Põhi-PHP ei sisalda kõiki funktsioone. Paljud võimalused tulevad „moodulitena“, mis tuleb vajadusel eraldi paigaldada. Allpool toome välja olulisemad PHP moodulid.

Mis on PHP moodul?

PHP moodulid (laiendused) võimaldavad lisada näiteks andmebaasiühendusi, mitmebaidiseid stringe, pilditöötlust, XML-tuge jm.

Mooduleid saab paigaldada nii:

sudo apt install php-mooduli_nimi

Versioonipõhiselt näiteks: php8.2-mbstring

Olulisemad moodulid ja nende kasutus

php-mbstring (mitmebaidilised stringid)

Vajalik näiteks jaapani keele või teiste mitmebaidiliste märkidega tekstide töötlemiseks. Praktiliselt kohustuslik Jaapani saitidel ja meilide saatmisel.

sudo apt install php-mbstring

php-mysql (MySQL/MariaDB ühendus)

Vajalik MySQL või MariaDB andmebaaside kasutamiseks. WordPress ja teised andmebaasipõhised rakendused vajavad seda moodulit.

sudo apt install php-mysql

php-gd (pilditöötlus)

Piltide loomine, teisendamine, suuruse muutmine. Kasulik näiteks piltide eelvaadete või salvestuste genereerimiseks.

sudo apt install php-gd

php-xml (XML töötlemine)

Vajalik XML-põhiste andmete, näiteks RSS või SOAP, töötlemiseks. Kasutatakse CMS-ides ja API ühendustes.

sudo apt install php-xml

php-curl (HTTP ühendused)

Võimaldab serveril teha HTTP päringuid, vajalik API-ühendustes ja paljudes raamistikutes.

sudo apt install php-curl

php-zip (ZIP-failide haldus)

ZIP failide pakkimine ja lahtipakkimine, nt failide üleslaadimise juures kasulik.

sudo apt install php-zip

Mooduli aktiveerimine ja taaskäivitamine

Osad moodulid tuleb pärast paigaldamist ka aktiveerida. Selleks kasuta:

sudo phpenmod mooduli_nimi
sudo systemctl restart apache2

Peale aktiveerimist tuleb veebiserver uuesti käivitada.

6. PHP versioonihaldus ja vahetamine

Ubuntus saab ühes serveris kasutada mitut PHP versiooni. See on kasulik arenduskeskkonnas või kui hostid mitut rakendust. Allpool selgitame CLI ja Apache puhul versioonide vahetamist.

CLI-l PHP versiooni vahetamine

Käsk: update-alternatives

Ubuntus saab update-alternatives käsuga kiiresti vahetada käsureal kasutatavat PHP versiooni.

1. samm: Kontrolli paigaldatud versioone

ls /usr/bin/php*

2. samm: Lisa PHP versioonid update-alternatives’i (esimene kord)

sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82

3. samm: Vali kasutatav versioon

sudo update-alternatives --config php

Käsu käivitamisel kuvatakse valik:

There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.2   82        auto mode
  1            /usr/bin/php7.4   74        manual mode
  2            /usr/bin/php8.2   82        manual mode

Press <enter> to keep the current choice[*], or type selection number:

Kirjuta soovitud versiooni number ja muudatus rakendub.

4. samm: Kontrolli versiooni

php -v

PHP versiooni vahetamine Apache’is

Apache võimaldab PHP versiooni vahetada moodulite lubamise/keelamise teel.

1. Kontrolli olemasolevaid mooduleid

ls /etc/apache2/mods-available | grep php

2. Keela praegune moodul

sudo a2dismod php7.4

3. Luba soovitud versiooni moodul

sudo a2enmod php8.2

4. Taaskäivita Apache

sudo systemctl restart apache2

Nii rakendub uus versioon ka Apache kaudu.

7. Seadistamine Apache või Nginxiga

PHP saab kasutada koos veebiserveriga. Ubuntus on levinumad Apache ja Nginx. Mõlema puhul on seadistus erinev – allpool juhised mõlemaks.

Apache (mod_php) seadistus

Apache puhul kasutatakse mod_php-i. See on lihtne lahendus WordPressi ja teiste CMS-ide kiireks käivitamiseks.

1. Paigalda Apache ja mod_php

sudo apt install -y apache2 libapache2-mod-php

Paigalda libapache2-mod-php, et Apache saaks töödelda PHP faile.

2. Taaskäivita Apache

sudo systemctl restart apache2

3. Testi PHP faili

Loo /var/www/html/test.php järgmise sisuga ja ava see brauseris:

<?php
phpinfo();
?>

Näidis aadress:

http://localhost/test.php

Nginx (PHP-FPM) seadistus

Nginx on kerge ja kiire, kuid ei toeta PHP-d otse – vaja on PHP-FPM-i.

1. Paigalda Nginx ja PHP-FPM

sudo apt install -y nginx php-fpm

2. Muuda Nginxi konfiguratsiooni

Muuda /etc/nginx/sites-available/default:

sudo nano /etc/nginx/sites-available/default

Lisa või muuda PHP blokk:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

3. Taaskäivita Nginx

sudo systemctl restart nginx

4. Testi PHP faili

Loo /var/www/html/test.php ja ava see brauseris, et kontrollida PHP toimimist.

Täiendav: tulemüüri seadistus (vajadusel)

Kui kasutad UFW tulemüüri, luba veebiserveri liiklus nii:

sudo ufw allow 'Apache Full'
# või
sudo ufw allow 'Nginx Full'

Apache on lihtne, Nginx annab parema jõudluse – vali vastavalt vajadusele.

8. Tõrkeotsing

PHP ja veebiserveri seadistamisel võib ette tulla tõrkeid. Allpool on levinumad probleemid ja lahendused.

PHP ei tööta (kuvatakse lähtekood)

Põhjus

Kui Apache või Nginx ei töötle PHP-d, vaid näitab faili sisu, on probleem moodulis või seadistuses.

Lahendus

  • Apache:
    Kontrolli, kas libapache2-mod-php on paigaldatud ja aktiveeritud ning taaskäivita Apache.
  sudo apt install libapache2-mod-php
  sudo systemctl restart apache2
  • Nginx:
    Kontrolli, et php-fpm töötab ja Nginxi seadistuses fastcgi_pass suunab õigesse kohta.
  sudo systemctl restart php8.2-fpm
  sudo systemctl restart nginx

Mõni PHP funktsioon ei tööta (funktsioon puudub)

Põhjus

Nõutav PHP moodul pole paigaldatud või aktiveeritud.

Lahendus

  • Paigalda vajaliku moodulid (nt mbstring, xml, curl).
  sudo apt install php-mbstring php-xml php-curl
  • Pärast aktiveerimist taaskäivita veebiserver.
  sudo systemctl restart apache2  # või nginx
  • Kontrolli aktiivseid mooduleid:
  php -m

PHP veateateid ei kuvata

Põhjus

Vaikimisi võivad veateated olla keelatud.

Lahendus

Muuda php.ini seadeid:

sudo nano /etc/php/8.2/apache2/php.ini

Muuda järgnevaid ridu:

display_errors = On
error_reporting = E_ALL

Peale muudatust taaskäivita veebiserver.

sudo systemctl restart apache2

Vigade logide kontrollimine

Apache logid:

/var/log/apache2/error.log

Nginx logid:

/var/log/nginx/error.log

PHP-FPM logid (Nginxiga):

/var/log/php8.2-fpm.log

Kontrolli logisid, et tuvastada tõrkeid.

sudo tail -f /var/log/apache2/error.log

Vea korral järgi alati: logide vaatamine → seadete ülevaatus → serveri taaskäivitamine.

9. Kokkuvõte

Selles artiklis selgitasime samm-sammult, kuidas paigaldada PHP Ubuntu alla ja kasutada seda nii iseseisvalt kui ka veebiserveriga. Siin on peamised punktid ja soovitused järgmisteks sammudeks.

Artikli põhipunktid

  • Kontrolli Ubuntu versiooni ja tee ettevalmistused
    Õige paigaldus eeldab OS-i versiooni teadmist ja pakettide uuendamist.
  • Kaks peamist paigaldusviisi
    Kasuta kas standardhoidlat või lisa PPA, et saada spetsiifiline versioon.
  • Pärast paigaldust kontrolli tööd
    php -v ja phpinfo() abil saad kinnitada CLI ja veebiserveri tööd.
  • Laienda funktsionaalsust moodulitega
    Paigalda vajalikud moodulid nagu php-mbstring või php-mysql.
  • Mitme versiooni haldamine on võimalik
    Kasuta update-alternatives ja Apache mooduleid paindlikuks vahetamiseks.
  • Oluline on ka veebiserveri seadistus
    Seadista vastavalt vajadusele Apache või Nginx korralikult tööle.
  • Vigade korral vaata logisid
    Kui PHP ei tööta, kontrolli esmalt vealoge.

Järgmised sammud

Pärast PHP paigaldamist Ubuntus võid edasi õppida järgmist:

  • MySQL (MariaDB) paigaldus ja andmebaasiühendus
  • WordPressi paigaldus ja seadistamine
  • PHP raamistikud nagu Laravel
  • HTTPS toe lisamine (Let’s Encrypt SSL sertifikaatidega)
  • Süsteemi automaatne haldus ja taaskäivitamine (systemd)

Nende oskuste kombineerimisel saad ehitada professionaalseid ja võimsaid veebiteenuseid.

Ubuntu ja PHP on stabiilne, paindlik ja võimas avatud lähtekoodiga arenduskeskkond. Proovi julgelt ise edasi!

10. Korduma kippuvad küsimused (KKK)

Toome siia mõned enamlevinud küsimused ja nende vastused, mis aitavad nii algajaid kui ka edasijõudnuid Ubuntu ja PHP seadistamisel.

K1. Kuidas paigaldada Ubuntus kõige uuemat PHP versiooni?

V1.
Ubuntu ametlikus hoidlas pole alati kõige uuemat versiooni. Lisa ondrej/php PPA ja installi soovitud versioon:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2

K2. Kuidas vahetada CLI-s PHP versiooni?

V2.
Kui mitu versiooni on paigaldatud, kasuta update-alternatives:

sudo update-alternatives --config php

Vali sobiv versioon ekraanil kuvatavate valikute seast.

K3. Miks Apache kuvab PHP faili lähtekoodi, mitte ei käivita seda?

V3.
See tähendab, et Apache ei töötle PHP-d. Kontrolli, kas libapache2-mod-php on paigaldatud ja aktiveeritud ning taaskäivita Apache:

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

K4. Kus asub PHP seadistusfail (php.ini)?

V4.
CLI ja veebiserver kasutavad erinevaid php.ini faile. Tüüpilised asukohad:

  • Apache: /etc/php/8.2/apache2/php.ini
  • CLI: /etc/php/8.2/cli/php.ini

Muuda „8.2“ vastavalt oma versioonile.

K5. Kuidas aktiveerida PHP laiendmoodulit?

V5.
Paigaldamise järel aktiveeri moodul käsuga phpenmod:

sudo phpenmod mbstring
sudo systemctl restart apache2

Ära unusta veebiserverit taaskäivitada.

K6. Nginxiga PHP ei tööta, mida kontrollida?

V6.
Nginxis peab olema php-fpm õigesti seadistatud. Kontrolli, et fastcgi_pass suunab õigesse .sock faili:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

Kohanda .sock vastavalt oma PHP versioonile.

K7. PHP veateated ei ilmu ekraanile.

V7.
Kontrolli, et php.ini failis oleks:

display_errors = On
error_reporting = E_ALL

Taaskäivita pärast muudatusi veebiserver.

Need on kõige olulisemad nipid ja vastused, mis aitavad Ubuntu ja PHP seadistamisel!