jak wiedzieć, które rozszerzenia php są zainstalowane


13

Muszę zainstalować na serwerze lamp dokładnie te same rozszerzenia php, które są zainstalowane na starym serwerze. Jak dokładnie wiedzieć, które rozszerzenia są zainstalowane, aby zainstalować to samo na nowym serwerze?

Odpowiedzi:


18

Można użyć przełącznika wiersza polecenia -m, aby phpzobaczyć, co jest zainstalowane moduły.

$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...

Możesz także użyć php -ido uzyskania phpinfo();danych wyjściowych za pomocą wiersza polecenia, który również zawiera te informacje.

Bibliografia


5
Należy zauważyć, że może to nie być ten sam zestaw modułów zawartych w PHP działającym w Apache.
Rich Remer

2

Jeśli rozszerzenie jest rzeczywiście używane, będzie trzeba je php.inigdzieś odwołać . Rozszerzenia są ładowane w dość intuicyjny sposób:

extension=msql.so
extension=/path/to/extension/msql.so

itd itd.

Jedną rzeczą, na którą należy zwrócić uwagę, są rozszerzenia, które są wprowadzane przez inidołączenie dodatkowego pliku. Nie jestem pewien co do Debiana, ale w RHEL istnieje /etc/php.d/katalog, w którym wszystkie .inipliki są traktowane tak, jakby były w głównej/etc/php.ini

Jeśli nie znajduje się w żadnym z tych dwóch miejsc (głównym php.inilub jednym z dołączonych plików), rozszerzenie jest mniej więcej tym samym, że siedzi na nieużywanym systemie plików.

EDYTOWAĆ:

Właściwie myślę, że skłamałem. Być może będziesz musiał spojrzeć na swoje pliki php w poszukiwaniu wywołań dl () . Jednak nie znam wielu ludzi, którzy ładują takie rozszerzenia. Nie jestem nawet pewien, jaki byłby przypadek użycia, ale jest to kolejny obszar, który prawdopodobnie powinieneś sprawdzić.


Minęło trochę czasu, odkąd zbudowałem PHP, ale myślę, że możesz także wybrać statyczne kompilowanie rozszerzeń, w którym to momencie żadna z tych opcji nie pomoże.
Jules

2

W Debianie rozszerzenia PHP są ładowane przez pliki w /etc/php5/conf.d

Istnieją dwa typy pakietów Debiana PHP, które mogą zostać tutaj zainstalowane:

  • Pakiety Debian PHP (których nazwy zaczynają się od php5-)
  • Pakiety PECL PHP (których nazwy zaczynają się od php-)

Aby wyświetlić oba w systemie, możesz użyć tego polecenia: dpkg -l | grep 'ii php5 \? -', który wyświetla listę zainstalowanych pakietów zaczynających się od php- lub php5-.

Możesz także mieć rozszerzenia, które zostały zbudowane przy pomocy PECL z kodu źródłowego. Wyświetl listę za pomocą: pecl list

Wreszcie można skompilować własne rozszerzenia w staromodny sposób. W takim przypadku mogą nie mieć pliku w /etc/php5/conf.d, ale mogą zostać dodane do samego php.ini.

Wszystkie rozszerzenia zwykle mają sekcję danych wyjściowych z phpinfo (); . php -m wyświetli listę załadowanych rozszerzeń PHP (z których każde powinno mieć miejsce w wyjściu phpinfo). Na wyjściu php -m pojawi się o wiele więcej rozszerzeń niż zainstalowanych jako pakiety dodatkowe w Debianie, ponieważ istnieje wiele domyślnych rozszerzeń wbudowanych w PHP, a także tych, które można zainstalować później.

Oto przykład danych wyjściowych z maszyny deweloperskiej wyświetlającej dodatkowe zainstalowane rozszerzenia 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.