Ползване на различен php.ini файл за PHP (cli) през SSH

При ползване на PHP през команден режим по подразбиране с командата php се стартира PHP CLI бинарния файл, който отговаря на PHP версията инсталирана по подразбиране.

За списък с всички опции на PHP CLI, изпълнете:

php -h

За да проверите с коя версия на PHP CLI работите в момента, използвайте:

php -v
Проверка на версията на PHP CLI
Проверка на версията на PHP CLI

За да проверите кой php.ini файл е зареден (Loaded Configuration File) и ще се зарежда при всяко стартиране на PHP, използвайте командата:

php --ini
Проверка на заредения php.ini файл (Loaded Configuration File)
Проверка на заредения php.ini файл (Loaded Configuration File)

Когато не е указано изрично да се ползва друг, PHP CLI ще използва системно зададения php.ini файл: /opt/cpanel/ea-phpXX/root/etc/php.ini.

Използване на потребителски php.ini файл

Ако е необходимо за изпълнението на PHP скрипт да се ползват определени PHP настройки, към командата може да се добави параметър -c и след него потребителски php.ini файл. Например:

php -c /home/cpuser/my-custom-php.ini /home/cpuser/public_html/file.php

/home/cpuser/my-custom-php.ini – заменете с пълния път и името на ini файла;
/home/cpuser/public_html/file.php – файлът, който ще бъде изпълнен;

Ако потребителският php.ini файл ще се използва при всяка PHP команда през конзолата, за да не го изписвате всеки път, добавете един ред във файл .bash_profile:

alias php='php -c /home/cpuser/my-custom-php.ini'

/home/cpuser/my-custom-php.ini – заменете с пълния път и името на ini файла;

Ако искате да работите с друга версия на PHP (cli), редактирайте реда, като промените пътя за бинарния файл:

alias php='/opt/cpanel/ea-phpXX/root/usr/bin/php -c /home/cpuser/my-custom-php.ini'

ea-phpXX – заменете с версията на PHP, например /opt/cpanel/ea-php72/root/usr/bin/php;

ini файлът за PHP директивите е зареден
ini файлът за PHP директивите е зареден

Бележка: В случай че има някаква нередност в посочения ini файл, например съдържа неподдържани директиви от по-стари версии на PHP, в конзолата ще получите съобщение за грешка. Например „Fatal error: Directive ‘allow_call_time_pass_reference’ is no longer available in PHP in Unknown on line 0“. Уверете се, че съдържанието на ini файла е за използваната PHP версия.

За да се зареди ini файла с PHP модулите, добавете в .bash_profile файла и реда:

export PHP_INI_SCAN_DIR=/home/cpuser/.sh.phpmanager/phpXX.d

/home/cpuser/.sh.phpmanager/phpXX.d – заменете с пътя до директорията за ini файла;

Двата ini файла са заредени - този за PHP директивите и този за PHP модулите
Двата ini файла са заредени – my-custom-php.ini за PHP директивите и php72.ini за PHP модулите

Повече информация за двата конфигурационни ini файла на PHP за PHP директивите и PHP модулите, можете да намерите в статията: Как да редактирам собствен php.ini файл?

Ако сте логнати през SSH в хостинг акаунта, за да влезе в сила тази настройка или се разлогнете и логнете наново или изпълнете следната команда:

source ~/.bash_profile

Настройките във файла .bash_profile се зареждат всеки път при достъп до хостинг акаунта през SSH.

Проверете отново кой ini файл е зареден с команда:

php --ini

В резултата от командата, този път трябва да изпише потребителския ini файл в поле Loaded Configuration File.

В командния ред можете да зададете различна стойност на определени PHP директиви, като ползвате опция -d (configuration_directive=value). Например:

php -c /home/cpuser/php.ini /home/cpuser/file.php -d memory_limit=256M

При така зададените параметри, за изпълнението на скрипта, стойността на memory_limit ще е 256MB.


web-hosting-superhosting-icon

Статията се отнася за: хостинг услугата при СуперХостинг.БГ с контролен панел cPanel.

Обновена: 25.01.2022

Беше ли Ви полезна тази статия?

Вижте още