Ниже мы рассмотрим установку модулей PHP на сервер с операционной системой Ubuntu или Debian.
В процессе установки модулей нам потребуется получать информацию о параметрах PHP на сервере, поэтому в первую очередь разместим скрипт phpinfo.php
в директории сайта.
Для этого подключитесь к серверу по SSH и выполните следующие шаги:
1. Перейдите в директорию сайта:
cd путь/к/директории/сайта
Например, если на сервере установлен LAMP (автоматически при создании сервера):
cd /var/www/html
Если на сервере установлена панель VestaCP:
cd /home/имя_пользователя/web/имя_домена/public_html
2. Создайте файл phpinfo.php
:
nano phpinfo.php
3. Добавьте в него следующее содержимое:
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>
4. Сохраните изменения (нажмите Ctrl+X для выхода из nano, далее Y для сохранения изменений и Enter).
После перейдите по адресу http://вашдомен/phpinfo.php
, и в браузере будет отображена информация о настройках PHP.
Рассмотрим установку модулей php на примере модуля imagick
.
1. Уточните имя пакета.
Если вы не уверены в точном названии пакета, можно воспользоваться командой ниже, указав часть названия пакета. Для PHP названия большинства библиотек будут начинаться с «php».
apt-cache search что_ищем
Например:
apt-cache search php-ima
Вывод команды выглядит примерно следующим образом:
В данном случае нам будет нужен пакет php-imagick
.
2. Обновите информацию из репозиториев:
apt update
3. Установите библиотеку:
apt install имя_пакета
Например:
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