Установка модулей PHP под Ubuntu

09.12.2019

Теги: ApacheLinuxNginxPHPphp.iniUbuntuКомандаМодульНастройкаУдалитьУстановка

Поиск модулей PHP, которые могут быть установлены или уже были установлены:

$ apt search --names-only php | grep ^php7
php7.2/bionic-updates,bionic-updates,bionic-security,bionic-security 7.2.24-0ubuntu0.18.04.1 all
php7.2-bcmath/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-bz2/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-cgi/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-cli/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-common/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-curl/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-dba/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-dev/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-enchant/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-fpm/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен]
php7.2-gd/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-gmp/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-imap/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-interbase/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-intl/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-json/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-ldap/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-mbstring/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-mysql/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-odbc/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-opcache/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-pgsql/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-phpdbg/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-pspell/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-readline/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-recode/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-snmp/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-soap/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-sqlite3/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-sybase/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-tidy/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-xml/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-xmlrpc/bionic-updates,bionic-security 7.2.24-0ubuntu0.18.04.1 amd64
php7.2-xsl/bionic-updates,bionic-updates,bionic-security,bionic-security 7.2.24-0ubuntu0.18.04.1 all
php7.2-zip/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64

Устанавливаем два модуля PHP — php7.2-gd и php7.2-zip

$ sudo apt install php7.2-gd php7.2-zip

Смотрим, какие модули PHP сейчас уже установлены:

$ apt list --installed | grep ^php7
php7.2-cli/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-common/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-fpm/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен]
php7.2-gd/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен]
php7.2-json/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-opcache/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-readline/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен, автоматически]
php7.2-zip/bionic-updates,bionic-security,now 7.2.24-0ubuntu0.18.04.1 amd64 [установлен]

Файлы конфигурации всех установленных модулей PHP находятся в директории /etc/php/VERSION/mods-available:

$ cd /etc/php/7.2/mods-available
$ ls
calendar.ini  ftp.ini      json.ini     posix.ini     sysvmsg.ini    xdebug.ini
ctype.ini     gd.ini       opcache.ini  readline.ini  sysvsem.ini    zip.ini
exif.ini      gettext.ini  pdo.ini      shmop.ini     sysvshm.ini
fileinfo.ini  iconv.ini    phar.ini     sockets.ini   tokenizer.ini

Для управления модулями пакет php-common предоставляет следующие команды:

  • phpenmod — для включения модулей
  • phpdismod — для отключения модулей
  • phpquery — для просмотра статуса

Синтаксис команд:

# phpenmod [-v ALL|php_version] [-s ALL|sapi_name] module_name
# phpdismod [-v ALL|php_version] [-s ALL|sapi_name] module_name
$ phpquery [-d] [-q] -v version_name -s sapi_name [-m module_name] [-M] [-S] [-V]

Включим два модуля, которые установили ранее:

$ sudo phpenmod -v 7.2 -s fpm gd  # включаем модуль gd
$ sudo phpenmod -v 7.2 -s fpm zip  # включаем модуль zip

Отключить модули можно так:

$ sudo phpdismod -v 7.2 -s fpm gd  # отключаем модуль gd
$ sudo phpdismod -v 7.2 -s fpm zip  # отключаем модуль zip

Опция -v позволяет указать версию PHP, для которой надо включить или отключить модуль. А опция -s предназначена для указания SAPI (Server API), например cli или fpm.

Команда phpenmod просто создает внутри директории conf.d ссылки на файлы из директории mods-available:

$ cd /etc/php/7.2/fpm/conf.d
$ ls -la
итого 8
drwxr-xr-x 2 root root 4096 дек  9 15:20 .
drwxr-xr-x 4 root root 4096 дек  5 10:14 ..
lrwxrwxrwx 1 root root   39 дек  5 10:14 10-opcache.ini -> /etc/php/7.2/mods-available/opcache.ini
lrwxrwxrwx 1 root root   35 дек  5 10:14 10-pdo.ini -> /etc/php/7.2/mods-available/pdo.ini
lrwxrwxrwx 1 root root   40 дек  5 10:14 20-calendar.ini -> /etc/php/7.2/mods-available/calendar.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-ctype.ini -> /etc/php/7.2/mods-available/ctype.ini
lrwxrwxrwx 1 root root   36 дек  5 10:14 20-exif.ini -> /etc/php/7.2/mods-available/exif.ini
lrwxrwxrwx 1 root root   40 дек  5 10:14 20-fileinfo.ini -> /etc/php/7.2/mods-available/fileinfo.ini
lrwxrwxrwx 1 root root   35 дек  5 10:14 20-ftp.ini -> /etc/php/7.2/mods-available/ftp.ini
lrwxrwxrwx 1 root root   34 дек  9 13:01 20-gd.ini -> /etc/php/7.2/mods-available/gd.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-gettext.ini -> /etc/php/7.2/mods-available/gettext.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-iconv.ini -> /etc/php/7.2/mods-available/iconv.ini
lrwxrwxrwx 1 root root   36 дек  5 10:14 20-json.ini -> /etc/php/7.2/mods-available/json.ini
lrwxrwxrwx 1 root root   36 дек  5 10:14 20-phar.ini -> /etc/php/7.2/mods-available/phar.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-posix.ini -> /etc/php/7.2/mods-available/posix.ini
lrwxrwxrwx 1 root root   40 дек  5 10:14 20-readline.ini -> /etc/php/7.2/mods-available/readline.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-shmop.ini -> /etc/php/7.2/mods-available/shmop.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sockets.ini -> /etc/php/7.2/mods-available/sockets.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sysvmsg.ini -> /etc/php/7.2/mods-available/sysvmsg.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sysvsem.ini -> /etc/php/7.2/mods-available/sysvsem.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sysvshm.ini -> /etc/php/7.2/mods-available/sysvshm.ini
lrwxrwxrwx 1 root root   41 дек  5 10:14 20-tokenizer.ini -> /etc/php/7.2/mods-available/tokenizer.ini
lrwxrwxrwx 1 root root   38 дек  9 12:59 20-xdebug.ini -> /etc/php/7.2/mods-available/xdebug.ini
lrwxrwxrwx 1 root root   35 дек  9 16:20 20-zip.ini -> /etc/php/7.2/mods-available/zip.ini
$ cd /etc/php/7.2/cli/conf.d
$ ls -la
итого 8
drwxr-xr-x 2 root root 4096 дек  9 14:26 .
drwxr-xr-x 3 root root 4096 дек  5 10:14 ..
lrwxrwxrwx 1 root root   39 дек  5 10:14 10-opcache.ini -> /etc/php/7.2/mods-available/opcache.ini
lrwxrwxrwx 1 root root   35 дек  5 10:14 10-pdo.ini -> /etc/php/7.2/mods-available/pdo.ini
lrwxrwxrwx 1 root root   40 дек  5 10:14 20-calendar.ini -> /etc/php/7.2/mods-available/calendar.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-ctype.ini -> /etc/php/7.2/mods-available/ctype.ini
lrwxrwxrwx 1 root root   36 дек  5 10:14 20-exif.ini -> /etc/php/7.2/mods-available/exif.ini
lrwxrwxrwx 1 root root   40 дек  5 10:14 20-fileinfo.ini -> /etc/php/7.2/mods-available/fileinfo.ini
lrwxrwxrwx 1 root root   35 дек  5 10:14 20-ftp.ini -> /etc/php/7.2/mods-available/ftp.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-gettext.ini -> /etc/php/7.2/mods-available/gettext.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-iconv.ini -> /etc/php/7.2/mods-available/iconv.ini
lrwxrwxrwx 1 root root   36 дек  5 10:14 20-json.ini -> /etc/php/7.2/mods-available/json.ini
lrwxrwxrwx 1 root root   36 дек  5 10:14 20-phar.ini -> /etc/php/7.2/mods-available/phar.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-posix.ini -> /etc/php/7.2/mods-available/posix.ini
lrwxrwxrwx 1 root root   40 дек  5 10:14 20-readline.ini -> /etc/php/7.2/mods-available/readline.ini
lrwxrwxrwx 1 root root   37 дек  5 10:14 20-shmop.ini -> /etc/php/7.2/mods-available/shmop.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sockets.ini -> /etc/php/7.2/mods-available/sockets.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sysvmsg.ini -> /etc/php/7.2/mods-available/sysvmsg.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sysvsem.ini -> /etc/php/7.2/mods-available/sysvsem.ini
lrwxrwxrwx 1 root root   39 дек  5 10:14 20-sysvshm.ini -> /etc/php/7.2/mods-available/sysvshm.ini
lrwxrwxrwx 1 root root   41 дек  5 10:14 20-tokenizer.ini -> /etc/php/7.2/mods-available/tokenizer.ini
lrwxrwxrwx 1 root root   38 дек  9 12:59 20-xdebug.ini -> /etc/php/7.2/mods-available/xdebug.ini

Структура директорий /etc/php/7.2:

[cli]
   [conf.d]
      10-opcache.ini   20-fileinfo.ini  20-phar.ini      20-sysvmsg.ini
      10-pdo.ini       20-ftp.ini       20-posix.ini     20-sysvsem.ini
      20-calendar.ini  20-gettext.ini   20-readline.ini  20-sysvshm.ini
      20-ctype.ini     20-iconv.ini     20-shmop.ini     20-tokenizer.ini
      20-exif.ini      20-json.ini      20-sockets.ini   20-xdebug.ini
   php.ini  (файл конфигурации php-cli)
[fpm]
   [conf.d]
      10-opcache.ini   20-ftp.ini      20-posix.ini     20-sysvshm.ini
      10-pdo.ini       20-gd.ini       20-readline.ini  20-tokenizer.ini
      20-calendar.ini  20-gettext.ini  20-shmop.ini     20-xdebug.ini
      20-ctype.ini     20-iconv.ini    20-sockets.ini   20-zip.ini
      20-exif.ini      20-json.ini     20-sysvmsg.ini
      20-fileinfo.ini  20-phar.ini     20-sysvsem.ini
   [pool.d]
      www.conf
   php-fpm.conf
   php.ini  (файл конфигурации php-fpm)
[mods-available]  (файлы конфигурации модулей)
   calendar.ini  ftp.ini      json.ini     posix.ini     sysvmsg.ini    xdebug.ini
   ctype.ini     gd.ini       opcache.ini  readline.ini  sysvsem.ini    zip.ini
   exif.ini      gettext.ini  pdo.ini      shmop.ini     sysvshm.ini
   fileinfo.ini  iconv.ini    phar.ini     sockets.ini   tokenizer.ini

Установленные модули

Список встроенных (и загруженных) модулей PHP и Zend (php-cli):

$ php7.2 -m
[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xdebug
Zend OPcache
zlib

[Zend Modules]
Xdebug
Zend OPcache

Справка по всем опциям php-cli

$ php7.2 --help
Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -S <addr>:<port> [-t docroot] [router]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No configuration (ini) files will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

Список встроенных (и загруженных) модулей PHP и Zend (php-fpm):

$ php-fpm7.2 -m
[PHP Modules]
calendar
cgi-fcgi
Core
ctype
date
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
openssl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xdebug
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

Справка по всем опциям php-fpm

$ php-fpm7.2 --help
Usage: php [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p <prefix>] [-g <pid>] [-c <file>] [-d foo[=bar]] [-y <file>] [-D] [-F [-O]]
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -h               This help
  -i               PHP information
  -m               Show compiled in modules
  -v               Version number
  -p, --prefix <dir>
                   Specify alternative prefix path to FastCGI process manager (default: /usr).
  -g, --pid <file>
                   Specify the PID file location.
  -y, --fpm-config <file>
                   Specify alternative path to FastCGI process manager config file.
  -t, --test       Test FPM configuration and exit
  -D, --daemonize  force to run in background, and ignore daemonize option from config file
  -F, --nodaemonize
                   force to stay in foreground, and ignore daemonize option from config file
  -O, --force-stderr
                   force output to stderr in nodaemonize even if stderr is not a TTY
  -R, --allow-to-run-as-root
                   Allow pool to run as root (disabled by default)

Поиск: Apache • Linux • Nginx • PHP • php.ini • Ubuntu • Команда • Модуль • Настройка • Удалить • Установка

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.