1. 下载最新版本的nginx包,我下载的是1.0.1版本。
http://www.nginx.org/en/download.html
2. 解压
tar zxvf nginx-1.0.1.tar.gz
3. 进入解压后的nginx目录中
# cd nginx-1.0.1 // 进入程序目录 # apt-get install build-essential // 安装编译环境 # apt-get install libpcre3-dev // 安装PCRE库 # apt-get install libssl-dev // 安装Openssl库
4. 准备工作完成以后,就可以开始安装了
a) 编译:
# ./configure --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-http_flv_module
如果编译最后出现类似下面的信息,表示编译已经成功:
Configuration summary + using system PCRE library + using system OpenSSL library + md5: using OpenSSL library + sha1 library is not used + using system zlib library nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx configuration prefix: "/etc/nginx" nginx configuration file: "/etc/nginx/nginx.conf" nginx pid file: "/var/run/nginx.pid" nginx error log file: "/var/log/nginx/error.log" nginx http access log file: "/var/log/nginx/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"
b) 安装
# make # make install
5. 如果需要更新nginx版本,先按上述1~5的步骤安装好新的nginx,然后运行如下命令进行平滑升级
# kill -USR2 `/var/run/nginx.pid` # kill -QUIT `/var/run/nginx.pid.oldbin`
6. 安全起见,需要隐藏nginx的版本号,方法如下:
1)修改nginx.conf配置:
# vi /etc/nginx/nginx.conf
在http {—}里加上server_tokens off;
2)重新加载配置:
# service nginx reload
系统环境:Debian 6.0
1. 首先需要安装jdk。有两个方法:一是从源里安装,另一个是从二进制版本安装。
从源里安装的方法比较简单:
apt-get install sun-java6-jdk
如果安装源中没有jdk,则可以从以下网站下载:
http://www.oracle.com/technetwork/indexes/downloads/index.html
下载最新版的jdk-6uxx-linux-i586.bin文件,通过如下命令增加可执行权限,然后执行安装:
chmod +x jdk-6u24-linux-i586.bin ./jdk-6u24-linux-i586.bin
2. 安装完成后,执行以下命令:
mv jdk-6u24-linux-i586 /usr/local/jdk vi /etc/profile
在profile文件末尾添加如下代码:
JAVA_HOME="/usr/local/jdk" # JAVA_HOME="/usr/lib/jvm/java-6-sun" # 如果是源安装 CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib" PATH=".:$PATH:$JAVA_HOME/bin" CATALINA_HOME="/usr/local/tomcat" export JAVA_HOME CATALINA_HOME
可以看到在上面的profile文件中我们事先配置好了CATALINA_HOME。CATALINA_HOME就是tomcat的安装目录,下面我们开始安装tomcat。
3. 去http://tomcat.apache.org/网站下载最新版的tomcat,使用如下命令解压,安装:
tar zxvf apache-tomcat-7.0.12.tar.gz mv apache-tomcat-7.0.12 /usr/local/tomcat vi /usr/local/tomcat/conf/server.xml
查找appBase="webapps",修改appBase的值为你的网页根目录。
4. 如此,tomcat就安装完毕了。但是需要为tomcat分配专门的用户,因为如果以root身份运行tomcat,tomcat就有了系统权限。所以添加一个独立运行此服务的用户tomcat,登陆设置为nologin,防止他拥用root权限给系统带来安全隐患:
useradd -d /usr/local/tomcat -s /usr/sbin/nologin tomcat chown -R tomcat:tomcat /usr/local/tomcat
5. 安装jsvc使tomcat随系统开机启动
参考http://tomcat.apache.org/tomcat-7.0-doc/setup.html的介绍,tomcat自带了jsvc工具,在tomcat的bin目录下:
cd $CATALINA_HOME/bin tar xvfz commons-deamon-native.tar.gz cd commons-daemon-1.0.x-native-src/unix ./configure make cp jsvc ../.. cd ../..
需要先安装编译工具才能执行编译命令,安装命令为:
apt-get install gcc make
如果执行没有出错,jsvc就安装成功了!
6. 设置启动脚本
在$CATALINA_HOME/bin/commons-daemon-1.0.x-native-src/unix/samples目录下有一个Tomcat7.sh文件,将其复制到/etc/init.d/m目录下并命名为tomcat:
cp /usr/local/tomcat/bin/commons-daemon-1.0.5-native-src/unix/samples/Tomcat7.sh /etc/init.d/tomcat
根据实际情况修改该文件,使其适合你的环境。
7. 修改运行级别
update-rc.d tomcat defaults
8. OK!
在Ubuntu下远程连接Linux服务器时失败,出现如下错误:
thuram@thuram-H55M-S2:~$ ssh root@192.168.18.104
解决方法很简单,只需删除~/.ssh/known_hosts文件即可。
1.修改/etc/mysql/my.conf文件,将bind-address绑定到MySQL服务器的实际IP地址:
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/english skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 192.168.18.104
2.使用root登录mysql执行如下命令:
grant all on test.* to user@'%' identified by 'password';
grant all on test.* to user@localhost identified by 'password';
其中test为你要远程访问的数据库,user是你使用的用户名,password为该用户的密码。
1、移动及跳转:
:n 跳转到n行,n表示行号
nG 跳转到n行,n表示行号
CTRL-] 跳转到当前光标所在单词对应的主题
CTRL-O 回到前一个位置
h 左
j 下
k 上
l 右
W 向前移动一个word
b 向后移动一个word
$ 命令将光标移动到当前行行尾
^ 命令将光标移动到当前行的第一个非空白字符上
0 命令则总是把光标移动到当前行的第一个字符上
fx 在当前行上查找下一个字符x
% 跳转到与之匹配的括号处
gf 命令方便地跳转到光标下的文件名所代表的文件中
`. 跳转到最近修改过的位置
`` 跳转到最近光标定位的位置
m{mark} 将当前光标下的位置名之为标记{mark},从a到z一共可以使用26个自定义的标记
`{mark} 跳转到一个你定义的{mark}标记
50%mF 到文件的半中间("50%")处设置一个名为F的全局标记
G 光标定位到最后一行上
gg 光标定位到第一行上
50% 光标定位在文件的中间(扩展到任意的数字)
H 光标定位在显示屏的第一行
M 光标定位在显示屏的中间
L 光标定位在显示屏的最后一行
CTRL-U 命令会使文本向下滚动半屏
CTRL-D 命令将窗口向下移动半屏
CTRL-F 命令将向前滚动一整屏(实际上是整屏去两行)
CTRL-B 命令将向后滚动一整屏(实际上是整屏去两行)
zz 命令会把当前行置为屏幕正中央(z字取其象形意义模拟一张纸的折叠及变形位置重置)
zt 命令会把当前行置于屏幕顶端(t意为top)
zb 命令会把当前行置于屏幕底端(b意为bottom)
:jumps 列出关于你曾经跳转过的位置的列表,你最后一个跳转的位置被特别以一个">"号标记
:marks 列出自定义的标记,包含VIM内部自定义的标识
2、搜索
/ 命令可用于搜索一个字符串,在键入的过程中还可以用箭头键和删除键进行移动和修改
? 命令与“/”的工作相同, 只是搜索方向相反
n 继续搜索下一个字符串
N 命令与“n”的工作相同, 只是搜索方向相反
* 向下完整匹配光标下的单词
# 向上完整匹配光标下的单词
g 向下部分匹配光标下的单词
Ctrl-P 向前搜索可匹配的单词并完成
Ctrl-N 向后搜索可匹配的单词并完成
:set ignorecase 设置忽略大小写
:set hlsearch 高亮显示搜索结果
:set incsearch 键入目标字符串的过程中Vim就同时开始了搜索工作
:set nowrapscan 会使搜索过程在文件结束时就停止
3、编辑(新增、删除、移动、复制)
x 代表dl(删除当前光标下的字符)
X 代表dh(删除当前光标左边的字符)
D 代表d$(删除到行尾的内容)
C 代表c$(修改到行尾的内容)
s 代表cl(修改一个字符)
S 代表cc(修改一整行)
diw 删除当前光标所在的word(不包括空白字符),意为Delete Inner Word
daw 删除当前光标所在的word(包括空白字符),意为Delete A Word
dG 删除当前行至文件尾的内容
dgg 删除当前行至文件头的内容
cis 修改一整个句子,意为change Inner Sentence
R 让Vim进入replace模式,在此模式下,每个键入的字符都会替换掉当前光标下的字符
p 取回被删除的内容,可以使用命令记数(在Vim中这叫put)
P 与"p"一样取回被删除的内容, 不过它把被取回的内容置于光标之前
yw 复制一个word,同样可以使用命令记数,c表示change而不是copy
yy 复制一整行
y$ 复制当前光标至行尾
~ 改变当前光标下字符的大小写
3、在vi中替换字符串:
:s/vivian/sky/ 替换当前行第一个vivian为sky
:s/vivian/sky/g 替换当前行所有vivian为sky,g表示global
:n,$s/vivian/sky/ 替换第n行开始到最后一行中每一行的第一个vivian为sky,n为数字
:n,$s/vivian/sky/g 替换第n行开始到最后一行中每一行所有vivian为sky
:.,$s/vivian/sky/g 替换当前行开始到最后一行中每一行所有vivian为sky
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky,%表示所有行
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g)替换每一行中所有 vivian 为 sky
:s#vivian/#sky/# 替换当前行第一个vivian/为sky/,可以使用#作为分隔符,此时中间出现的/不会作为分隔符
:3,$s/^/some string/ 在文件的第一行至最后一行的行首前插入some string
:%s/$/some string/g 在整个文件每一行的行尾添加some string
:%s/\s\+$// 去掉所有的行尾空格,“\s”表示空白字符(空格和制表符),“\+”对前面的字符匹配一次或多次(越多越好),“$”匹配行尾(使用“\$”表示单纯的“$”字符)
:%s/\(\s*\n\)\+/\r/ 去掉所有的空白行,“\(”和“\)”对表达式进行分组,使其被视作一个不可分割的整体。
:%s!\s*//.*!! 去掉所有的“//”注释
:%s!\s*/\*\_.\{-}\*/\s*!!g 去掉所有的“/* */”注释
3、文件处理
:w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1。
:20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1。
:X 文件加密,会提示输入密码。
vim -x exam.txt 新编辑的文件加密,会提示输入密码。
vim -R file 只读方式打开文件。
vimdiff main.c~ main.c 显示两个文件的不同之处
:args 显示文件列表
:n 切换到文件2 (n=next)。
:N 切换回文件1。
:scriptnames 显示VIM加载的vimrc
VIM命令的固定模式: 操作符命令+位移命令
:version 显示VIM版本信息,包含特性、编译方式及配置文件目录
:map 列出当前已定义的映射
:options 打开一个新窗口, 在该窗口的最开头的注释下面是一个选项列表
:help E37
5、常用快捷方式:
“.”:重复上次的修改命令
“Ctrl-X Ctrl-L”:搜索可匹配的行并完成
“Ctrl-X Ctrl-F”:搜索可匹配的文件名并完成
“Ctrl-G”:显示文件名,当前光标所在行的行号,总的行数,以及当前行所在文件中的百分比和当前光标所在的列的信息
“ZQ”:无条件退出
“ZZ”:(存盘退出)
“ga”:显示光标下的字符在当前使用的encoding下的内码
“:%!xxd”:以十六进制显示
“:%!xxd -r”:从十六进制返回显示文本方式
“guw”:光标下的单词变为小写
“gUw”:光标下的单词变为大写
“xp”:左右交换光标处两字符的位置
“ddp”:上下交换光标处两行的位置,p命令把它取回来(在Vim中这叫put)
“J”:两行合并为一行, 也就是说两行之间的换行符被删除了
“u”:撤消上一次命令
“Ctrl+R”:重做上一次命令
“o”:在当前行的下面另起一行, 并使当前模式转为Insert模式
6、执行外部命令:
“:!命令”:可以在 Vim 中执行一个外部命令
“:r!”:命令可以在外部命令执行的结果插入到当前编辑的缓冲区中
“:%!nl”:要对包含空行的所有行进行编号
“:!echo $VIMRUNTIME” 显示VIM的目录(/usr/share/vim/vim63)
“vimtutor” 显示VIM的30分钟的教程
7、set选项:
:set list 查看制表符,现在每个制表符都会以^I显示. 同时每行行尾会有一个$字符。
:set key= 去掉文件加密。
:syntax enable 打开彩色
:set number? 显示number的值
:set number& 恢复选项的默认值
:set autoindent 让Vim在开始一个新行时对该行施以上一行的缩进方式
:set showcmd 在Vim窗口的右下角显示一个完整的命令已经完成的部分
:set autowrite 设置自动存盘
:set backup 设置备份,生成的备份文件名将是原文件名后面附加一个~
:set backupext=.bak 设置备份文件名后辍
:set fileformats=unix,dos 自动识别UNIX格式和MS-DOS格式
:set display=uhex 二进制文件中很多字符都是不可打印字符,以十六进制格式显示这些字符
p.s. 1. 如何让vi显示行号?
a:在/etc/vim/vimrc文件末尾加上set nu
$ sudo apt-get remove totem-gstreamer
$ sudo apt-get install totem-xine libxine1-ffmpeg libxine1-gnome libxine1-plugins libxine1 libstdc++5
$ sudo apt-get install w32codecs
几条有用的Ubuntu设置,每次重装系统都得上Ubuntu中文论坛找一番,现在把它们记录下来,以后就不用现找了,呵呵!
电脑:HP Compaq V3706TX
Intel Core2双核CPU,2G 内存,独显 NVidia 8400M,120G硬盘。
自带的Windows Vista,除了系统经常会假死和崩溃以外,界面还是挺华丽的,而且好歹也是一个正版系统,另外也是自己懒得换XP,还得自己下一堆驱动,所以至今还用着。
想用Partition Magic划个区出来装linux的,结果发现原来很好用的PM在Vista下居然不能运行,只得用Vista自带的磁盘管理工具划了个10来个G的空间(再也划不出多的来了),装了个刚出的Ubuntu Hardy ****的,后来受论坛蛊惑,说是Mint更好,于是又换成了Mint,感觉就是影音播放的体验要好很多,不用自己安装解码器了,呵呵!
不过发现Mint的一个问题,有时候当前桌面鼠标好像会失去响应。我的处理方法是切换桌面,然后再切回来。发现Mint的一个好处是居然识别触摸板的屏幕滚动功能,这是在多个Linux版本中都没有的功能(包括Ubuntu)。
网上溜达的时候发现openSuse 11的正式版马上就要放出来了,趁周末去颐高买了刻录盘,周一上班一看到到suse的BT种子,就连忙下了下来,晚上下班就刻成了盘,装在了前两天不小心删除的Vista系统恢复分区上。这下我的电脑就有3个系统了,哈哈!
LinuxMint + openSuse + Vista!
应该可以安定一阵了!
明天Firefox的正式版就提供下载了,至少要在windows上装一个先体验一吧!