2013年5月30日星期四

网络层点到点, 传输层端到端

在 TCP/IP 详解 卷一:协议 的第一章的总结部分有这样一句话: "网络层和运输层之间的区别是最为关键的: 网络层(IP)提供点到点的服务,而运输层(TCP和UDP)提供端到端的服务"  这句话本身有些抽象, 从网上找到了对于这句话的一些补充和解释.

2013年5月29日星期三

ubuntu update-rc.d 和 chkconfig 命令

在 redhat 和 centos 上可以用 chkconfig 来管理系统服务的启动, 但在 ubunut 上 12.04 还可以使用 chkconfig ,但在 12.10 起默认就没有安装 chkconfig 了, 当然可以通过 apt install chkconfig 来进行安装并使用. 今天主要是想说一下 debian/ubuntu 上可以替代 chkconfig 的命令 update-rc.d 命令.

2013年5月16日星期四

ubuntu vps 安装和设置

ubuntu vps  安装和设置。 对于 ubuntu vps 安装和设置的一系列记录。

1. 初始化安装后的设置
基于 ubuntu-12.04 32bit minimal, 使用 root 登陆到 vps 后, 新建用户:
adduser demo
根据提示创建用户和密码。下面将新建的这个用户添加到 sudo 用户组:
usermod -aG sudo demo
更新系统并安装 vim
apt-get update
apt-get upgrade
apt-get install vim
接下修改 sshd 的端口和登陆账号限制, 首先修改 /etc/ssh/sshd_config 文件
vim /etc/ssh/sshd_config Port 65536
PermitRootLogin no
修改 ssh 端口为 65536, 不允许 root 登陆,最后再添加如下一行到配置文件的最后
AllowUsers demo
设置仅允许 demo 账号登陆
2. 安装 lemp 环境(linux nginx mysql php) 首先安装 mysql-server
apt-get install mysql-server
因为默认安装的 mysql-server 比较占用内存,对于小内存的 vps 来说,需要进行一些优化,具体的可以参见 小内存 vps mysql 优化 这篇文章,在这里我再重复一下

cp /etc/mysql/my.cnf /etc/mysql/my.cnf.`date +%s`
find /usr/share/doc/mysql* -name my-small.cnf -exec cp {} /etc/mysql/my.cnf \;
sed -i 's/\[mysqld\]/&\nuser = mysql\n/' /etc/mysql/my.cnf
然后再修改 /etc/mysql/my.cnf 文件, 在 [mysqld] 下添加以下两行
 innodb=OFF 
default-storage-engine=MyISAM
然后重启mysql
/etc/init.d/mysql restart 
现在再下,经过以上几步的优化,vps 内存的占用大概只有 30m 左右,接下来安装 nginx 和php
apt-get install nginx
service nginx start
apt-get install php5-fpm
然后修改 /etc/php5/fpm/php.ini 文件
cgi.fix_pathinfo=0
然后重启 php5-fpm
service php5-fpm restart
然后开始配置 nginx 使其支持 php5-fpm, 首先备份一下default 配置文件
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
将 default 配置文件中的下面这段的注释给取消掉
       location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # 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;
        } 
并将 server {} 段里面的 index 中添加 index.php

然后修改 /etc/php5/fpm/pool.d/www.conf 文件,将其中的 listen = 127.0.0.1:9000 修改为 listen = /var/run/php5-fpm.sock 然后重启 php5-fpm service php5-fpm restart
接下安装 phpmyadmin apt-get install phpmyadmin 并根据提示填写 mysql 的 root 密码, 注意,因为要使用nginx ,所以在 webserver 选择这里不要选择. 安装完成后 ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www , 这样就可以通过 ip/phpmyadmin 的方式来访问 phpmyadmin 了, 在这里可能会有个报错说 The mysqli extension is missing , 解决办法是修改 /etc/php5/fpm/php.ini 文件,添加 extension=mysqli.so 然后重启 php5-fpm 和nginx 就可以了
最后打算再说一下 ftp ,设置为 限定指定的用户可以登录的方法
userlist_enable=YES //用户清单功能开启
userlist_deny=NO //把用户清单设为接受用户清单
userlist_file=/etc/vsftpd.user_list //用户清单文件为/etc/vsftpd.user_list
因为第二个语句把文件/etc/vsftpd.user_list设为接受用户清单,那么,文件里
面的用户名都能登录,不在文件里的用户不能登录。
从这里可以看出userlist_deny语句起了开关的作用,可把用户清单文件设为拒绝或是接受

2013年5月15日星期三

小内存 vps mysql 优化 (ubuntu)

小内存 vps mysql 优化 (ubuntu)

手里有个 512m 的vps ,安装的是 ubuntu 12.04; 使用 tasksel 安装 lamp 应用后,默认的内存占用大概在 350m 左右。 我以为是因为 apache 的原因,就打算使用 lemp ( linux + nginx + php-fpm + mysql ),手动安装 mysql-server: apt-get install mysql-server  后发现内存占用竟然也达到了 300m, 看来问题主要在 mysql-server 上。所以开始查找优化的方案。

首先参照 http://wiki.ubuntu.org.cn/Vps 上的教程对 mysql 进行优化

cp /etc/mysql/my.cnf /etc/mysql/my.cnf.`date +%s`
find /usr/share/doc/mysql* -name my-small.cnf -exec cp {} /etc/mysql/my.cnf \;
sed -i 's/\[mysqld\]/&\nuser            = mysql\n/' /etc/mysql/my.cnf

然后重启 mysql-server

/etc/init.d/mysql restart
 
然后再看内存占用,发现比之前少了一些,但是并不是很明显。
 
因为我只是安装 wordpress, 永不倒 innodb ,所以需要再进行如下优化
 
编辑 /etc/mysql/my.cnf 
 
在[mysqld] 下添加两行
 
innodb=OFF
default-storage-engine=MyISAM

然后重启 mysql

/etc/init.d/mysql restart 
 
再看内存占用情况,wonderful !只有 30多m 了!