PHP имеет множество настроек, которые может изменить Администратор или Пользователь ISPmanager. При этом набор значений зависит от режима работы. В режимах работы PHP «CGI», «FastCGI (Apache)» и «FastCGI (Nginx + PHP-FPM)» используются пользовательские значения. В режиме «Модуль Apache» — значения, указанные администратором. Если пользователь не изменял значение параметра, то вместо пользовательского значения переменной будет использоваться значение, указанное администратором.
Значения переменных выделены цветами:
- — параметры, значения которых не определены в конфигурационном файле PHP и получены непосредственно от самого интерпретатора PHP.
- — параметры, значения которых определены в глобальном конфигурационном файле PHP для администратора и в пользовательском для пользователя.
- — параметры, значения которых не определены.
- — параметры, значения которых доступны пользователю только для чтения.
- Изменение значений переменных
- Шаблон создания конфигурационных файлов
- Применение настроек для режимов работы PHP «CGI» и «FastCGI (Apache)»
- Применение настроек для режима работы PHP «FastCGI (Nginx + PHP-FPM)»
- Применение настроек для режима работы PHP «модуль Apache»
- Первоначальная настройка PHP
- Восстановление значения переменной
- Минуточку внимания
- Модуль Apache
- CGI
- FastCGI (Apache)
- FastCGI (Nginx + PHP-FPM)
- Минуточку внимания
- ISPManager 5 — CentOS 6 — обновляем PHP 5.3 до 7.0 через webtatic
- Установка для нативной версии PHP
- Установка для альтернативной версии PHP
- Установка с помощью пакетного менеджера Pecl
- Установка из исходного кода
Изменение значений переменных
Чтобы изменить значение переменной:
- Выделите переменную и нажмите Изменить.
- Укажите новое Значение переменной.
Глобальный конфигурационный файл настроек хранится в:
- CentOS: /etc/php.ini для нативной версии PHP и в /opt/<версия PHP>/etc/php.ini для альтернативных версий.
- Debian: для каждого режима работы PHP индивидуальный файл. /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini и /etc/php5/fpm/php.ini.
Пользовательские конфигурационные файлы хранятся в /var/www/<директория php-bin версии PHP>/<владелец WWW-домена>/php.ini. Настройки, которые изменял пользователь, хранятся в этой же директории в конфигурационном файле изменённых параметров .php.ini.
Чтобы изменить пользовательские конфигурационные файлы вручную, отредактируйте файл php.ini и продублируйте изменения в файле /var/www/<владелец WWW-домена>/data/<директория php-bin версии PHP>/.php.ini.
Шаблон создания конфигурационных файлов
Файл /usr/local/mgr5/etc/templates/php.ini используется как шаблон создания пользовательских конфигурационных файлов. При создании нового пользователя настройки PHP для него изменяются в соответствии с шаблоном. По умолчанию шаблон содержит строки:
Шаблон пользовательских конфигурационных файлов
session.save_path = "$HOMEDIR/bin-tmp/"
upload_tmp_dir = "$HOMEDIR/bin-tmp/"
sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.com$HOMEDIR — макрос, который при создании пользователя заменяется на его домашнюю директорию.
Применение настроек для режимов работы PHP «CGI» и «FastCGI (Apache)»
Если пользователь ISPmanager сохраняет изменения настроек PHP:
- Изменённые значения переменных записываются в конфигурационный файл изменённых параметров.
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров заменяют соответствующие значения в пользовательском конфигурационном файле.
Если администратор ISPmanager сохраняет изменения настроек PHP:
- Значения записываются в глобальный конфигурационный файл.
- Для каждого пользователя ISPmanager:
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.
Применение настроек для режима работы PHP «FastCGI (Nginx + PHP-FPM)»
Если пользователь ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в конфигурационный файл PHP-FPM пользователя соответствующей версии PHP.
Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл PHP-FPM соответствующей версии PHP.
Применение настроек для режима работы PHP «модуль Apache»
Пользователь не имеет доступа к изменению настроек PHP для этого режима.
Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл модуля Apache соответствующей версии PHP.
Первоначальная настройка PHP
Чтобы упростить первоначальную настройку PHP основные параметры сгруппированы:
- Перейдите в Настройки web-сервера → PHP → Настройка → Основные.
- Выберите Временную зону, которая будет использоваться по умолчанию всеми функциями даты и времени. Указывается в переменной «date.timezone».
- Укажите Время выполнения PHP-скрипта в секундах. Если за это время загрузка скрипта не происходит, его работа завершается. Указывается в переменной «max_execution_time».
- Укажите ограничение на Макс. размер запроса в МиБ. Оно определяет максимально допустимый размер данных, отправляемых методом POST. Указывается в переменной «post_max_size».
- Укажите ограничение на Макс. размер файлов в МиБ. Оно определяет максимальный размер загружаемых с помощью PHP-скриптов файлов. Указывается в переменной «upload_max_filesize».
- Укажите Лимит памяти в МиБ. Он определяет максимальный объём оперативной памяти, который может использовать PHP-скрипт. Указывается в переменной «memory_limit».
- Чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Рекомендуем использовать эту опцию только для отладки скриптов и отключать её после завершения работы.
Чтобы ISPmanager вёл журнал работы PHP-скриптов, включите опцию log_errors. Настройте список ошибок, записываемых в журнал. Для этого включите опцию Вывод всех ошибок и в поле Выбор флагов для игнорирования при выводе ошибок выберите исключения, которые не будут записываться.
В конфигурационный файл php.ini добавляются строки вида:
Конфигурационный файл php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.E_ALL — включает вывод всех ошибок.
& ~E_DEPRECATED & ~E_STRICT — исключаемые ошибки, указанные через «& ~».
Или отключите опцию Вывод всех ошибок и в поле выберите ошибки, которые будут записываться в журнал.
В конфигурационный файл php.ini добавятся строки вида:
Конфигурационный файл php.ini
error_reporting = E_ERROR | E_NOTIC
Восстановление значения переменной
Чтобы восстановить значение переменной под администратором:
- Нажмите Настройки web-сервера → PHP → Восстановить.
- Изменённое значение удаляется из глобального конфигурационного файла PHP.
- Для каждого пользователя ISPmanager:
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.
Чтобы восстановить значение переменной под пользователем:
- Нажмите WWW → PHP → Восстановить.
- Изменённое значение удаляется из пользовательского конфигурационного файла PHP.
Зачастую возникает необходимость обеспечить поддержку сразу нескольких разных версий PHP на одном сервере хостинга, управляемом панелью ISPmanager. У нее такой функции нет, разработчики неоднократно объясняли, почему. Поэтому попробуем устранить этот недостаток самостоятельно.
Изначально у нас есть сервер под управлением ОС Linux Debian v7.XX amd64 с установленной ISPmanager Lite v4.XX, где из репозитория Dotdeb инсталлирован PHP v5.4.XX. Задача заключается в том, что бы обеспечить также одновременную поддержку версий 5.2.XX и 5.3.XX. Сразу оговорюсь, что излагаемое ниже решение подходит только для использования PHP в Apache как FastCGI.
Установить одновременно несколько версий PHP посредством пакетного менеджера APT в Debian невозможно. Поэтому нам придется компилировать их из исходных кодов. Для упрощения этой задачи создан набор скриптов phpfarm. Он представлен в двух вариантах. Оригинальный от Christian Weiske: https://github.com/cweiske/phpfarm И доработанный от François Poirotte: https://github.com/fpoirotte/phpfarm Я использовал последний, поскольку считаю, что он имеет несколько существенных улучшений.
Начнем с того, что установим в систему все необходимые утилиты, библиотеки и файлы заголовков, необходимые для компиляции PHP:
apt-get install -y build-essential git libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libxml2-dev libssl-dev libbz2-dev libcurl3-dev libdb5.1-dev libjpeg-dev libpng-dev libXpm-dev libfreetype6-dev libt1-dev libgmp3-dev libc-client-dev libldap2-dev libmcrypt-dev libmhash-dev freetds-dev libz-dev libmysqlclient-dev ncurses-dev libpcre3-dev unixODBC-dev postgresql-server-dev-9.1 libsqlite-dev libaspell-dev libreadline6-dev librecode-dev libsnmp-dev libtidy-dev libxslt-dev libt1-dev libcurl4-openssl-dev libgdbm-dev libqdbm-dev libdb++-dev php-pear libmagickwand-dev libmagickcore-dev subversion apt-get build-dep -y php5 ln -s /usr/include/qdbm/depot.h /usr/include/depot.h ln -s /usr/lib/libc-client.a /lib/x86_64-linux-gnu/libc-client.a ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
Копируем репозиторий исходных кодов phpfarm:
git clone https://github.com/fpoirotte/phpfarm.git /usr/local/share/phpfarm/
configoptions="\ --with-regex=php \ --disable-rpath \ --disable-static \ --with-pic \ --with-layout=GNU \ --enable-calendar \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \ --enable-bcmath \ --with-bz2 \ --enable-ctype \ --without-db4 \ --with-qdbm=/usr \ --without-gdbm \ --with-cdb \ --with-flatfile \ --with-inifile \ --with-iconv \ --enable-exif \ --enable-ftp \ --with-gettext \ --enable-mbstring \ --with-pcre-regex=/usr \ --enable-shmop \ --enable-sockets \ --enable-wddx \ --with-libxml-dir=/usr \ --with-zlib \ --with-kerberos=/usr \ --with-openssl=/usr \ --enable-soap \ --enable-zip \ --with-mhash=yes \ --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=/usr \ --with-mysqli=/usr/bin/mysql_config \ --enable-pdo \ --with-pdo-mysql=/usr \ --enable-fastcgi \ --enable-force-cgi-redirect \ --enable-exif \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-freetype-dir=/usr \ --with-t1lib \ --with-zlib-dir=/usr \ --with-mcrypt=/usr \ --with-mhash \ --with-mime-magic \ --with-xsl=/usr \ --enable-zip \ --enable-cgi \ --with-curl \ --with-gd \ --enable-pcntl \ --enable-mbregex \ --enable-gd-native-ttf \ --enable-dba=shared \ --with-imap \ --with-imap-ssl \ --with-readline=/usr \ --enable-simplexml \ --with-libdir=/lib/x86_64-linux-gnu \ --with-config-file-scan-dir="$instdir"/etc \ --with-pspell"
configoptions="\ --with-regex=php \ --disable-rpath \ --disable-static \ --with-pic \ --with-layout=GNU \ --enable-calendar \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \ --enable-bcmath \ --with-bz2 \ --enable-ctype \ --with-db4=/usr \ --with-qdbm=/usr \ --without-gdbm \ --with-cdb \ --with-flatfile \ --with-inifile \ --with-iconv \ --enable-exif \ --enable-ftp \ --with-gettext \ --enable-mbstring \ --with-onig=/usr \ --with-pcre-regex=/usr \ --enable-shmop \ --enable-sockets \ --enable-wddx \ --with-libxml-dir=/usr \ --with-zlib \ --with-kerberos=/usr \ --with-openssl=/usr \ --enable-soap \ --enable-zip \ --with-mhash=yes \ --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --enable-pdo \ --with-pdo-mysql=mysqlnd \ --enable-exif \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-freetype-dir=/usr \ --with-t1lib \ --with-zlib-dir=/usr \ --with-mcrypt=/usr \ --with-mhash \ --with-xsl=/usr \ --enable-zip \ --enable-cgi \ --with-curl \ --with-gd \ --enable-pcntl \ --enable-mbregex \ --enable-gd-native-ttf \ --with-libdir=lib64 \ --enable-dba=shared \ --with-imap \ --with-imap-ssl \ --enable-intl \ --with-readline=/usr \ --enable-simplexml \ --with-libdir=/lib/x86_64-linux-gnu \ --with-config-file-scan-dir="$instdir"/etc \ --with-pspell"
PHP v5.2.XX уже давно не поддерживается. Поэтому исходные коды последней доступной на текущий момент версии 5.2.17 я рекомендую брать не из официальных источников, а у проекта https://code.google.com/p/php52-backports/ Он нацелен на устранение недоработок PHP v5.2.XX в первую очередь связанных с уязвимостями, впрочем, создается такое впечатление, что php52-backports уже тоже больше не развивается.
svn checkout https://php52-backports.googlecode.com/svn/trunk/ /usr/local/share/phpfarm/src/php-5.2.17
Специфичную для Debian ошибку нам придется устранить самостоятельно:
cd /usr/local/share/phpfarm/src/php-5.2.17 wget --content-disposition "https://bugs.php.net/patch-display.php?bug_id=54736&patch=debian_patches_disable_SSLv2_for_openssl_1_0_0.patch&revision=1305414559&download=1" patch -p1 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch.patch.txt
Со скачиванием исходных кодов PHP v5.3.XX и 5.4.XX phpfarm справится сам, поэтому приступаем к компиляции и установке:
cd /usr/local/share/phpfarm/src/ ./main.sh 5.2.17 5.3.28
cd /usr/local/share/phpfarm/src/php-5.X.XX make clean
extension=dba.so
Коснемся темы расширений PHP немного подробнее. Естественно, что через панель управления ISPmanager можно управлять только теми из них, что прилагаются к стандартно установленной версии PHP из подключенных репозиториев APT. Для тех версий, что устанавливаются посредством phpfarm, подключение расширений следует также производить путем их компиляции из исходных кодов. Рассмотрим, как это можно сделать, на примере ImageMagick из репозитория PEAR:
mkdir /usr/local/share/phpfarm/ext cd /usr/local/share/phpfarm/ext pear download pecl/imagick tar xzvf imagick-3.1.2.tgz cd imagick-3.1.2 make clean /usr/local/share/phpfarm/inst/php-5.X.XX/bin/phpize ./configure --with-php-config=/usr/local/share/phpfarm/inst/php-5.X.XX/bin/php-config make make install make clean
extension=imagick.so
А вот набор команд для установки акселератора XCache:
cd /usr/local/share/phpfarm/ext wget http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.gz tar xzvf xcache-3.1.0.tar.gz cd xcache-3.1.0 make clean /usr/local/share/phpfarm/inst/php-5.X.XX/bin/phpize ./configure --with-php-config=/usr/local/share/phpfarm/inst/php-5.X.XX/bin/php-config --enable-xcache make make install cp xcache.ini /usr/local/share/phpfarm/inst/php-5.X.XX/etc/ make clean
Обратите внимание, что все расширения необходимо отдельно компилировать для каждой установленной версии PHP.
Смена версии PHP у пользователя панели управления ISPmanager выполняется тривиально. Для этого достаточно лишь изменить строку вызова интерпретатора в файле "/var/www//data/php-bin/php". Вот как выглядит вывод функции PHP phpinfo() при стандартном содержимом: #!/usr/bin/php-cgi. Ссылка на скриншот.
". Вывод функции PHP phpinfo() будет выглядеть вот так: ссылка на скриншот.
Есть сайт на wordpress куда нужно импортировать данные с помощью плагина wpallimport.
Однако получаю невозможность загрузки excel файла и ошибку:
WP All Import requires DOMDocument, XMLReader, and XMLWriter PHP modules to be installed.
These are standard features of PHP, and are necessary for WP All Import to read the files you are trying to import.
Please contact your web hosting provider and ask them to install and activate the DOMDocument, XMLReader, and XMLWriter PHP modules.
Модули XMLReader и XMLWriter установлены, а вот для установки DOMDocument следует установить php-xml модуль
Пишу хостеру с просьбой его установить — получаю такой ответ:
«К сожалению у нас подобные вопросы выходят за рамки базового системного администрирования. Вам нужно сделать это самостоятельно или обратиться к Вашему системному администратору.»
Как можно установить его самостоятельно? Хостинг с доступом по ISPmanager
-
Вопрос заданболее трёх лет назад
-
1582 просмотра
Обнаружил, что для каждого из 4 проектов в ips manager были свои настройки и версии php на сервере, и соответственно для искомого сайта была выбрана нелогично, но другая версия, не в которой правил расширения.
Соответственно в ней и не был включен модуль **XMLReader**
На решение натолкнула запись `php` версии в заголовке таблицы, которая отдает
В панели не увидел где это написано
Как можно установить его самостоятельно?
Никак. Хостинг — это то, что поставил хостер. Не хочет/не может — Вы ничего не сделаете, у Вас ни доступа нет, ни прав. Если хотите ставить сами — Вам за VPS, там правда свои проблемы есть 🙂
Стоит уточнить, если у вас шаред хостинг и у хостера стоит isp для управления им, то, скорее всего, только дальше пинать поддержку.
Если же у вас vps с установленной isp панелью и в настройках php необходимый модуль не ищется по «xml», то необходимо уточнить данные для ssh доступа, после чего подключиться и произвести установку необходимого модуля. Процесс весьма простой и легко гуглится, главное знать что у вас за ОС на сервере.
После установки не забудьте перезагрузить веб сервер.
25 апр. 2023, в 21:22
5000 руб./за проект
25 апр. 2023, в 21:21
100000 руб./за проект
25 апр. 2023, в 21:13
250000 руб./за проект
Минуточку внимания
В ISPmanager можно включить возможность обработки PHP-скриптов для сайта. Для этого при создании или изменении WWW-домена включите опцию PHP и настройте его параметры. Подробнее см. в статье Создание WWW-домена.
Поддерживаются режимы работы PHP:
FastCGI (Nginx + PHP-FPM).
Подробнее о возможностях настройки PHP для режимов работы см. в статье Настройка PHP.
Модуль Apache
динамическое содержимое обрабатывает модуль PHP веб-сервера Apache;
можно выбрать только одну версию PHP для работы модуля, которая распространяется на всех пользователей ISPmanager;
наиболее быстрый из режимов Apache. По скорости уступает только «FastCGI (Nginx + PHP-FPM)».
Чтобы использовать режим:
Установите Apache-MPM-ITK или Apache MPM-Prefork, Модуль PHP. Подробнее см. в статье Установка веб-сервера.
Выберите режим при создании или изменении WWW-домена. Подробнее см. в статье Создание WWW-домена.
При выборе этого режима в конфигурационном файле Apache для WWW-домена добавляются строки вида:
Конфигурационный файл Apache
<FilesMatch "\.ph(p[3-5]?|tml)$"> SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule php5_module> php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f <email администратора>" php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp" php_admin_value session.save_path "/var/www/www-root/data/mod-tmp" php_admin_value open_basedir "/var/www/www-root/data:."
</IfModule>
<IfModule php7_module> php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f <email администратора>" php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp" php_admin_value session.save_path "/var/www/www-root/data/mod-tmp" php_admin_value open_basedir "/var/www/www-root/data:."
</IfModule>
<IfModule php5_module> php_admin_flag engine on
</IfModule>
<IfModule php7_module> php_admin_flag engine on
</IfModule>CGI
динамическое содержимое обрабатывает Apache в режиме CGI;
для каждого WWW-домена, работающего в этом режиме, можно выбрать версию PHP;
самый медленный режим работы.
Чтобы использовать режим:
Установите Apache-MPM-ITK или Apache MPM-Prefork. Подробнее см. в статье Установка веб-сервера.
Выберите режим при создании или изменении WWW-домена. Подробнее см. в статье Создание WWW-домена.
При выборе этого режима в конфигурационном файле Apache для WWW-домена добавляются строки:
Конфигурационный файл Apache
<FilesMatch "\.ph(p[3-5]?|tml)$"> SetHandler application/x-httpd-php5
</FilesMatch>
ScriptAlias /php-bin/ /var/www/php-bin-isp-php52/<владелец WWW-домена>/
AddHandler application/x-httpd-php5 .php .php3 .php4 .php5 .phtml
Action application/x-httpd-php5 /php-bin/phpFastCGI (Apache)
динамическое содержимое обрабатывает Apache в режиме FastCGI;
для каждого WWW-домена, работающего в этом режиме, можно выбрать версию PHP;
по скорости работы уступает «Модуль Apache» и «FastCGI (Nginx + PHP-FPM)», но превышает «CGI».
Чтобы использовать режим:
Установите Apache MPM-Prefork и Модуль PHP. Подробнее см. в статье Установка веб-сервера.
Выберите режим при создании или изменении WWW-домена. Подробнее см. в статье Создание WWW-домена.
При выборе этого режима в конфигурационном файле Apache для WWW-домена добавляются строки:
Конфигурационный файл Apache
<FilesMatch "\.ph(p[3-5]?|tml)$"> SetHandler fcgid-script FCGIWrapper /var/www/php-bin/<владелец WWW-домена>/php
</FilesMatch>
Options +ExecCGIFastCGI (Nginx + PHP-FPM)
динамическое содержимое обрабатывает PHP-FPM;
каждый пользователь ISPmanager может выбрать версию PHP для своих WWW-доменов, работающих в этом режиме;
PHP-FPM не поддерживает правила .htaccess;
самый быстрый режим работы.
Чтобы использовать режим:
Установите Nginx, PHP-FPM FastCGI. Подробнее см. в статье Установка веб-сервера.
Выберите режим при создании или изменении WWW-домена. Подробнее см. в статье Создание WWW-домена.
Чтобы изменить версию PHP:
под учётной записью администратора — перейдите на форму редактирования пользователя.
При выборе этого режима в конфигурационном файле Nginx для WWW-домена добавляются строки:
Конфигурационный файл Nginx
location @php { fastcgi_index index.php; fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f <email администратора>"; fastcgi_pass unix:/var/www/php-fpm/www-root.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; include fastcgi_params; 
Samuello
Учусь WEB программированию.
Доброго времени суток, я тут пытаюсь поднять контейнер на докере, но почему то расширение php-bcmath не устанавливается.
FROM ubuntu:18.04
# Устанавливаем время
ENV TZ=Asia/Almaty
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Создаем рабочую папку
RUN mkdir /var/www
WORKDIR /var/www
# Обновляем APT
RUN apt-get update -y
# Устанавливаем системные зависимости
RUN apt-get install -y nano git mc net-tools cron curl software-properties-common
# Устанавливаем PHP7
RUN ln -sf /var/log/php7.3-fpm.log /dev/stdout
RUN add-apt-repository ppa:ondrej/php -y
RUN apt-get update -y
RUN apt-get install -y php7.3 php7.3-fpm php7.3-pgsql php7.3-curl php7.3-dom php7.3-gd php7.3-mbstring php7.3-zip php-soap php-dompdf <b>php-bcmath</b> php7.3-ldap
RUN sed -i -e "s/pid =.*/pid = \/var\/run\/php7.3-fpm.pid/" /etc/php/7.3/fpm/php-fpm.conf
RUN sed -i -e "s/error_log =.*/error_log = \/proc\/self\/fd\/2/" /etc/php/7.3/fpm/php-fpm.conf
RUN sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/7.3/fpm/php-fpm.conf
RUN sed -i "s/listen = .*/listen = 9000/" /etc/php/7.3/fpm/pool.d/www.conf
RUN sed -i "s/;catch_workers_output = .*/catch_workers_output = yes/" /etc/php/7.3/fpm/pool.d/www.conf
# Устанавливаем composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --install-dir=/usr/bin --filename=composer && chmod +x /usr/bin/composer && php -r "unlink('composer-setup.php');"
# Устанавливаем npm
RUN apt-get install -y npm
ENTRYPOINT php-fpm7.3
CMD ["-F", "-R"]
EXPOSE 9000В списке расширений его нет

Хотя если попытаться установить через терминал, он говорит что уже установлен

-
Вопрос заданболее трёх лет назад
Потому что нужно устанавливать пакет php7.3-bcmath. На вашем же скриншоте видно, что установилась версия модуля для PHP 7.4: php-bcmath is already the newest version (2:7.4+73+ubuntu18.04.1+deb.sury.org+1)
RUN docker-php-ext-enable bcmath
P.S. Или нет, сейчас посмотрел — сборка кастомная, а не офф., где есть «docker-php-ext-enable». Но в любом случае, думаю, его надо включить в php.ini просто.
25 апр. 2023, в 21:22
5000 руб./за проект
25 апр. 2023, в 21:21
100000 руб./за проект
25 апр. 2023, в 21:13
250000 руб./за проект
Минуточку внимания
Материал из Wiki — Iphoster — the best ever hosting and support. 2005 — 2023
ISPManager 5 — CentOS 6 — обновляем PHP 5.3 до 7.0 через webtatic
1) Удаляем полностью php:
# yum remove php-*
2) Удаляем полностью Apache, nginx через ISPManager 5 —> Settings —> Features:
![]()
3) Подключаем репозиторий с php 7.0.12:
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpmи проверяем есть ли php 7:
# yum search php7
4) Ставим Apache-Prefork+ nginx + отмечаем модуль PHP for Apache:
![]()
ISPManager должен автоматом подхватить php 7.0.x из репозитория webtatic и поставить его по-умолчанию.
Проверяем:
# php -v PHP 7.0.12 (cli) (built: Oct 15 2016 19:45:29) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
5) Доустанавливаем нужные модули:
# yum install php70w php70w-bcmath php70w-cli php70w-common php70w-devel php70w-gd php70w-imap php70w-intl php70w-mbstring php70w-mcrypt php70w-mysqlnd php70w-pdo php70w-pear php70w-pecl-apcu php70w-pecl-imagick php70w-snmp php70w-recode php70w-soap php70w-tidy php70w-xml # vi /etc/php.d/apcu.ini apc.shm_size=16M # /etc/init.d/httpd restart
7) Проверяем результат через phpinfo():
![]()
Список php модулей с сервера:
# php -m [PHP Modules] apcu bcmath bz2 calendar Core ctype curl date dom exif fileinfo filter ftp gd gettext gmp hash iconv imagick imap intl json libxml mbstring mcrypt mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix readline recode Reflection session shmop SimpleXML snmp soap sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlwriter xsl zip zlib
Установка для нативной версии PHP
Чтобы вручную установить расширение для нативной версии PHP, введите команду:
yum install <имя пакета>apt install <имя пакета>Установка для альтернативной версии PHP
Вручную можно установить расширение для альтернативной версии PHP:
- с помощью пакетного менеджера Pecl;
- из исходного кода.
Установка с помощью пакетного менеджера Pecl
Алгоритм установки на примере расширения memcache:
yum install autoconf gcc zlib-develapt install autoconf gcc zlib1g-devПри установке других расширений могут потребоваться дополнительные пакеты.
/opt/<директория версии PHP>/bin/pecl install memcacheПодключите расширение для нужной версии PHP:
echo extension=<имя библиотеки расширения> >> /opt/<директория версии PHP>/etc/php.d/<наименование расширения>.iniecho extension=memcache.so >> /opt/<директория версии PHP>/etc/php.d/memcache.ini
Установка из исходного кода
Алгоритм установки на примере расширения env:
cd /tmp wget -O env.tar.gz http://pecl.php.net/get/env tar xzvf env.tar.gz cd env-0.2.1/Запустите конфигурирование и сборку расширения:
/opt/<директория версии PHP>/bin/phpize ./configure --with-php-config=/opt/<директория версии PHP>/bin/php-config && make && make installВключите расширение глобально для нужной версии PHP:
echo 'extension=env.so' > /opt/<директория версии PHP>/etc/php.d/20-env.ini
Сборка расширения может потребовать установки дополнительных пакетов, которые в статье не описаны.

