Posts tagged with Linux


这两天整了个Ubuntu(14.04 LTS)上安装配置Nginx,MySQL,PHP环境的一键安装的shell脚本,一劳永逸。 Github:ubuntu-lnmp-installer 包括的软件包: Jemalloc(4.2.0) PHP(7.07) MySQL(5.6.29) Nignx(1.10.0) Redis(3.2.0) Node.js(5.8.0)…

Github :https://github.com/yuansir/vagrant Box ubuntu-14.04-amd64.box vagrant box add ubuntu/fuck path/to/ubuntu-14.04-amd64.box 目录文件说明 Vagrantfile vagrant配置文件 bootstrap.sh vagrant provision shell 脚本 etc/ 开发环境所需的配置文件,暂时只有nginx 和 supervisord,根据个人实际情况添加…

最近几个用Mac 的同事都说Vagrant经常宕了或者导致电脑死机重启,看了下进程就是VBoxHeadless占满CPU导致的,其实很简单解决。 Vagrant 配置加上 $enable_serial_logging = false 然后vagrant destroy**,**vagrant up 如果还是不行安装插件 vagrant plugin install vagrant-vaguest,然后重启 转载请注明: 转载自Ryan是菜鸟 | LNMP技术栈笔记 如果觉得本篇文章对您十分有益,何不 打赏一下 本文链接地址: Mac OS Vagrant VBoxHeadless 占满CPU的解决方法…

以前Vagrant VM中用Elasticsearch 1.7的时候,做端口映射: config.vm.network "forwarded_port", guest: 9200, host: 9300 这样就可以在本地成功用127.0.0.1:9300来访问vagrant中的Elasticsearch了,但是如果是Elasticsearch 2.0这样就不可以了,只要修改elasticsearch.yml: network.host: 0.0.0.0 再vagrant reload 启动一下Elasticsearch就OK了 转载请注明: 转载自Ryan是菜鸟…

加入新的团队,他们之前一直用svn而且每个人都用vim在开发机的自己的用户目录下面开发,这种原始社会的开发方式实在不能忍,于是将团队的开发方式转到git-flow+vagrant,将svn项目转到gitlab中。 1.导出SVN项目的所有提交者 svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > users.txt 修改一下对应的gitlab账号,类似于:…

上一篇《Elasticsearch与MongoDB 数据同步及分布式集群搭建 (一)》我们已经配置了一个Elasticsearch与MongoDB 数据同步高可用,可扩展以及分布式是ES的一个优势和特色,扩展垂直扩展或者向上扩展,Vertical Scale/Scaling Up,或是水平扩展或者向外扩展,Horizontal Scale/Scaling Out。 一个节点会运行一个ES的实例,一个集群则会包含拥有相同cluster.name的一个或者 多个节点,这些节点共同工作来完成数据共享和负载分担。随着节点被添加到集群,或者从集群中被删除,集群会通过自身调节来将数据均匀分布。集群中的一个节 点会被选为主节点(Master Node),它负责管理整个集群的变化,如创建或者删除一个索引(Index),向集群中添加或者删除节点。任何节点都可以成为主节点。在我们的例子中只…

Elasticsearch通过River可以与多种数据源Wikipedia, MongoDB, CouchDB, RabbitMQ, RSS, Sofa, JDBC, FileSystem,Dropbox等同步,公司的业务是用 MongoDB,今天测试环境虚拟机上配置了一下Elasticsearch 与 MongoDB的同步,作个大概的过程记录,主要利用richardwilly98 / elasticsearch-river-mongodb。 River通过读取mongodb的oplog来同步数据,oplog这个表来使集群中的不同机器数据同步的,可以保证es里面的数据和mongodb里面的是一样的,所以Mongdb必须是个集群才能拥有oplog.注意:该插件只支持集群环境下的mongodb,因为集群环境下的mongodb才有oplog这个 Elasticsearch 和 MongoDB需要安装对应的版本才能实现同步,我这里用了最新的Elasticsearch 1.4.2 和 MongoDB 3.0.…

Mac OS 用了几个月了,系统自带的终端实在用着不爽,今天换了Iterm2,感受一天,体验甚好。 关于配色 ryan@localhost-6:~$ vim .bash_profile export CLICOLOR=1 export LSCOLORS=GxFxCxDxBxegedabagaced export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\…

最近工作中开发的一套系统,其中很多都是需要操作多服务器的,比如需要同时发布数据到2000个服务器上,或者同时向2000个服务器拉取数据。刚开始的解决方案就是单纯用PHP的curl_multi的方式并发处理请求,而且参考了淘宝技术博客的《Rolling cURL: PHP并发最佳实践》,但是由于网络和数据以及各个服务器等等的一些情况导致这种并发处理的响应时间很慢,因为在并发请求的过程中还包括记录日志,处理数据等逻辑,等待处理结果并返回,所以也不能友好的满足后台操作的体验。 现在重新设计一种方案,利Gearman来实现并发的需求。通过Client将请求发送到Gearman的Jobs,在每个Work中来再来进行curl_multi和数据处理和日志等一些操作,同时用Supervisor来监控Gearman以及Works的进程,这样可以实现一个并行的多进程和负载均衡的方案。 Gearman可以做什么 异步处理:图片处理,订单处理,批量邮件/通知之类的 要求高CPU或内存的处理:大容量的数据处理,MapReduce运算,日志聚集,视频编码 分布式和并行的处理 定时处理:…

周末在家无聊,看了下Linux守护进程(Daemon),以及实现的过程,然后用PHP实现了下,感觉这玩意确实对于一些应用场景很有用。结合PHP做一下笔记,如有错误请指正。先的熟悉一些名词。 守护进程:Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。 进程组:是一个或多个进程的集合。进程组有进程组ID来唯一标识。除了进程号(PID)之外,进程组ID也是一个进程的必备属性。每个进程组都有一个组长进程,其组长进程的进程号等于进程组ID。且该进程组ID不会因组长进程的退出而受到影响。 会话周期:会话期是一个或多个进程组的集合。通常,一个会话开始于用户登录,终止于用户退出,在此期间该用户运行的所有进程都属于这个会话期。 创建一个守护进程大体这样: fork子进程,父进程退出 为避免挂起控制终端将Daemon放入后台执行,…