Установка модулей PHP на Debian и Ubuntu
Ниже рассмотрим установку модулей PHP на сервере с операционной системой Ubuntu или Debian.
Создание phpinfo-скрипта
В процессе установки модулей нам понадобится получать информацию о параметрах PHP на сервере, поэтому в первую очередь разместим скрипт phpinfo.php в директории сайта.
Для этого выполните следующие шаги:
1. Перейдите в директорию сайта:
cd путь/к/директории/сайта
Например, если на сервере установлен LAMP (автоматически при создании сервера):
cd /var/www/html
Если на сервере установлена панель VestaCP:
cd /home/имя_пользователя/web/имя_домена/public_html
2. Создайте файл phpinfo.php:
nano phpinfo.php
3. Вставьте следующий код в файл phpinfo.php:
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>
4. Сохраните изменения (нажмите Ctrl+X для выхода из редактора nano, затем Y для сохранения изменений и нажмите Enter).
Далее перейдите по адресу http://вашдомен/phpinfo.php, и в вашем браузере отобразится информация о настройках PHP.
Установка модулей на примере imagick
Рассмотрим процесс установки PHP-модулей на примере модуля imagick.
1. Определите имя пакета.
Если вы не уверены в точном названии пакета, воспользуйтесь следующей командой, указав часть названия пакета, чтобы найти нужный модуль. Для большинства PHP-библиотек название начинается с "php-".
apt-cache search имя_пакета
Например:
apt-cache search php-imagick
Результат выполнения команды будет примерно следующим:
В данном случае, нам понадобится установить пакет php-imagick.
2. Обновите информацию о доступных пакетах из репозиториев:
apt update
3. Установите необходимую библиотеку, например:
apt install php-imagick
4. Проверьте, какая директория установлена для хранения расширений. Эту информацию можно найти на странице http://вашдомен/phpinfo.php, параметр «extension_dir»:
Перейдите в указанную директорию:
cd /нужная/директория
В вашем конкретном случае:
cd /usr/lib/php/20170718
Проверьте наличие установленной библиотеки:
ls
Вы также можете указать часть имени библиотеки, чтобы упростить вывод, например:
ls ima*
Если библиотека присутствует, она будет отображена в консоли:
5. Проверьте, какая директория используется для дополнительных конфигурационных файлов. Для этого нужно на странице http://вашдомен/phpinfo.php найти параметр «Scan this dir for additional .ini files»:
Перейдите в указанную директорию и просмотрите ее содержимое:
cd /нужная/директория
ls
В вашем конкретном случае:
cd /etc/php/7.2/apache2/conf.d
ls
Также вы можете указать часть имени библиотеки, чтобы упростить вывод, например:
ls *imag*
Если конфигурационный файл с директивой, подключающей библиотеку, успешно создан, он будет отображен в консоли:
Если файл отсутствует, воспользуйтесь командой ниже, чтобы его создать:
echo "extension=imagick.so" > /директория/из/пункта/5/imagick.ini
В данном случае:
echo "extension=imagick.so" > /etc/php/7.2/apache2/conf.d/imagick.ini
Эта команда создаст файл конфигурации imagick.ini в нужной директории и добавит в него директиву extension=imagick.so.
6. Перезагрузите веб-сервер Apache:
service apache2 restart
7. Обновите страницу http://вашдомен/phpinfo.php и найдите установленный модуль, чтобы убедиться, что все работает как нужно:
Подключение внешних библиотек
Если вам потребуется подключить библиотеку, скачанную не из репозитория, выполните следующие шаги:
1. Загрузите файл с расширением .so в директорию с другими библиотеками. Для определения этой директории используйте значение параметра extension_dir на странице http://вашдомен/phpinfo.php. Например, в нашем случае это /usr/lib/php/20170718.
2. Перейдите в директорию с дополнительными конфигурационными файлами. Значение параметра «Scan this dir for additional .ini files» на странице phpinfo.php указывает на эту директорию. Например, у нас это /etc/php/7.2/apache2/conf.d:
cd /etc/php/7.2/apache2/conf.d
3. Создайте новый конфигурационный файл:
nano имя_библиотеки.ini
Например:
nano curl.ini
4. Внутри созданного файла укажите директиву и сохраните внесенные изменения:
extension=имя_библиотеки.so
Например:
extension=curl.so
5. Перезапустите веб-сервер Apache:
service apache2 restart
6. После этого обновите страницу http://вашдомен/phpinfo.php и проверьте, что библиотека успешно установлена.
Если файл библиотеки был размещен в другой директории, на шаге 4 необходимо указать соответствующий путь в директиве extension.
extension=/usr/local/lib/php/extensions/curl.so