vps迁移记录和linux命令

因为之前的乐谷云集找不到老巢了,官网都挂了,网上说是跑路了,虽然之前有人联系过我说是有他们公司接管,但是等出现问题联系的时候,却是找不到人。所以决定更换vps。简单记录下用到的这次vps迁移用到的命令。

新的vps是用的centos 32。

登陆后更换密码

连上ssh之后,第一件事情就是更换root密码,用到的命令是passwd

连续两次输入新的密码就可以。

添加新用户www

passwd www 继续数据www的密码。就可以添加

安装软件包命令Yum

ubuntu的包管理软件是app-get,centos的包管理软件是yum,因为我的vps是centos,所以使用yum

# 安装
yum install xxx
# 删除
yum remove httpd

因为我使用的是lnmp,所以对于默认安装的apache可以删除,使用yum remove httpd

使用screen来管理对话

经常就是遇见网络连接不好,ssh中断,那么执行的程序就不知道会不会成功,所以有了screen。如果使用screen --help没有命令,那么需要安装下:

yum install screen

screen常用命令

# 创建screen对话
screen -S lnmp
# 查看现在运行的screen
screen -ls
# 读取某个screen
screen -r lnmp
# 退出screen,在当前screen中执行exit
exit

VPS 上配置 iptables 防火墙

今天vps告急,ssh都登录不上去,上去很艰难的查了日志,发现几个ip访问异常,应该是某插件的爬虫,之前把图简单iptables禁用了,只能再次开启,主要命令如下:

# 查看状态
$ service iptables status

# 查看规则
$ iptables -L -n

# 清除默认规则
$ iptables -F
$ iptables -X
$ iptables -Z

#####建立新的规则######
# 允许本地回环 127.0.0.1
$ iptables -A INPUT -i lo -p all -j ACCEPT

# 允许已经建立的所有连接
$ iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许所有向外发起的连接
$ iptables -A OUTPUT -j ACCEPT

# 拒绝 ping
$ iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT

# 允许 SSH 服务端口(一定要打开,不然就不能ssh了)
$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许 Web 服务端口
$ iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 拒绝其他所有未被允许的连接
$ iptables -A INPUT -j REJECT
$ iptables -A FORWARD -j REJECT

# 禁用ip
$ iptables -I INPUT -s 124.115.0.199 -j DROP
# 封IP段的命令是
$ iptables -I INPUT -s 124.115.0.0/16 -j DROP
# 封整个段的命令是
$ iptables -I INPUT -s 194.42.0.0/8 -j DROP
# 封几个段的命令是
$ iptables -I INPUT -s 61.37.80.0/24 -j DROP
$ iptables -I INPUT -s 61.37.81.0/24 -j DROP

dport表示目的,sport表示来源,output表示本机出,input表示访问本机

nginx1.2.4: [warn] "log_format" directive used only on "http" level 解决方法

将nginx升级到1.2.4稳定版之后,会发现之前的vhost/*.conf中的日志配置都报了如下的warn:

nginx: [warn] the “log_format” directive may be used only on “http” level

上网搜索解决方案如下:

将/vhost/xxx.conf里server段里的下面代码移出该server段即可。

但是这样的又会产生一个问题,就是各子域名的日志文件都会记录所有请求的日志,等了好久都没找到解决方案,后来请教了飞飞之后终于找到解决的方法了。

原来log_format需要在nginx.conf的http层定义,然后在分域名下面就不用定义log_format,直接引用即可,即:
在nginx.conf中http层添加:

log_format Main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for $request_time’;

然后在vhost/*.conf中server中直接写:

access_log ./logs/blog.log Main;

但是注意include vhost/*.conf要放在log_format之后哦,不然会找不到Main

linux安装PHP加速器eAccelerator

感慨下:做前端开发不少日子了,在前公司也使用过一段时间linux系统,对apache配置比较熟悉,可是对nginx配置还是不熟悉,毕竟自己是做前端开发的,大后端的事情还是比较排斥,以后多练习。前些日子vps到期了,换了空间,没配置好eAccelerator,本来想要朋友全权处理,可是他最近比较忙,只好自己处理了,现在将安装eAccelerator过程记录下,以后留用。

vps是centOS系统,php为nginx+fastcgi,nginx安装目录/usr/local/nginx,php安装目录/usr/local/php,开始在linux安装PHP加速器eAccelerator吧!

预编译安装eAccelerator

安装前准备

安装之前使用需要安装make和phpize,如果安装过,跳过此步骤。运行下面的命令

yum install make php5-dev
#ubuntu下用apt-get

安装eAccelerator

然后开始下载eAccelerator,配置安装编译:

wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar xjf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/usr/bin/phpize
./configure -enable-eaccelerator=shared -with-php-config=/usr/bin/php-config
make
make install

这时会将eaccelerator安装到php目录中,屏幕会显示eaccelerator.so所在路径,例如:

检查nginx配置,重载配置以及重启的方法

一直使用apache,新的vps使用的是nginx,于是开始折腾nginx了,今天查到了检查nginx配置是否正确和重启的方法,记录下,高手飘过。我的nginx安装在/usr/local/nginx,系统为ubuntu

几个常用的nginx命令

Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括有如下几个:

可以这样使用

/usr/local/nginx/sbin/nginx  -参数
  • -c <path_to_config>:使用指定的配置文件而不是 conf 目录下的 nginx.conf 。
  • -t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。
  • -s reload 重载
  • -s stop 停止

nginx启动/重启/停止

这个很简单,就是运行命令: