Làm thế nào để biết phần mở rộng php nào được cài đặt


13

Tôi cần cài đặt trên máy chủ đèn chính xác cùng các tiện ích mở rộng php được cài đặt trên máy chủ cũ, làm thế nào để biết chính xác tiện ích mở rộng nào được cài đặt để cài đặt tương tự trên máy chủ mới?

Câu trả lời:


18

Bạn có thể sử dụng công tắc dòng lệnh -mđể phpxem những gì các module được cài đặt.

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

Bạn cũng có thể sử dụng php -iđể nhận phpinfo();đầu ra thông qua dòng lệnh bao gồm thông tin này.

Người giới thiệu


5
Cần lưu ý, đây có thể không phải là cùng một bộ mô-đun được bao gồm bởi PHP đang chạy trong Apache.
Rich Remer

2

Nếu tiện ích mở rộng đang thực sự được sử dụng, nó sẽ cần được tham chiếu ở php.iniđâu đó. Tiện ích mở rộng được tải theo cách khá trực quan:

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

Vân vân.

Một điều cần chú ý là các tiện ích mở rộng được đưa vào bởi một initệp bổ sung được đưa vào. Tôi không chắc chắn về Debian, nhưng trên RHEL có một /etc/php.d/thư mục chứa tất cả .inicác tệp được xử lý như thể chúng nằm trong chính/etc/php.ini

Nếu nó không ở một trong hai vị trí đó (chính php.inihoặc một trong các tệp được bao gồm) thì phần mở rộng ít nhiều chỉ nằm trên hệ thống tệp không được sử dụng.

BIÊN TẬP:

Thật ra, tôi nghĩ mình đã nói dối. Bạn có thể phải xem các tệp php của mình để gọi các cuộc gọi đến dl () . Tuy nhiên, tôi không biết nhiều người tải tiện ích mở rộng như vậy. Thậm chí không chắc trường hợp sử dụng sẽ là gì nhưng đó là một lĩnh vực khác bạn có thể nên kiểm tra.


Đã được một thời gian kể từ khi tôi xây dựng PHP, nhưng tôi nghĩ bạn cũng có thể chọn để có các phần mở rộng được biên dịch tĩnh, tại thời điểm này, cả hai tùy chọn này sẽ không giúp ích gì.
Jules

2

Trong Debian, các phần mở rộng PHP được tải thông qua các tệp trong /etc/php5/conf.d

Có hai loại gói PHP Debian có thể được cài đặt tại đây:

  • Các gói Debian Debian (có tên bắt đầu bằng php5-)
  • Các gói PECL PHP (có tên bắt đầu bằng php-)

Để liệt kê cả hai trên hệ thống của bạn, bạn có thể sử dụng lệnh này: dpkg -l | grep 'ii php5 \? -' liệt kê các gói đã cài đặt bắt đầu bằng php- hoặc php5-.

Bạn cũng có thể có các tiện ích mở rộng được xây dựng bằng PECL từ mã nguồn. Liệt kê những người có: danh sách pecl

Cuối cùng, có thể biên dịch các tiện ích mở rộng của riêng bạn theo cách cũ. Trong trường hợp đó, họ có thể không có tệp trong /etc/php5/conf.d nhưng có thể được thêm vào chính php.ini.

Tất cả các phần mở rộng thường có một phần đầu ra từ phpinfo (); . php -m sẽ hiển thị danh sách các phần mở rộng mà PHP đã tải (mỗi phần mở rộng nên có một vị trí trong đầu ra phpinfo). Sẽ có nhiều phần mở rộng được liệt kê trong đầu ra php -m hơn được cài đặt dưới dạng các gói bổ trợ trong Debian, bởi vì có rất nhiều phần mở rộng mặc định được tích hợp vào PHP cũng như các phần mở rộng bạn có thể cài đặt sau đó.

Dưới đây là ví dụ đầu ra từ một máy phát triển liệt kê các phần mở rộng PHP được cài đặt thêm:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.