项目常用软件及工具

自己的项目主要基于LNMP开发.所以这些四款软件就没有什么太大的必要介绍了.

1) 对于nginx服务器,可以使用国内淘宝版的Tengine最新版
2) 对于PHP推荐使用最新的稳定版本,到目前为止,最新稳定版为PHP 5.4.28
3) 对于服务器来说,国内好像用的最多的应该是centos了,必竟是免费开源的.而redhat有些是收费的.另外就是ubuntu这个系统.也不错的,安装软件也挺方便.
4) 程序开发,建议使用一些mvc类的php框架,方便团队开发.如果还用原生的面向过程开发的话,每个人一套写法,除了维护成本极高以外,而且还不安全.这类的问题一般框架都可以解决了.当然框架也不敢保证100%的安全,这一点就需要开发人员经常注意有些框架的一些动态新闻信息.至少可以保证一旦发现漏洞bug的话可以第一时间内修复.

以于mvc开发框架,推荐使用ci,yii或者thinkphp这类的框架,上手极块,后期招人也比较容易一些.目前thinkphp3.2 已经正式使用命名空间了,还有其它开发框架.如LARAVEL4、Phalcon、Symfony2都是相当优秀的php开发框架.

个人比较喜欢的是yaf这个框架,对于yaf毕竟是底层实现的框架,所以速度上比较有优势的.目前新浪weibo正在用这个的.此框架的开发人员鸟哥在那里守着.所以可以放心使用不会有什么问题的.这个框架不太适合快速上手.而且也没有orm这类的东西的.

原来php加速软件一般用的是zend optimizer这个.现在5.3以后的版本就要使用opcache这个了.还有一些并发用的软件yar也推荐使用,这是一款RPC framework.这几款软件全部出自鸟哥之手.除外还有yac这个缓存框架,这个与apc,xcache这类的加速软件差不多.

另外项目中会有一些缓存之类软件,如memcache这类的.还有一些其它nosql产品,如mongodb,redis.需要根据项目实际情况来决定要使用哪一个软件.

如果系统再复杂一些的话,可能还要用到一些消息队列软件,如 RabbitMQ、ActiveMQ和ZeroMQ 这些的消息队列软件.同样需要根据项目需求而定,尽量做到减少维护的成本和考虑到项目后期的发展需求

有一些定时任务,如果少的话,可以直接使用Linux下的cron实现,如果定时任务特别多的话,可能就要借助于Supervisord这个软件了。

======================================

项目团队开发,肯定离不开一些版本控制软件,常见的有svn 和git,当然还有一些其它的,如hg之类的.只是国内用的人不多而已.这里推荐git这个分布式的版本控制软件.一直在用这个.比较的爽的.

======================================

项目经理是项目管理中,肯定需要一款项目管理软件的,这些比较的多,国内也有一些免费的和收费的.我用过的是redmine这款项目管理软件,还算可以.所以推荐一下.对于jira这个没有用过.不过听说也不错的.

===============================================================

下面就是一些运维的软件的,目前了解到的常见的有cacti,nagios,zabbix这三个,其中第一个比较的简单的.nagios这个是一个功能比较强大的工具.zabbix是一个分布式的监控工具.个人比较喜欢zabbix这一个.但没有实际有过.只用过cacti这款软件.对于大型公司的很多都是基于一些开源的软件,再自行开发一些插件来实现的.