1. Home
  2. Tehniline
  3. PHP
  4. Konsoolis PHP vaikeversiooni muutmine
  1. Home
  2. Tehniline
  3. Apache
  4. Konsoolis PHP vaikeversiooni muutmine

Konsoolis PHP vaikeversiooni muutmine

Zone haldusega serverites (Virtuaalserver, Nutikas privaatserver) on SSH konsoolis vaikimisi PHP CLI versioon sama, mis peadomeeni PHP versioon.

Hetkel kasutusel olevat versiooninumbrit saab vaadata, kui käivitada konsoolis käsk:

> php -v

mis annab järgmise vastuse:

virt1234:sn-69-1.tll07.zoneas.eu:~> php -v
PHP 8.3.7 (cli) (built: May 23 2024 08:53:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies
with Zend OPcache v8.3.7, Copyright (c), by Zend Technologies

Teiste versioonide kasutamine

Muutes veebimajutuse peadomeeni PHP versiooni, muutub ka konsooli vaikeversioon. PHP versiooni saab muuta Minu Zone keskkonnas veebimajutuse halduse jaotises Veebiserver.

Selleks, et muuta kasutusel olevat PHP versiooni ainult konsoolis, tuleb käsu php jaoks luua sümlink kataloogi ~/bin, mis suunab soovitud versiooniga PHP CLI failini või kasutada PHP CLI käsku mille nimes on juba vastav PHP versioon sees.

Juhend SSH ühenduse loomiseks

SSH ühenduse loomine

Püsiv php sümlink

Kui soovitakse kasutada PHP CLI 8.2 versiooni, tuleb käivitada käsk:

> mkdir -p ~/bin && ln -sf /usr/bin/php82-cli ~/bin/php

Kui soovitakse kasutada PHP CLI 7.4 või mõnda teist versiooni, tuleb käsus, php-cli faili jaoks, kasutada vastavat versiooni numbrit ilma punktita:

> mkdir -p ~/bin && ln -sf /usr/bin/php74-cli ~/bin/php

Peale sümlingi lisamist tuleb välja logida ja uuesti sisse logida, misjärel näitab käsk php -v muudetud versiooni.

PS! Kui see sümlink teha, siis enam automaatselt PHP CLI versioon ei muutu.
Selleks, et kasutada uuesti süsteemi vaikimisi PHP CLI versiooni, tuleb sümlink ära kustutada järgmise käsuga:

> rm -f ~/bin/php

Erineva versiooniga PHP CLI käsud

Iga PHP CLI versiooni jaoks on olemas ka eraldi käsud, mida saab kasutada alternatiivina käsu php asemel. Näiteks:

> php83-cli -v
PHP 8.3.7 (cli) (built: May 23 2024 08:53:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies with
Zend OPcache v8.3.7, Copyright (c), by Zend Technologies

Kui soovitakse kasutada PHP CLI 7.4 või mõnda teist versiooni, tuleb käsus kasutada vastavat versiooni numbrit ilma punktita.

Millise versiooniga PHP CLI binaarid on kasutatavad, saab vaadata käsuga:

> l /usr/bin/php*-cli

Vajaliku php.ini laadimine

Kuna vaikimisi kasutatakse PHP CLI jaoks sama versiooni, mida peadomeeni PHP jaoks, siis laaditakse PHP CLI jaoks ka peadomeeni PHP konfiguratsioonifail php.ini.

Kui kasutatakse PHP CLI jaoks mõnda teist versiooni, jääb ikkagi kasutusele peadomeeni PHP versiooniga php.ini konfiguratsioonifail.

Selleks, et PHP CLI kasutaks vajaliku versiooniga php.ini faili või mõnda muud php.ini faili, tuleb kasutada keskkonna muutujat PHPRC, mille väärtuseks on rada vajaliku php.ini failini.
Selleks võib olla majutusserveri PHP CLI php.ini, mõne (alam)domeeni php.ini, globaalne php.ini või täiesti eraldiseisev php.ini fail:

> PHPRC=/etc/php/cli-php8.2/php.ini
> PHPRC=/data01/virt1234/domeenid/www.example.com/phpini/https/sub.example.com/php.ini
> PHPRC=/data01/virt1234/domeenid/www.example.com/phpini/global/php.ini
> PHPRC=/data01/virt1234/domeenid/www.example.com/custom.ini

Või kasutada keskkonna muutujat PHPRC samas käsus, liites kaks käsku kokku:

> PHPRC=/etc/php/cli-php8.2/php.ini && wp cli info

Mõne teise versiooni kasutamise jaoks tuleb ära muuta versiooni number php.ini failirajas.

Kui on vaja peamise php.ini failile lisaks mõned PHP sätted või direktiivid lisada või üle kirjutada, saab kasutada eraldiseisva php.ini laadimise jaoks keskkonna muutujat PHP_INI_SCAN_DIR, mille väärtuseks määrata rada kataloogini, milles asub vajalik php.ini fail:

> PHP_INI_SCAN_DIR=/path/to/dir

Vastupidisel juhul, kui näiteks on olemas globaalne php.ini fail, mida on vaja mitte laadida, tuleb määrata PHP_INI_SCAN_DIR tühja väärtusega:

> PHP_INI_SCAN_DIR=

Püsiv seadistus

Eelnevate php.ini asukoha määravate käskude käivitamisel jäävad keskkonna muutujad PHPRC ja PHP_INI_SCAN_DIR kehtima ainult SSH seansi ajaks.
Kui on vaja, et PHP CLI kasutaks vajaliku php.ini faili pidevalt, tuleb need keskkonna muutujad lisada faili ~/.bashrc.
Fail ~/.bashrc laaditakse automaatselt iga SSH seansi alguses ja sellega laaditakse ka selles olevad keskkonna muutujad.

Eelnevate käskude näidetes PHPRC ja PHP_INI_SCAN_DIR lisamine faili ~/.bashrc ja selle taaslaadimine:

> echo 'PHPRC=/etc/php/cli-php8.2/php.ini' >> ~/.bashrc && source ~/.bashrc
> echo 'PHP_INI_SCAN_DIR=/path/to/dir' >> ~/.bashrc && source ~/.bashrc

Keskkonna muutujate PHPRC ja PHP_INI_SCAN_DIR  read saab failist ~/.bashrc ära kustutada järgmiste käskudega:

> sed -i '/^PHPRC=/d' ~/.bashrc
> sed -i '/^PHP_INI_SCAN_DIR=/d' ~/.bashrc

Esineda võivad vead

Kui konsoolis on näha veateade, mis on seotud PHP CLI või php.ini’ga, tuleb kontrollida ega seda viga ei põhjusta PHP CLI ja laaditava php.ini versioonide erinevus.
Samuti võib vea põhjustada laaditav globaalne php.ini, kui see on mõne vanema PHP versiooni jaoks mõeldud või selles olevad seaded põhjustavad konflikti.

Kui PHP CLI ja laaditava php.ini versioonide vahe on suur, võib see takistada konsoolis PHP CLI kasutamist, sest php.ini failis võib olla kirjas mõne sellise laienduse laadimine, mida PHP CLI versiooni jaoks ei ole olemas.
Nt. sellisel juhul tihti esinev veateade konsoolis:
Warning: PHP Startup: Unable to load dynamic library 'php_xmlrpc.so'.

Kas kasutatakse sümlinki php käsu jaoks või mitte, saab kontrollida järgmise käsuga.
Sümlingi kasutamist näitab inode tüüp l (link) ja sümlink kujul /data01/virt1234/bin/php.

> l $(whereis php)

Mis on PHP CLI versioon ja millised php.ini failid laaditakse PHP CLI jaoks, saab kontrollida järgmise käsuga:

> php -v | head -1 && php --ini | grep -iE 'Configuration File|Additional'

Selleks, et kasutada konsoolis PHP CLI jaoks vajaliku versiooniga php.ini konfiguratsioonifaili, tuleb kasutada keskkonna muutujat PHPRC (PHP dok.: PHP Runtime Configuration).

Updated on 13. juuni 2024

Was this article helpful?

Related Articles