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.
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).