1. Начало
  2. Хостинг
  3. PHP
  4. Ползване на различен php.ini файл за PHP (cli) през SSH

Ползване на различен 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 скрипт да се ползват определени 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.

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

Обновена: 03.07.2019

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

Вижте още