2012年9月27日星期四

Linux vps修改时间改成北京时间

1.先登陆你的ssh,命令:date 看下时间是不是北京时间,如果不是我们把他改成北京时间。

2.命令:

rm -rf /etc/localtime

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

3.再用date命令看下,你的vps的时间改变了吗?大部分Linux vps的母鸡是允许每个vps修改时间的!

如果此时你的vps时间已经改成北京时间就不用看下面了,如果此时你的vps时间还没有修改好。再试下命令:

ntpdate stdtime.sinica.edu.tw

使用ntpdate stdtime.sinica.edu.tw 时候如果提示这个命令,先安装 ntpdate就可以了。

 

centos 系统的vps用命令:

yum -y install ntpdate ntp

Ubuntu系统的:

sudo apt-get install -y ntpdate ntp

2012年9月19日星期三

关于apache2伪静态问题

刚把博客搬了一个新家,之前是用一键安装包配置的VPS,虽然配置完了能很正好的运行,但是有很多想地方想修改却不知道从何处下手。这次搬家,全是手动配置的APACHE2环境,其实手运配置还是蛮简单的,只要自己细心点,但是配置完成后发现怎么也无法实现伪静态,开始以为是伪静态规则出了问题,但经过很多次试验,感觉发现不是伪静态规则的问题,看了看PHPINFO信息,原来里面没有mod_rewrite模块,这下犯愁了,因为APACHE2安装是用默认安装的,难道默认安装apache2没有安装mod_rewrite模块?试着用google和百度查看一些如何重新加入mod_rewrite模块的方法,网上有大多数是垃圾文章,还好没试,不然试了又要重新配置VPS。看了一些资料,原来默认安装的apache2是有安装mod_rewrite模块,只是没有启动而已

a2enmod rewrite 启动

然后系统会提示你重新加载apache2 ,最后再用phpinfo查看,就已经有mod_rewrite模块了

2012年9月14日星期五

Optimize Apache and MySQL for a 256MB VPS

sudo nano /etc/mysql/my.cnf

 

Add the following line into the section [mysqld]:

skip-innodb

 

Next locate the line skip-external-locking and add skip-locking below that line.

 

Now find the section labeled “Fine Tuning”. Change/add the settings in that section to match those below:

 

key_buffer = 16K

max_allowed_packet = 1M

thread_stack = 64K

thread_cache_size = 4

sort_buffer = 64K

net_buffer_length = 2K

 

Save the file (ctrl+x) and restart MySQL: sudo /etc/init.d/mysql restart

If you run MySQLtuner again you will see that the “memory” warning is gone, ignore the aother warnings for the moment (you need to run the script after a few days again to get exact test results)

 

Optimize Apache in prefork mode

If you followed the Ubuntu tutorial we’ve mentioned in the first paragraph, your Apache setup should run in prefork mode. The default settings are much to high, open the file sudo nano /etc/apache2/apache2.conf andchange the following settings:

 

 

Timeout 45

KeepAlive On

MaxKeepAliveRequests 200

KeepAliveTimeout 3

 

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 30

MaxRequestsPerChild 2000

 

That’s all, restart Apache using sudo /etc/init.d/apache2 restart. If you know more tweaks, please share.

2012年9月11日星期二

购买VPS后简单测试

一、CPU信息及性能查看

cat /proc/cpuinfo

二、硬盘IO性能测试

root@h:~# dd if=/dev/zero of=test bs=64k count=4k oflag=dsync && rm test

4096+0 records in

4096+0 records out

268435456 bytes (268 MB) copied, 6.19022 s, 43.4 MB/s

root@h:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm test

16384+0 records in

16384+0 records out

1073741824 bytes (1.1 GB) copied, 6.32504 s, 170 MB/s

测试结果,如果超过10M,对正常建站就无影响。超过50M,就是非常给力状态。

nginx wolf 支持伪静态文件.htaccess

if (!-e $request_filename) {

rewrite ^/admin(.+)$ /admin/index.php?$1 last;

rewrite ^/(.+)$ /index.php?WOLFPAGE=$1 last;

}

2012年9月10日星期一

ssh只允许指定的用户登陆

方法1:在/etc/pam.d/sshd文件第一行加入

auth required pam_listfile.so item=user sense=allow file=/etc/sshusers

onerr=fail

然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,不用重新启动sshd服务。

 

方法2:pam规则也可以写成deny的

auth required pam_listfile.so item=user sense=deny file=/etc/sshusers

onerr=succeed

 

方法3:在sshd_config中设置AllowUsers,格式如

AllowUsers a,b,c

重启sshd服务,则只有a/b/c3个用户可以登陆

linux 限制root用户SSH登录

1、修改SSHD服务的配置文件/etc/ssh/sshd_config

将#PermitRootLogin yes 改为PermitRootLogin no

2、重启sshd服务使配置生效

/etc/rc.d/init.d/sshd restart

 

为了增强linux的安全性,应该限制只有wheel组的用户可以使用su命令切换到root和其他用户:

 

1、修改su命令的认证配置文件/etc/pam.d/su

 

去掉以下两行前的#号注释

#auth sufficient pam_wheel.so trust use_uid (去年注释后ROOT组成员使用su切换到root不需要密码)

#auth required pam_wheel.so use_uid  (去年注释后只允许ROOT组成员使用su切换到root)

2、创建一个普通用户,然后将这个用户加入到wheel组即可!以后就只有这个普通用户和root可以使用su命令了

usermod -G 组 用户

 

su命令使用简介:

 

su 直接切换到root用户,但保持原用户的环境变量;

su – 切换到root用户,并使用root用户的环境变量;

 

su -l test 切换到test用户,并使用test的环境变量;

nginx 禁止ip访问及未绑定的域名跳转

ngixn 禁止ip访问和未绑定ip的访问

 

server {

listen 80 default;

server_name _;

return 500;

}

 

 

 

nginx 将未绑定的域名跳转

 

server {

listen 80 default;

rewrite ^(.*) http://www.kogoogle.com permanent;

}

2012年9月9日星期日

Freebsd pkg_delete删除错误安装的php

本来想升级下php52至php53,结果可能由于操作不当导致53无法正常运行,加上自己不小心删除了/usr/local/lib/php/扩展包里的一些文件,导致再重新安装的时候php也不行,进退两难,尝试过几次通过ports卸载php,然后重装,都不可以,无论是52还是53.

网上发现一个命令,尝试了下很管用:

pkg_delete -f php\*
rm -fr /usr/local/include/php/

然后再重装,这样问题就解决了,哎,着急了我半天,还是命令不熟悉。

优化 MySQL 效能

最理想是在安装时已做好优化,但如果已经安装好 MySQL 后才需要做优化的话,可以通过设定 /etc/my.cnf 来做。如果不熟悉 my.cnf 内的设定也没关係,可以直接使用 MySQL 的范例档,在 /usr/share/mysql/ 下会有 my-huge.cnf, my-large.cnf, my-medium.cnf 及 my-small.cnf 几个档案,根据伺服器的硬件而选择适合的档案:

 

my-huge.cnf: 适合 1GB – 2GB RAM的主机使用。

my-large.cnf: 适合 512MB RAM的主机使用。

my-medium.cnf: 只有 32MB – 64MB RAM 的主机使用,或者有 128MB RAM 但需要运行其他伺服器,例如 web server。

my-small.cnf: 记忆体少於 64MB 时适用这个,MySQL 会佔用较少资源。

我选用了 my-large.cnf,只要执行以下指令便完成了,但如果你原先已经有 my.cnf,请先备份起来及自行调整:

 

shell> cp /usr/share/mysql/my-large.cnf /etc/my.cnf

shell> /etc/init.d/mysqld restart

2012年9月6日星期四

nginx报错nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx报错nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

仔细参考nginx中文文档发现,发送信号USR2时,自动启动新的可执行文件,再手动启动的话就会报错

本质上也算是一种地址冲突吧

 

如果平时安装时遇见该错误,就是80端口被占用,

找出占用80端口的程序杀掉即可

代码如下:

shell>netstat -tunlp

shell>pkill 占用80端口的程序

即可消除该错误

2012年9月2日星期日

samba搭建

安装samba

#yum install samba

 

配置samba

#vi /etc/samba/smb.conf

添加修改如下内容

workgroup = MYGROUP //更改为你所在的工作组

server string = Samba Server %U %G //更改显示信息,会在windows访问时最上方显示相关信息

设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用samba设定的变量。这里说一下samba定义的变量:

%S = 当前服务名(如果有的话)

%P = 当前服务的根目录(如果有的话)

%u = 当前服务的用户名(如果有的话)

%g = 当前用户说在的主工作组

%U = 当前对话的用户名

%G = 当前对话的用户的主工作组

%H = 当前服务的用户的Home目录

%v = Samba服务的版本号。

%h = 运行Samba服务机器的主机名

%m = 客户机的NETBIOS名称

%L = 服务器的NETBIOS名称

%M = 客户机的主机名

%N = NIS服务器名

%p = NIS服务的Home目录

%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)

%d = 当前服务进程的ID

%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)

%I = 客户机的IP

%T = 当前日期和时间

灰色信息不添加

#interfaces = 192.168.0.0/24 //可使用samba的网段,注释掉为全部

[share] //显示的共享名

path = /var/share //共享路径

valid users = @test1,@test2 //共享文件属主,可以是用户也可以是组,组前加@

browseable = no //非本共享用户是否可以看到,no为看不到,yes或注释掉就可看到

writable = no //缺省是否可写

read list = @test1 //只读用户组也可以加用户

write list = @test2 //可写用户组也可以加用户

create mode = 0755 //创建的文件权限

directory mode = 0755 //创建的文件夹权限

保存以上信息

#mkdir /var/share //创建share目录

#chmod 777 /var/share //将share目录权限设为777

#groupadd test1 //添加test1组

#groupadd test2

#useradd -M -g test1 -s /sbin/nologin test1 //新建系统用户,无home,无shell,添加到test1组

#useradd -M -g test2 -s /sbin/nologin test2

#smbpasswd -a test1 //添加samba用户必添加密码,修改密码不用加-a

#smbpasswd -a test2

好了,重启samba就可以用windows登录了

—————————————————————–

以下是一些相关说明

comment指的是对改共享的备注。

path 指定共享的路径,其中可以配合samba变量使用。比如你可以指定path=/data/%m,这样如果一台机器的NETBIOS名字是

grind,它访问MyShare这个共享的时候就是进入/data/grind目录,而对于NETBIOS名是glass的机器,则进入/data/

glass目录。

allow hosts和deny hosts和前面的全局设置的方法一样这里不再提及。

writeable指定了这个目录缺省是否可写,也可以用readonly = no来设置可写。

user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。

valid users指定能够使用该共享资源的用户和组。

invalid users指定不能够使用该共享资源的用户和组。

read list 指定只能读取该共享资源的用户和组。

write list指定能读取和写该共享资源的用户和组。

admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组。

public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和

public = yes是一样的。

hide dot files指明是不是像unix那样隐藏以”.”号开头的文件。

create mode指明新建立的文件的属性,一般是0755。

directory mode指明新建立的目录的属性,一般是0755。

sync always指明对该共享资源进行写操作后是否进行同步操作。

short preserve case指明不管文件名大小写。

preserve case指明保持大小写。

case sensitive指明是否对大小写敏感,一般选no,不然可能引起错误。

mangle case指明混合大小写。

default case指明缺省的文件名是全部大写还是小写。

force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user=

grind强制建立文件的属主是grind,同时限制create mask = 0755,这样guest就不能删除了。

wide links指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links =

no将使该连接不可用。

max connections = n设定同时连接数是n。

delete readonly指明能否删除共享资源里面已经被定义为只读的文件。

tcp/ip cp报告了错误2:系统找不到指定文件

ADSL,VPN拨号出现 tcp/ip cp报告了错误2:系统找不到指定文件

1、打开注册表编辑器,删除以下两个键:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2

 

2、用记事本打开windows\inf\nettcpip.inf文件,找到:

[MS_TCPIP.PrimaryInstall]

0xa0 <——把此处的0Xa0改为0x80 保存退出

3、在本地连接里找到TCP/IP协议,卸载TCP/IP协议,如果卸载是灰色,直接重新安装新协议tcpip协议,安装完成后删除TCP/IP协议,再次安装,此问题解决

openwrt 6300V2 USB无法显示的问题

lsusb and fdisk -l There's a method to turn USB power on which is probably not persistent. I hope this will help you. echo 0 > /sys/c...