php.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. dever-manage tools
  5. name:php.py
  6. author:rabin
  7. """
  8. from core import *
  9. class Php(object):
  10. @classmethod
  11. def init(self):
  12. method = Core.getMethod(Php_Action, Args.action)
  13. method()
  14. class Php_Action(object):
  15. package = {
  16. #http://pecl.php.net
  17. # 名称-版本号,so名,依赖包,configure参数
  18. 'libevent' : ['event-2.3.0', 'event', 'curl-dev,libevent-dev', '']
  19. ,'swoole' : ['swoole-4.3.0', 'swoole', 'libevent-dev,libaio-dev,libmnl-dev', '']
  20. ,'mongo' : ['mongodb-1.3.4', 'mongodb', '', '']
  21. #,'redis' : ['redis-3.1.5RC2', 'redis', '', '']
  22. ,'redis' : ['redis-5.3.2', 'redis', '', '']
  23. ,'memcached' : ['memcached-3.0.4', 'memcached', 'curl-dev,libmemcached-dev,cyrus-sasl-dev', '']
  24. ,'php5_memcached' : ['memcached-2.2.0', 'memcached', 'php5-mysqli,curl-dev,libmemcached-dev,cyrus-sasl-dev', '']
  25. ,'php5_imagick' : ['imagick-3.4.4', 'imagick', 'ImageMagick-dev', 'libtool,imagemagick,imagemagick-dev']
  26. }
  27. @classmethod
  28. def install(self):
  29. if Args.name in self.package:
  30. name = self.package[Args.name][0]
  31. rely = self.package[Args.name][1]
  32. so = self.package[Args.name][2]
  33. config = self.package[Args.name][3]
  34. else:
  35. print Args.name+' error'
  36. return
  37. Core.popen('phpInstall ' + name + ' ' + rely + ' ' + so + ' ' + config, True)
  38. print 'install '+Args.name+':yes'
  39. @classmethod
  40. def show(self):
  41. print self.package.keys()