Page tree

Ниже мы рассмотрим установку модулей PHP на сервер с операционной системой Ubuntu или Debian.

Создание phpinfo-скрипта

В процессе установки модулей нам потребуется получать информацию о параметрах 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.

Установка модулей на примере imagick

Рассмотрим установку модулей 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
  • No labels