簡體   English   中英

如何確定必須將哪些外部模塊安裝到PHP才能在另一台計算機上復制配置?

[英]How can I tell which external modules I have to install to PHP to replicate the configuration on another machine?

我可以輕松做到

php -m

查看由PHP加載的模塊列表,但其中的大多數模塊自動包含在基本安裝中。

我需要查看的是使用的軟件包,這些軟件包在新系統上不存在,以便使其配置與現有系統保持一致。

例如, date在列表中顯示了PHP的模塊,但是沒有安裝和配置php-date軟件包才能使用date函數。

相反, mysql顯示在列表中,但是默認情況下不是這樣,因此我需要安裝php-mysql軟件包。 其他一些(例如xml)首先需要libxml。 我需要默認情況下(在任意配置的計算機上)不存在的PHP模塊列表。

這僅與問題部分相關,但是我正在嘗試使用Puppetforge的thias / php模塊自動化PHP的配置。

有什么方法可以可靠,快速,理想地以編程方式確定這一點嗎?

這是通過為配置中的每個模塊運行yum whatprovides php-$MODULENAME並隨后捕獲提供該模塊的軟件包而手動創建的列表...

# root@dev$ php -m
# 'bz2',         # php-common
# 'calendar',    # php-common
# 'Core',        # php-common
# 'ctype',       # php-common
# 'curl',        # php-common
# 'date',        # php-common
# 'dom',         # php-xml
# 'ereg',        # php-common
# 'exif',        # php-common
# 'fileinfo',    # php-common
# 'filter',      # php-common
# 'ftp',         # php-common
  'gd',          # php-gd needs install
# 'gettext',     # php-common
# 'gmp',         # php-common
# 'hash',        # php-common
# 'iconv',       # php-common
# 'json',        # php-common
# 'libxml',      # php-common
  'memcache',    # php-pecl-memcache needs install
  'mysql',       # php-mysql needs install
# 'mysqli',      # php-mysql
# 'openssl',     # php-common
# 'pcntl',       # php-cli
# 'pcre',        # php-common
  'PDO',         # says php-pdo but in common as of 5.3
# 'pdo_mysql',   # php-mysql
# 'pdo_sqlite',  # php-pdo
# 'Phar',        # php-common
  'pspell',      # php-pspell needs install
# 'readline',    # php-cli
# 'Reflection',  # php-common
# 'session',     # php-common
# 'shmop',       # php-common
# 'SimpleXML',   # php-common
  'snmp',        # php-snmp
# 'sockets',     # php-common
# 'SPL',         # php-common
# 'sqlite3',     # php-pdo
# 'standard',    # php-common
# 'tokenizer',   # php-common
# 'wddx',        # php-xml
  'xml',         # php-xml needs install
# 'xmlreader',   # php-xml
  'xmlrpc',      # php-xmlrpc needs install
# 'xmlwriter',   # php-xml
# 'xsl',         # php-xml
# 'zip',         # php-common
# 'zlib'         # php-common

我最終在params.pp中找到了這個

$php_modules        = ['gd','mysql','pspell','snmp','xml','xmlrpc']

這在我的php.pp個人資料中。

package { 'php-pecl-memcached':
    ensure => installed,
}

php::module { $php_modules : }

我並沒有最終以編程方式完成此任務。 希望這份清單能在以后節省一些人-花了一段時間才弄對了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM