« 类别 UNIX&LINUX&服务器架构 下的文章

centos 下为php添加mongodb扩展

export PHP_AUTOCONF=/usr/bin/autoconf
export PHP_AUTOHEADER=/usr/bin/autoheader
wget http://pecl.php.net/get/mongo-1.2.7.tgz
tar zxvf mongo-1.2.7.tgz
cd mongo-1.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

//最后在php.ini中加入以下行并重启webserver
extension=mongo.so

查看phpinfo,如出现mongo字样,说明成功了。

CentOS下安装Tsung

首先爆个粗口,尼玛,这二郞向下兼空也有真有点弱啊?!
嗯,发泄一下感觉好一点,先说一下我之前犯下的错误,大家有遇到时,别再往这个坑里跳。
Tsung是erlang写的,并且在出报表图时,需要使用perl相关库,所以先要安装三个玩意:
1.erlang
2.perl
3.gnuplot

后面两个好办,perl在centos上直接就带了,没装就装一下。
yum -y install perl
yum -y install gnuplot

现在说这鸟erlang,你特么真是二郞,带个二的东西就是犯二。
在我安装时,我选择的Tsung是1.4.1这个最新版。
而erlang也是选择的最新版R15B这个源码包。
在make install 时报错:
build main app boot script .. make : *** [priv/tsung.boot] Error 1
这个无解,在网上一直找不到答案。最后我一个一个试,先选择不同的Tsung版本,发现报同样的错,所以排除Tsung 版本的问题。然后选择不同的erlang版本,但选择R14B04时,安装成功,所以这特么的问题应该出在最新版上面,R15B。。看什么看,说的就是你丫的,真想抽你丫的,耽误老子半天时间。

具体安装如下:
1.下载erlang-R14B04,(这里erlang的依赖包,需要到官网上去看,依赖啥就装啥。我这就省略了。)
wget http://www.erlang.org/download/otp_src_R14B04.tar.gz
tar zxvf opt_src_R14B04.tar.gz
cd opt_src_R14B04
./configure –prefix=/usr/local/erlang
make && make install
2.安装tsung
wget http://tsung.erlang-projects.org/dist/tsung-1.4.1.tar.gz
tar zxvf tsung-1.4.1.tar.gz
cd tsung-1.4.1
./configure –prefix=/usr/local/tsung –with-erlang=/usr/local/erlang
make && make install

git优点分析

最近想把SVN换成git,总结了一下为什么git更爽一些:

1. git 是分布式的

目前大多数VCS都是集中式式,如SVN,也就是说一台SVN服务器,别人都是客户端,数据的操作都必需在这台服务器上。这会造成一个明显的问题:单点故障,你懂的。

而git是分布式的,也就是说大家都是服务端,你中有我,我中有你,合恢统一,当然git也有共同的远程服务器。不过就算一台服务器挂了,随便找个客户端clone一下,又生龙活虎了。

分布式的别一个好处是,断网或不在内网,你也可以工作。相信大家都有这么个经历,公司有事没做完,背电脑回家做,做了又提交不了,而git就无需担心了,你机子的数据库就是完整的git数据库,就算处于无网状态,你也可以提交修改。

2. git 分支使用指针

传统的VCS切分支挺麻烦的,如果有过管理VCS经验的人应该知道,切一个分支就是完全复制当前分支的所有文件,在比较大型的项目里,开销是比较大的,如果你有N个APP,且每个APP都有各自的分支,那就有的你忙了。

git提倡你多切分支,因为它使用的是指针,你可以在去上厕所前切一个,去上厕所后再切一个,左切切右切切,没关系,它罩得住。

传统VCS切分支是在服务端操作的,也就是说本地其实要在服务端操作完再check下来。git 不然。服务端也可以切分支,本地也可以切分支,这是我认为最大的好处,你在处理12345这个bug时可以切一个分支,马上老大来话说你给我优化一下XXX功能,你又切一个分支,上级应用层来个电话说YYY功能不太好用啊。。同样,你再切一个分支。由于你切的分去只是本地的,不会影响到别人,在发好功能测试后你可以合并到master里,测试提交。

3. 分工协作

本来这点可以放到第一点中,git 是分布式的。不过我单独拿出来是因为这个优点有不同寻常的意义。大家可能经历过手里同时有2~N个活,可能都是基于公司同一个源代码。其中可能要和A完成一个功能,和B完成一个功能。这时候git就可以大显身手了,你也可从A机子里得到项目的最新代码,也可以从B机子里拿到他的劳动成果,而完全不用经过中央服务器,所以不会对其他人照成影响。

4…还有一些优点,以后补充,因为哥们要上班了。

gem 安装不了 rails

WARNING:  RubyGems 1.2+ index not found for

当出现以上错误时,有几种原因,网速过慢、gem服务器太慢、被墙了。
解决方案有几种,一种是自己一个一个下载gem包,本地安装,不过太麻烦。
另一种是修改源地址:
先查看一下当前源地址

gem env
gem sources list

一般默认是:http://rubygems.org/
增加几个源路径:

sudo gem sources -a http://gems.rubyforge.org
sudo gem sources -a http://gems.github.com

问题应该解决了。关于gem sources的用法可以看帮助:gem help sources

Ubuntu 安装rails出现zlib error

这段时间把centos换成ubuntu后,环境重装,在装rails时出现了以下错误:

afeicool@localhost:~$ gem install rails
ERROR:  Loading command: install (LoadError)
no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
uninitialized constant Gem::Commands::InstallCommand

解决方案:

apt-get install zlib-bin zlib1g-dev
cd path/to/your ruby source dir/ext/zlib
ruby extconf.rb –with-zlib-include=/usr/include –with-zlib-lib=/usr/lib
make
make install

fastcgi下的pathinfo

nginx默认配置是不支持pathinfo的。
修改如下:

location ~ \.php
{
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        set $real_script_name $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
        fastcgi_param SCRIPT_NAME $real_script_name;
        fastcgi_param PATH_INFO $path_info;
}

rdesktop:远程桌面客户端

rdesktop是用于LINUX下访问远程windows桌面的一个软件,用了一下感觉非常好,安装和使用都非常简单。再也不用在linux与windows下多台电脑来回奔波了:)

安装:

yum install rdesktop

使用:

rdesktop -f -a 16 192.168.51.23

不过记得设置你的windows系统允许远程登陆。

附上官网地址:http://www.rdesktop.org

CENT OS 显卡驱动安装

以我的Nvidia GeForce 9600M GS显卡为例。
首先确定有没有安装gcc,一般系统都自带了,查看一下有没有安装

yum list installed |grep gcc

如果没有装:

yum -y install gcc

由于安装需要核心原码(kernel),查看下系统中有没有:

yum list installed |grep kernel-devel

如果没有装:

yum -y install kernel-devel

接着我们到nvidia下载驱动程序:


http://cn.download.nvidia.com/XFree86/Linux-x86/270.41.06/NVIDIA-Linux-x86-270.41.06.run

由于安装显卡驱动不能在X-window服务已启动的情况下安装,修改下/etc/inittab改成文字界面启动,然后重启。
最后运行下载的驱动,看说明下一步下一步就搞定。

cent os 无线网卡驱动安装

为了安装这无线驱动,折腾了好长一段时间,其实无线驱动真的不难,极其简单。

第一步,看一下无线网卡型号:

# lspci | grep 'Network'
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection

可以看出我的是Intel 5100 AGN的网卡。

如果你的型号不是这个也不要紧,从官网里找到符合你型号的驱动安装包:

http://wiki.centos.org/HowTos/Laptops/Wireless

第二步,如果有有线就通过有线网络yum一下。

yum --enablerepo=elrepo install iwl5000-firmware

如果上不了网就到别的可以上网的机子里下载RPM包,用U盘考过来


http://elrepo.org/linux/elrepo/el5/i386/RPMS/iwl5000-firmware-8.24.2.12-1.elrepo.noarch.rpm

然后

rpm -Uhv

第三步:重启 iwlagn 模块:

modprobe -r iwlagn; modprobe iwlagn

第四步:把Enable NetworkManager 开启
这样你应该可以在右上角看到无线网络了。

nginx上传文件大小配置

php.ini:

post_max_size
upload_max_filesize

nginx.conf

server部分

client_max_body_size