Как проверить, какие расширения PHP были включены / отключены в Ubuntu Linux 12.04 LTS?

#php #linux #ubuntu-12.04 #php-extension

#php #linux #ubuntu-12.04 #php-расширение

Вопрос:

Я использую Ubuntu Linux 12.04 LTS на своем локальном компьютере. Я давно установил LAMP на свой компьютер. Теперь я хочу включить следующие расширения PHP:

  1. php_zip
  2. php_xml
  3. php_gd2

Для этого сначала я хочу проверить, включены ли эти расширения PHP или нет. Я много искал о том, как проверить установленные / включенные расширения PHP, но каждый раз я находил, как установить эти расширения в Ubuntu Linux. Итак, может кто-нибудь, пожалуйста, дайте мне знать, как мне проверить включенные / отключенные расширения PHP в Ubuntu Linux 12.04 LTS?

Комментарии:

1. <?php phpinfo(); ?> Вставьте это в файл php и запустите его.

2. Вы смотрели на выходные данные phpinfo()?

3. Попробуйте сделать это в терминале php -m , и вы увидите доступные модули.

4. @RahilWazir: Я попробовал php -m в терминале и некоторые модули, перечисленные там. Значит ли это, что эти модули включены на моем компьютере?

5. @PHPLover — они включены для выполнения PHP через CLI, но не обязательно для web SAPI, поскольку у каждого из них могут быть разные ini-файлы с включенными / отключенными разными модулями

Ответ №1:

Проверка установленных модулей и пакетов php

В дополнение к запуску

 php -m
  

чтобы получить список установленных модулей php, вам, вероятно, будет полезно получить список установленных в настоящее время пакетов php в Ubuntu:

 sudo dpkg --get-selections | grep -v deinstall | grep php
  

Это полезно, поскольку Ubuntu делает модули php доступными через пакеты.

Затем вы можете установить необходимые модули, выбрав один из доступных пакетов Ubuntu php, которые вы можете просмотреть, выполнив:

 sudo apt-cache search php | grep "^php5-"
  

Или для Ubuntu 16.04 и выше:

 sudo apt-cache search php | grep "^php7"
  

Как вы уже упоминали, имеется много информации о фактической установке пакетов, которые вам могут потребоваться, поэтому я не буду вдаваться в подробности об этом здесь.

Связанные: включение / отключение установленных модулей php

Возможно, что установленный модуль был отключен. В этом случае он не будет отображаться при запуске php -m , но он будет отображаться в списке установленных пакетов Ubuntu.

Модули могут быть включены / отключены с помощью php5enmod инструмента ( phpenmod в более поздних дистрибутивах), который является частью php-common пакета.

Ubuntu 12.04:

Включенные модули имеют символические ссылки в /etc/php5/conf.d

Ubuntu 12.04: (с PHP 5.4 )

Чтобы включить установленный модуль:

 php5enmod <modulename>
  

Чтобы отключить установленный модуль:

 php5dismod <modulename>
  

Ubuntu 16.04 (php7) и выше:

Чтобы включить установленный модуль:

 phpenmod <modulename>
  

Чтобы отключить установленный модуль:

 phpdismod <modulename>
  

Перезагрузите Apache

Не забудьте перезагрузить Apache2 после включения / выключения:

 service apache2 reload
  

Комментарии:

1. Также проверьте ответ от @tahsin-abrar, если вы хотите проверить, включено ли расширение в скрипте.

2. Многие модули настраиваются на загрузку при запуске Apache при их установке. Они все равно будут отображаться при запуске php -m , но они не будут включены, пока вы не перезапустите Apache. Итак, вы должны запустить, например, на Debian / Ubuntu: apt install -y php-gd php-curl amp;amp; systemctl restart apache2.service

Ответ №2:

Чтобы проверить, включены ли эти расширения или нет, вы можете создать файл php, т.е. info.php и написать там следующий код:

 <?php 
echo "GD: ", extension_loaded('gd') ? 'OK' : 'MISSING', '<br>';
echo "XML: ", extension_loaded('xml') ? 'OK' : 'MISSING', '<br>';
echo "zip: ", extension_loaded('zip') ? 'OK' : 'MISSING', '<br>';
?>
  

Вот и все.

Комментарии:

1. итак, это показывает, включено ли расширение или нет.. как узнать, установлен он или нет с использованием php??

2. Ммм .. я думаю, вам нужно проверить phpinfo() получение информации. Если вы не найдете сведений о расширении в phpinfo() , то это означает, что оно не установлено. Я не нахожу другого пути.

Ответ №3:

Вы можете просмотреть, какие модули (скомпилированные в) доступны через терминал через php -m

Ответ №4:

Возможно, самый простой способ узнать, какие расширения (скомпилированы и) загружены (не в cli), — это запустить на сервере следующее:

 <?php
$ext = get_loaded_extensions();
asort($ext);
foreach ($ext as $ref) {
    echo $ref . "n";
}
  

В PHP cli не обязательно загружены те же расширения.

Комментарии:

1. 1 за признание того, что есть причины, по которым кто-то может захотеть программно проверить список включенных расширений.

Ответ №5:

Для получения информации о php extensions etc, на сайте.

  1. Создайте новый файл и назовите его info.php (или какой-либо другой name.php )

  2. Напишите в нем этот код:

      <?php
       phpinfo ();
     ?>
      
  3. Сохраните файл в root (домашней) части сайта

  4. Откройте файл в своем браузере. Например: example.com/info.php php будет отображаться вся информация на вашем сайте.

Ответ №6:

Расширение поиска в

/etc/php5/apache2/php.ini

Ответ №7:

Еще один быстрый способ узнать, включен / отключен модуль или установлен только или нет, — это использовать команду phpquery .

Например, на моей машине Linux Mint, если я хочу узнать, включен ли xdebug, я бы запустил:

  phpquery -v 8.1 -s apache2 -m xdebug
  

-v — это указать, для какой версии вы хотите

-s — указать среду (apache2 или cli)

-m — интересующий вас модуль.

Ответ для приведенного выше примера был (в моем случае):

 xdebug (Enabled for apache2 by maintainer script)
  

Вот еще несколько примеров.