2014-07-14 10 views
0

我可以很容易做到如何判斷需要將哪些外部模塊安裝到PHP以在另一臺計算機上覆制配置?

php -m 

看到由PHP加載的模塊列表,但他們中的大多數都自動在基地包括安裝。

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

例如,date在列表中顯示了一個PHP模塊,但沒有php-date包需要安裝和配置才能使用日期函數。

相反,mysql顯示在列表中,但這並不是默認情況下,所以我需要安裝php-mysql包。其他一些人,如xml另外需要首先使用libxml。我需要默認沒有的PHP模塊列表(在任意配置的機器上)。

這只是與問題部分相關,但我試圖使用thias/php module at Puppetforge自動配置PHP的配置。

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

+0

我發現我可以通過遍歷模塊列表併發出'yum whatprovides'php- $ MODULENAME''來緩慢手動獲取這些信息,然後將結果從包中取出。這很可能是更好更快的方式,因爲這是相當殘酷的。基本上尋找'yum whatprovides'列出的特定軟件包,而不是php-common或[no-package-found]。 – phpguru

+0

從任何運行配置派生(最小)Puppet清單是一個難題。我懷疑你將能夠實現一個優雅的腳本來爲你做到這一點。 Puppet的規範方式是1.爲資源實現一個類型/提供者(在本例中爲php模塊)2.使用puppet資源以合適的清單的形式獲取系統中當前實體的列表。儘管這種方法很可能*不適用於你的情況(同樣,也是過度的)。 –

回答

1

這是通過運行yum whatprovides php-$MODULENAME在我們的配置每個模塊,然後捕捉包提供模塊手動創建一個列表...

# [email protected]$ 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 : } 

我沒有最終以編程方式完成它。希望列表能夠在未來保存一段時間 - 花費一段時間才能把它做好!

相關問題