作者:珂珂
发布时间:May 10, 2012
分类:默认分类
No Comments
新装的ubuntu 12.04,用apt-get大法安装的mysql,nginx和php
然后呢在配置nginx和php的pathinfo时候出现了点问题,根据之前的笔记配置,总报错 Access denied.
最后还是找度娘搞定
看这里
http://blog.51osos.com/opensource/nginx-emergency-restart-threshold-sigsegv/
这样说到
(1)设置fastcgiparam SCRIPTNAME $fastcgiscriptname;
php-cgi如果找不到文件或者没有权限访问的话 会提示No input file specified. 或者Access denied.
(2)php.ini中cgi.fix_pathinfo
cgi.fix_pathinfo boolean
对CGI提供了真正的PATHINFO/PATHTRANSLATED支持。以前PHP的行为是将 PATHTRANSLATED 设为 SCRIPTFILENAME,而不管 PATHINFO 是什么。有关 PATHINFO 的更多信息见 cgi 规格。将此值设为 1 将使 PHP CGI 修正其路径以遵守规格。设为 0 将使 PHP 的行为和从前一样。默认为零。用户应该修正其脚本使用 SCRIPTFILENAME 而不是 PATHTRANSLATED。
when cgi.fixpathinfo was set to “1″ it caused a lot of checks in order to find which part of SCRIPTFILENAME is a file name and which is PATHINFO. In case of missing file it caused NULL in pathtranslated, which caused the crash.
nginx.conf里php部分配置参数如下
location ~ \.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
# fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
注释掉 fastcgi_param 里的这里
# fastcgi_param SCRIPT_FILENAME $request_filename;
作者:珂珂
发布时间:April 24, 2012
分类:默认分类
No Comments
基础快捷键(+表示同时操作、-表示分步操作)
Cmd+Shift+3:全屏截图;截取整个屏幕,保存截图至桌面文件夹。
Cmd+Shift+4:区域截图;鼠标光标变成带坐标的小十字,通过拖拽截取特定区域,保存截图至桌面文件夹。
Cmd+Shift+4 - 单击空格键 - 鼠标单击指定窗口:窗口截图;出现小十字光标后对指定窗口按空格键,鼠标光标变成照相机,鼠标单击截取指定窗口,保存截图至桌面文件夹。
进阶快捷键
Cmd+Shift+4 - 按住空格键拖动鼠标:区域截图;选取区域范围后,按住空格键并拖到鼠标可移动选取范围,释放按键后保存截图至桌面文件夹。
Cmd+Shift+4 - 按住Shift - 上下/左右移动鼠标:区域截图;选取区域范围后,按住 Shift 并上下/左右移动鼠标即可固定选取范围宽度/高度改变高度/宽度,释放按键后保存截图至桌面文件夹。
Cmd+Shift+4 - 按住Shift和Option: 区域截图;选取区域范围后,按住 Shift 和 Option 键在上一快捷键功能的基础上自由切换高度宽度,释放按键后保存截图至桌面文件夹。
Cmd+Shift+4 - 按住Option: 区域截图;选取区域范围后,按住 Option 键可按比例缩放选取范围,释放按键后保存截图至桌面文件夹。
PS:以上介绍的快捷键配合按住 Control 键即可将截图文件保存在剪切板,以供调用。
利用终端截图
还有比较 Geek 的方法就是通过终端(Terminal)命令来截图,终端截图命令 screencapture 有十多种参数可以选择,比如截图后立即显示、消除截图声音、延迟数秒后截图等。有兴趣的读者可以通过下面这条命令查看各个参数的具体使用方法。(运行结果即本文配图)
screencapture -h
From tip4mac.com
作者:珂珂
发布时间:February 23, 2012
分类:默认分类
No Comments
会进入插入模式的命令
o 在当前行下插入新一行
O 在当前行上插入新一行
S 删除到行末的内容
D 删除光标所在位置到行尾的字符
C 删除光标所在位置到行尾的字符,进入insert模式
I,A 定位光标至当前行首/尾,并进入insert模式,I会忽略行首空白
其他
H,M,L 定位光标到当前窗口的首/中/尾
y,Y 复制,复制一个行
$ 从当前光标当前位置直到当前行末
f 后接着任何其它字符会定位到字符下次出现的位置, "F" (上次出现的位置)
C 修改当前光标到行尾的文本,效果与 c$ 等同
D 删除当前光标到行尾的所有字符,效果与 d$ 相同
r 修改当前光标所在的那个字符,r 命令不需要使用 ESC 返回命令模式
e 从当前光标当前位置直到单字/单词末尾,不包含特殊符号以及标点符号
E 从当前光标当前位置直到单字/单词末尾,包含特殊符号以及标点符号
w 光标向右移动一个单词,特殊符号以及标点符号同样作为单词处理
W 光标向右移动一个单词,特殊符号以及标点符号不作为单词处理,即会忽略特殊符号和标点符号
b 光标向左移动一个单词,特殊符号以及标点符号作为单词处理
B 光标向左移动一个单词,特殊符号以及标点符号不作为单词处理,即会忽略特殊符号和标点符号
VIM中的命令是可以组合使用的,例如
dw 删除从光标所在位置后到一个单词结尾的字符
cw 替换从光标所在位置后到一个单词结尾的字符(区别在于该命令会进入插入模式)
cc 首先会删除当前文本行,把光标移动到行首,并进入插入模式等待用户输入
daw,diw,bde 删除一个单词(好纠结的组合)
daB,diB 删除/删除内涵一个{}大块
dab,dib 删除/删除内涵一个()大块
>aB 缩进一个区块
ctrl + t,ctrl + d 插入模式下,缩进/反缩进当前行
查找替换操作
:%s/find/string/g (用string替换find,/g:替换每一个匹配,%表示文件全局,s表示substitute)
:s/this/that/g (替换当前行的this为that)
:10,20s/this/that/g (替换10-20行的this为that)
:10,20s/this/that/gc (c表示替换时需确认,i就是不区分大小写)
:g/find/d (删除含有匹配文字的整行)
:g!/find/d (删除不含匹配文字的行)
窗口操作
:open file 打开文件file
:split 水平分屏(:sp作用相同)
:split file 水平打开文件file
:new 在新窗口创建文件 (:n作用相同)
:vsplit 垂直分屏(:vs作用相同)
:vsplit file 垂直打开文件file
:vnew 在新窗口创建文件
:only 取消分屏
ctrl + w + w 在窗口之间轮转
ctrl + w + k 跳转到上面的窗口(若K,则当前窗口被调至上方)
ctrl + w + j 跳转到下面的窗口(若J,则当前窗口被调至下方)
ctrl + w + h 跳转到左边的窗口 (若H,则当前窗口被调至左方)
ctrl + w + l 跳转到右边的窗口 (若L,则当前窗口被调至右方)
ctrl + w + p 上一个窗口
ctrl + w + s 水平分屏
ctrl + w + v 垂直分屏
ctrl + w + c 关闭窗口
ctrl + w + o 关闭其它窗口
ctrl + w + + 扩大窗口 (或在当前窗口位置,输入命令 res +9)
ctrl + w + _ 缩小窗口
作者:珂珂
发布时间:February 14, 2012
分类:默认分类
No Comments
郁闷了好多天,公司电脑各种系统以及各种手持设备都管用,偏偏mac系统下就不行
原来要勾选上“通过vpn连接发送所有流量”

作者:珂珂
发布时间:February 14, 2012
分类:默认分类
No Comments
博客的后台没有安装编辑器的插件,直接用了一个Markdown插件.偶然看到vim的列编辑模式,可能以后会用到.
打开文件
vim trunk/blog/index.php
光标定位到需要编辑的地方按
ctrl + v (gvim: ctrl + q)
j键或k键上下移动选择要编辑的列
接着
shift + i
然后键入的字符(比如输入四个#)
####
最后连按两下Esc键
作者:珂珂
发布时间:February 6, 2012
分类:默认分类
No Comments
来自互联网,CentOS 6 pptp 一键安装包,所有安装文件来源于官方网站,完美兼容32、64位
localip和remoteip改为对应自己的服务器和客户端的IP,然后复制内容另存为一个sh文件直接执行即可
-- Splite --
yum remove -y pptpd ppp
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp
arch=`uname -m`
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.$arch.rpm
yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers dkms kernel_ppp_mppe ppp
rpm -Uvh pptpd-1.3.4-2.el6.$arch.rpm
mknod /dev/ppp c 108 0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "localip 107.6.45.234" >> /etc/pptpd.conf
echo "remoteip 107.6.45.2-254" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
pass=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass=$1
fi
echo "vpn pptpd ${pass} *" >> /etc/ppp/chap-secrets
iptables -t nat -A POSTROUTING -s 107.6.45.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
iptables -A FORWARD -p tcp --syn -s 107.6.45.0/24 -j TCPMSS --set-mss 1356
service iptables save
chkconfig iptables on
chkconfig pptpd on
service iptables start
service pptpd start
echo "VPN service is installed, your VPN username is vpn, VPN password is ${pass}"
-- Splite --
常见错误解决
http://www.5ilinux.com/2011/12/debian-pptp-vpn-faq.html
1:619错误
有些同学说要手动建立ppp文件,我觉得其实应该是检查iptables的NAT功能是否正常
用iptables -t nat -L 看看nat规则是否正常
有同学建议 mknod /dev/ppp c 108 0
但其实出现这问题的大部分都是本身已经存在这个文件会提示 mknod: `/dev/ppp’: file exists,
如果你不敢确认,那就完全也可以先用rm删除这个设备文件,然后再建个
另外确认net.ipv4.ip_forward=1是否生效
2:800错误
一般是vpn服务器关闭了,或者停止了,如果你是用域名访问vpn,也有可能是dns的解析除了问题
3:还有一种情况:就是登录和验证都正常,但就是访问不了页面
这种情况我碰到很多次,但我至今没找到确切的问题所在,我初步也是怀疑iptables的转发没能正常工作
大家不妨多看看log日志分析一下
-- EOF --
作者:珂珂
发布时间:February 6, 2012
分类:默认分类
No Comments
第一次写shell 勿喷..
在 /etc/crontab 设置下每三天执行一次
0 0 */3 * * root /root/shell/backup-mysql.sh
数据库文件不是很大,备份好了以后svn直接更新下就拉下来了
-- Splite --
#!/bin/bash
database="db_typecho db_codeigniter"
backup_name="mysql-`date +%Y%m%d%H%M%S`"
backup_dir="/tmp/$backup_name"
svn_dir="/var/www/website/rossobe.com/tag/db-backup/"
if [ -d $backup_dir ]; then
rm -rf $backup_dir
fi
mkdir $backup_dir
/usr/bin/mysqlhotcopy -u root -p rossobe $database ${backup_dir}
cd /tmp/ && tar -czf ${backup_name}.tar.gz ${backup_name} && rm -rf ${backup_name}
mv ${backup_name}.tar.gz ${svn_dir}
rm -rf ${backup_dir}
svn update $svn_dir
svn add ${svn_dir}${backup_name}.tar.gz
svn commit $svn_dir -m "database auto backup"
-- EOF --
作者:珂珂
发布时间:February 6, 2012
分类:默认分类
No Comments
新装好的centos5.6和当前时间差了8小时 整理一些解决方案如下
因人而异
方法一
tzselect 根据提示选择
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
方法二
vi /etc/sysconfig/clock 修改/etc/sysconfig/clock文件
ZONE="Asia/Shanghai"
UTC=true
ARC=false
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
reboot 重启系统使时区生效
ntpdate cn.pool.ntp.org 更新系统时间
hwclock --systohc 更新硬件时间
crontab -e crontab
设置每天同步一次时间
echo "0 0 * * * root ntpdate cn.pool.ntp.org" >> /etc/crontab
运行 ntpdate cn.pool.ntp.org 时候会报错:
14 Jul 23:31:51 ntpdate[3148]: the NTP socket is in use
需要停止ntp服务:
service ntpd stop
一些其他的命令
yum -y install ntp ntpdate命令安装
yum -y install setuptool setup工具安装
yum -y install gcc gcc-c++ autoconf vixie-cron crontabs crontabs安装
hwclock --show 查看机器上的硬件时间
hwclock -w 更新ROM的时间
hwclock --hctosys 如果我们想要把硬件时间设置成系统时间我们可以运行以下命令
hwclock --systohc 反之,我们也可以把系统时间设置成硬件时间
chkconfig ntpd --list 查看0~6个runlevel 是否按照阁下意愿开启或关闭 ntpd服务
chkconfig ntpd --level 35 on 开启runlevel 3和5的ntpd服务
chkconfig ntpd on 开启runlevel 2345的ntpd服务
chkconfig ntpd off 关闭所有runlevel的ntpd服务
作者:珂珂
发布时间:February 3, 2012
分类:默认分类
No Comments

作者:珂珂
发布时间:February 3, 2012
分类:默认分类
No Comments
估计是服务商的问题,OpenVZ架构512M的VPS性能如此差劲,编译mysql时候总是莫名其妙的中断
话说yum安装真快,要求不高,能跑起来就行了
-- Split --
Before you install...
http://pkgs.repoforge.org/rpmforge-release/
yum remove php*
yum install yum-priorities
For 64
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/epel-release-6-5.noarch.rpm
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/ius-release-1.0-9.ius.el6.noarch.rpm
For 32
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/i386/epel-release-6-5.noarch.rpm
rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/i386/ius-release-1.0-10.ius.el6.noarch.rpm
开始安装
yum install mysql55 mysql55-devel mysql55-server
yum install php53u php53u-common php53u-pear php53u-devel php53u-mysql php53u-gd php53u-mbstring php53u-soap php53u-xml php53u-pecl-apc
Mysql安装完成后的初始化操作
安装测试数据
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
设置root密码
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h rossobe password 'new-password'
或者执行
/usr/local/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!
-- EOF --
- 1
- 2
- »