#php #linux #ubuntu-12.04 #php-extension
#php #linux #ubuntu-12.04 #php-расширение
Вопрос:
Я использую Ubuntu Linux 12.04 LTS на своем локальном компьютере. Я давно установил LAMP на свой компьютер. Теперь я хочу включить следующие расширения PHP:
- php_zip
- php_xml
- 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, на сайте.
-
Создайте новый файл и назовите его
info.php
(или какой-либо другойname.php
) -
Напишите в нем этот код:
<?php phpinfo (); ?>
-
Сохраните файл в
root
(домашней) части сайта - Откройте файл в своем браузере. Например:
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)
Вот еще несколько примеров.