06 Aug 2011

在 Ubuntu 下安装 Redis 并使用 init 脚本启动 && 添加 删除ubuntu自启动服务


1. 下载安装:
cd /tmp
wget http://redis.googlecode.com/files/redis-*.*.*.tar.gz
tar -zxf redis-*.*.*.tar.gz
cd redis-*.*.*
make
sudo make install
2. 配置init脚本:
wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server
wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf
sudo mv redis-server /etc/init.d/redis-server
sudo chmod +x /etc/init.d/redis-server
sudo mv redis.conf /etc/redis.conf
3. 初始化用户和日志路径
sudo useradd redis
sudo mkdir -p /var/lib/redis
sudo mkdir -p /var/log/redis
sudo chown redis.redis /var/lib/redis
sudo chown redis.redis /var/log/redis
4. 启动Redis:
sudo /etc/init.d/redis-server start


添加一个服务
#sudo update-rc.d 服务名 defaults 99
删除一个服务
#sudo update-rc.d 服务名 remove
临时重启一个服务
#/etc/init.d/服务名 restart
临时关闭一个服务
#/etc/init.d/服务名 stop
临时启动一个服务
#/etc/init.d/服务名 start

01 Jan 2011

在ubuntu上配置 nginx和php+fastcgi

(1)安装php5
apt-get install php5 php-pear php5-cli php5-common php5-xcache php5-cgi php5-mysql php5-curl  php5-gd  php5-imagick  php5-xmlrpc  php5-dev php5-memcache
(2)安装nginx
apt-get install nginx
(3)安装spawn-fcgi
 apt-get install spawn-fcgi
(4)设置,也是最头疼滴地方哦

在/etc/nginx/fastcgi_params 文件最后,加入一行,可以用sudo gedit /etc/nginx/fastcgi_params打开文件
fastcgi_param SCRIPT_FILENAME     $document_root$fastcgi_script_name;
设置php.ini的 cgi.fix_pathinfo=1;doc_root=
拷贝/etc/nginx/sites-availab修改本机hosts文件,指定一个域名
修改server_name
在server_name同级增加root 设置为网站根目录
location里 加上 index.php
php的fast-cgi配置

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include fastcgi_params;     
    }

$ sudo killall -HUP php5-cgi
$ sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
$ /etc/init.d# sudo /etc/init.d/nginx restart 
在网站内放个phpinfo测试一下,ok了。

01 Jan 2011

在ubuntu上配置 nginx和php+fastcgi

(1)安装php5
apt-get install php5 php-pear php5-cli php5-common php5-xcache php5-cgi php5-mysql php5-curl  php5-gd  php5-imagick  php5-xmlrpc  php5-dev php5-memcache
(2)安装nginx
apt-get install nginx
(3)安装spawn-fcgi
 apt-get install spawn-fcgi
(4)设置,也是最头疼滴地方哦

在/etc/nginx/fastcgi_params 文件最后,加入一行,可以用sudo gedit /etc/nginx/fastcgi_params打开文件
fastcgi_param SCRIPT_FILENAME     $document_root$fastcgi_script_name;
设置php.ini的 cgi.fix_pathinfo=1;doc_root=
拷贝/etc/nginx/sites-availab修改本机hosts文件,指定一个域名
修改server_name
在server_name同级增加root 设置为网站根目录
location里 加上 index.php
php的fast-cgi配置

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include fastcgi_params;     
    }

$ sudo killall -HUP php5-cgi
$ sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
$ /etc/init.d# sudo /etc/init.d/nginx restart 
在网站内放个phpinfo测试一下,ok了。

25 Dec 2010

VirtualBox内的Linux和宿主Windows的文件共享

VirtualBox内的Linux和宿主Windows的文件共享
(1)安装增强功能
(2)分配数据空间,制定一个名称,假设为“temp”
(3)挂载, mount -t vboxsf temp /mnt

OK了
另外,反之共享Linux路径,然后在windows内映射网络驱动器即可。

BTW:使用http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html内的PSCP.exe也可以
但我没有去试验。

24 Jul 2010

在centos上装rubyee,passenger和memcached ,搭建rails环境

流水笔记一则.

我之前已在服务器配置了nginx,php,mysql等,现在先安装ruby企业版

cd /tmp
wget http://rubyforge.org/frs/download.php/71096/ruby-enterprise-1.8.7-2010.02.tar.gz
tar -xzvf ruby-enterprise-1.8.7-2010.02.tar.gz
cd ruby-enterprise-1.8.7-2010.02
./installer

然后按照提示做

设置一下环境变量 
export PATH=/rubyee/bin:$PATH
接着
ruby -v
gem -v
看到版本号,说明rubyee 安装ok

下来
gem install passenger
passenger-install-nginx-module

按照提示在nginx配置文件里增加:

http {
     ...
     passenger_root /rubyee/lib/ruby/gems/1.8/gems/passenger-2.2.14;
     passenger_ruby /rubyee/bin/ruby;
     ...
}

  server {
     listen 80;
     server_name www.yourhost.com;
     root /somewhere/public;   # <--- be sure to point to 'public'!
     passenger_enabled on;
  }

rails 欧了~

下来开始装 memcached,

memcached 的使用需要libeven的支持

cd /tmp
wget http://www.monkey.org/~provos/libevent-1.4.14a-stable.tar.gz
tar -zxvf libevent-1.4.14a-stable.tar.gz
cd libevent-1.4.14-stable
./configure --prefix=/usr
make && make install

cd /tmp
wget http://memcached.org/latest
tar -zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/usr/local
make && make install

 现在可以用
service memcached start  


  service memcached stop  

这两个很骚的命令来管理memcached服务了,欧了~

安装mysql gem
gem install --no-rdoc --no-ri mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

安装 ImageMagick

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd ImageMagick*
./configure --disable-static --with-modules --with-gs-font-dir=/usr/share/fonts/type1/gsfonts
make
sudo make install
cd ..
rm -Rf ImageMagick*

wget http://rubyforge.org/frs/download.php/70067/RMagick-2.13.1.tar.bz2
tar -jxf RMagick-2.13.1.tar.bz2
cd RMagick*
./configure --disable-static --with-modules --without-perl --without-magick-plus-plus --with-jpeg=yes --with-png=yes --with-tiff=yes --with-quantum-depth=8  --with-gs-font-dir=/usr/share/fonts/type1/gsfonts
ruby setup.rb
ruby setup.rb install
cd ..
rm -Rf RMagick*

最后 上传 rails 程序
接着 rake gems:install

centos安装rmagick出现以下错误:
libMagickCore.so.2: cannot open shared object file: No such file or directory – /usr/lib/ruby/gems/1.8/gems/rmagick-2.8.0/lib/RMagick2.so
解决办法:

ldconfig /usr/local/lib

错误[memcache-client] Could not load SystemTimer gem, falling back to Ruby's slower/unsafe timeout library: no such file to load -- system_timer
rake aborted!

sudo gem install system_timer

Magick::ImageMagickError (unable to read font `/usr/local/lib/ImageMagick-6.6.3/config//usr/share/fonts/type1/gsfonts/n019003l.pfb' @ error/annotate.c/RenderFreetype/1056: `(null)'):
错误

wget http://sourceforge.net/projects/gs-fonts/files/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-8.11.tar.gz/download
 tar -zxvf ghostscript-fonts-std-8.11.tar.gz
解压后拷贝到需要的目录

13 Apr 2010

win7上安装memcache

像原来在xp下装一样

memcached.exe -d install
memcached.exe -d start

报错“ failed to install service or service already installed”

解决方法:

管理员身份安装,首先找出cmd.exe的原文件(在c:\windows\system32\cmd.exe),

右击以管理员进入,接下来的步骤就和xp安装方法一样了

30 Mar 2010

在rails中不同的view不同皮肤下的js,css,注入js和css到head区域

利用layout可以很好实现这个需求.

在ApplicationHelper内加入如下代码:

def require_js(path)
    content_for :header_js do
      include_js_tag path
    end
  end

  def require_css(path)
    content_for :header_css do
      include_css_tag path
    end
  end

  def include_js_tag(path)
    if not path.starts_with?("http:")
      path = "/themes/#{@setting[:theme]}/javascripts/" + path
    end
    javascript_include_tag path
  end

   def include_css_tag(path)
    if not path.starts_with?("http:")
      path = "/themes/#{@setting[:theme]}/stylesheets/" + path
    end
    stylesheet_link_tag path
  end

(如果你要直接在view或者layout内引入css则可以<%= include_css_tag "global.css" %>,这样生成的路径是带有皮肤目录的)

接下来,修改你的layout的head,加入如下代码:

<%= yield :header_js %>
<%= yield :header_css %>

然后在需要引入js的View内

<% require_js "jquery/jquery.tools.min.js" %>
<% require_js "jquery/jquery.colorbox.min.js" %>

最后run一下,你会看到会在html的head内生成如下html

<script src="/themes/2010v1/javascripts/jquery/jquery.tools.min.js?1269949149" type="text/javascript"></script>
<script src="/themes/2010v1/javascripts/jquery/jquery.colorbox.min.js?1269949147" type="text/javascript"></script>

 

 

21 Jan 2010

优化Rails数据库查询性能 -- rails_reviewer插件

发现一个很棒的插件 rails_reviewer插件

安装:

$ script/plugin install git://github.com/dsboulder/query_reviewer.git
$ rake query_reviewer:setup

完毕后重启server,页面左上角浮动一个SQL CRITICAL浮动窗口,里面记录页面加载时执行的所有SQL以及优化建议等。

强烈推荐 !!!

15 Jan 2010

rails里Mysql::Error: query: not connected

从ubuntu换回了win7后又慢慢开始折腾以前在本本上跑的一些LAMP网站, php和 mysql还是用以前的xampp里的,仍然可以用。

重装了 ruby 1.8.6, rails 2.3.5 等...发现运行rails网站,弹出messagebox提示找不到libmysql.dll尝试把mysql/bin里的dll来regsvr32,不可,直接拷贝到system32目录下错误没了,但打开网站仍然报错,终端显示“Mysql::Error: query: not connected...."

google来了结果

http://topic.csdn.net/u/20090823/12/2775f2e7-a73a-45b3-a047-5ed9330871cd.html

http://xiaolife.com/wordpress/rails-2-3-dbmigrate-issue-with-mysql-5-1-3/

猛然间想起来这些个问题上次玩的时候也出现过,真晕,还是写下来,希望SY一遍胜过脑子记忆千遍吧

24 Sep 2009

rails中的ActiveRecord真性感!

Rails使用的ActiveRecord真性感啊,see see吧

class User < ActiveRecord::Base  
  has_many :articles  
end  
 
class Article < ActiveRecord::Base
  belongs_to :user  
end

然后执行
>> Article.find(1) 会得到延迟加载user对象的sql语句。如下:

SELECT * FROM articles WHERE (articles.id =1) LIMIT 1

当需要访问user对象时,比如用article.user.name会再生成一个sql语句请求数据库。
如果执行
>> Article.find(1,:include => :user) 会得到一次性加载了user的查询

SELECT
articles.`extended_html` AS t0_r6 articles.`excerpt` AS t0_r7
articles.`keywords` AS t0_r8 articles.`allow_pings` AS t0_r10
articles.`allow_comments` AS t0_r9 users.`id` AS t1_r0
articles.`published` AS t0_r11 users.`login` AS t1_r1
articles.`text_filter` AS t0_r12 articles.`id` AS t0_r0
users.`password` AS t1_r2 articles.`user_id` AS t0_r13
articles.`title` AS t0_r1 users.`name` AS t1_r3
articles.`created_at` AS t0_r14 articles.`author` AS t0_r2
users.`email` AS t1_r4 articles.`updated_at` AS t0_r15
articles.`body` AS t0_r3 articles.`permalink` AS t0_r16
articles.`body_html` AS t0_r4 articles.`guid` AS t0_r17
articles.`extended` AS t0_r5
FROM articles LEFT OUTER JOIN users
ON users.id = articles.user_id
WHERE (articles.id = 1)

是不是很优美,很性感涅?