
Мне нужно установить на Lamp-сервере точно такие же расширения PHP, которые установлены на старом сервере. Как узнать, какие именно расширения установлены, чтобы установить их на новом сервере?
решение1
-m
Чтобы php
увидеть, какие модули установлены, можно использовать параметр командной строки .
$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...
Вы также можете использовать командную строку php -i
для получения вывода, который также будет включать эту информацию.phpinfo();
Рекомендации
решение2
Если расширение действительно используется, на него нужно будет php.ini
где-то сослаться. Расширения загружаются довольно интуитивно понятным способом:
extension=msql.so
extension=/path/to/extension/msql.so
и т.д. и т.п.
Одна вещь, на которую следует обратить внимание, это расширения, которые вносятся путем ini
включения дополнительного файла. Я не уверен насчет Debian, но в RHEL есть каталог /etc/php.d/
, где все .ini
файлы обрабатываются так, как если бы они были в основном/etc/php.ini
Если его нет ни в одном из этих двух мест (в основном php.ini
или в одном из включенных файлов), то расширение, по сути, просто находится в файловой системе и не используется.
РЕДАКТИРОВАТЬ:
На самом деле, я думаю, что я солгал. Тебе, возможно, придетсяпосмотрите в ваших php-файлах вызовы dl(). Я не знаю многих людей, которые загружают расширения таким образом. Даже не уверен, какой будет вариант использования, но это еще одна область, которую вам, вероятно, стоит проверить.
решение3
В Debian расширения PHP загружаются через файлы в/etc/php5/conf.d
Здесь могут быть установлены два типа пакетов PHP Debian:
- Пакеты Debian PHP (имена которых начинаются с php5- )
- Пакеты PECL PHP (имена которых начинаются с php- )
Чтобы вывести список обоих в вашей системе, вы можете использовать эту команду: dpkg -l | grep 'ii php5\?-' в котором перечислены установленные пакеты, начинающиеся с php- или php5-.
У вас также могут быть расширения, которые были построены с помощью PECL из исходного кода. Перечислите те, которые имеют: список PECL
Наконец, можно скомпилировать свои собственные расширения по старинке. В этом случае у них может не быть файла в/etc/php5/conf.dно может быть добавлен в сам php.ini.
Все расширения обычно имеют раздел вывода изphpinfo();. php-мпокажет список расширений, которые загрузил PHP (каждое из которых должно иметь место в выводе phpinfo). В списке будет гораздо больше расширенийphp-мвывода, чем устанавливаются как дополнительные пакеты в Debian, поскольку в PHP встроено множество расширений по умолчанию, а также тех, которые можно установить позже.
Вот пример вывода с машины разработки, в котором перечислены дополнительно установленные расширения PHP:
root@zaphod:~# dpkg -l | grep 'ii php5\?-'
ii php-auth-sasl 1.0.4-1 all Abstraction of various SASL mechanism responses
ii php-db 1.7.14-2 all PHP PEAR Database Abstraction Layer
ii php-mail 1.2.0-4 all PHP PEAR module for sending email
ii php-mail-mime 1.8.4-1 all PHP PEAR module for creating MIME messages
ii php-mail-mimedecode 1.5.5-1 all PHP PEAR module to decode MIME messages
ii php-net-smtp 1.6.1-1 all PHP PEAR module implementing SMTP protocol
ii php-net-socket 1.0.9-2 all PHP PEAR Network Socket Interface module
ii php-pear 5.4.39-0+deb7u2 all PEAR - PHP Extension and Application Repository
ii php-xml-parser 1.3.4-6 all PHP PEAR module for parsing XML
ii php5-cgi 5.4.39-0+deb7u2 amd64 server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.4.39-0+deb7u2 amd64 command-line interpreter for the php5 scripting language
ii php5-common 5.4.39-0+deb7u2 amd64 Common files for packages built from the php5 source
ii php5-curl 5.4.39-0+deb7u2 amd64 CURL module for php5
ii php5-dev 5.4.39-0+deb7u2 amd64 Files for PHP5 module development
ii php5-gd 5.4.39-0+deb7u2 amd64 GD module for php5
ii php5-imagick 3.1.0~rc1-1+b2 amd64 ImageMagick module for php5
ii php5-imap 5.4.39-0+deb7u2 amd64 IMAP module for php5
ii php5-intl 5.4.39-0+deb7u2 amd64 internationalisation module for php5
ii php5-mcrypt 5.4.39-0+deb7u2 amd64 MCrypt module for php5
ii php5-mysql 5.4.39-0+deb7u2 amd64 MySQL module for php5
ii php5-pgsql 5.4.39-0+deb7u2 amd64 PostgreSQL module for php5
ii php5-sqlite 5.4.39-0+deb7u2 amd64 SQLite module for php5
ii php5-suhosin-extension 0.9.37-2 amd64 advanced protection system for PHP5
ii php5-sybase 5.4.39-0+deb7u2 amd64 Sybase / MS SQL Server module for php5
ii php5-xdebug 2.2.1-2 amd64 Xdebug Module for PHP 5
root@zaphod:~# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
APC 3.1.13 beta
memcache 3.0.8 beta