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# 查看现在运行的screenscreen -ls# 读取某个screenscreen -r lnmp# 退出screen,在当前screen中执行exitexit

安装lnmp

CentOS系统下执行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.shDebian系统下执行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./debian.shUbuntu系统下执行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./ubuntu.sh

中间会要你选择php版本,mysql版本,mysql root密码

lnmp状态管理命令LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}Memcached状态管理:/etc/init.d/memcached {start|stop|restart}PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}ProFTPd状态管理:/etc/init.d/proftpd {start|stop|restart|reload}

如重启LNMP,输入命令:/root/lnmp restart 即可,单独重启mysql:/etc/init.d/mysql restart

大约要经过一个小时(看自己的vps的网速了)

LNMP相关软件安装目录

Nginx 目录: /usr/local/nginx/MySQL 目录 : /usr/local/mysql/MySQL数据库所在目录:/usr/local/mysql/var/PHP目录 : /usr/local/php/PHPMyAdmin目录 : 0.9版为/home/wwwroot/phpmyadmin/ 1.0版为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。默认网站目录 : 0.9版为 /home/wwwroot/ 1.0版为 /home/wwwroot/default/Nginx日志目录:/home/wwwlogs//root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/PureFtpd 目录:/usr/local/pureftpd/PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/Proftpd 目录:/usr/local/proftpd/

LNMP相关配置文件位置

Nginx主配置文件:/usr/local/nginx/conf/nginx.conf/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.confMySQL配置文件:/etc/my.cnfPHP配置文件:/usr/local/php/etc/php.iniphp-fpm配置文件:/usr/local/php/etc/php-fpm.confPureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.confPureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.confProftpd配置文件:/usr/local/proftpd/etc/proftpd.confProftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf

LNMPA相关目录文件位置

Apache目录:/usr/local/apache/Apache配置文件:/usr/local/apache/conf/httpd.confApache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/

安装nodejs

作为前端,当然要安装nodejs啦,可是centos不能像ubuntu那么方便使用apt-get,而需要自己编译,后来在nodejs官网看到了centos也可以使用包管理:https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

依次在命令行中执行:

yum repolistcurl -O http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmsudo rpm -ivh epel-release-6-8.noarch.rpmsudo yum install npm --enablerepo=epel

经过上面折腾,一般就可以了,使用node -vnpm -v就可以了。

这时候可以试下安装nodeppt是否成功:npm install -g nodeppt

备份之前的vps数据

打包之前的web程序,使用zip。

# 打包zip -r www.zip www# 解压unzip www.zip

备份数据库

mysqldump -u root -p --default-character-set=utf8 --all-databases > all1207.sql

为了传输方便,可以使用zip将all1207.sql打包

vps之间传输数据scp

例如在B上要将A在/home/root/all.zip传输到/home

scp root@A:/home/root/all.zip /home

如果需要传输的是文件夹,那么需要添加-r

scp -r root@A:/home/root/ /home

导入数据库

进入mysql:mysql -u root -p, 导入数据:

mysql>source /home/root/all.sql

lnmp优化

lnmp虽然已经优化的不错了,但是根据自己的vps特点,比如多核、内存大小,可以调整下自己的lnmp配置。

安装eAccelerator

eAccelerator是我用的php加速器,lnmp中安装还是很简单的,进入lnmp的下载包,然后执行./eaccelerator.sh,根据提示选择对应的eAccelerator的版本就好,我因为是php5.3所以选择了new

配置eAccelerator

安装后可以下载eAccelerator的管理php,首先打开php,修改下登录用户名和密码,然后放在自己的网络根目录就可以访问了。默认设置缓存是1M,感觉有点小,可以参考下《linux安装PHP加速器eAccelerator 》修改下配置。

安装memcached

memcached是内存缓存,可以将查询出来的mysql之类的数据,存入memcached来减少IO操作。在lnmp中安装也是很简单的,同样是进入lnmp的包,执行./memcached.sh,就可以了

启动memcached

/usr/local/memcached/bin/memcached -d -p 11214 -u root -m 10 -c 1024 -t 8 -P /tmp/memcached.pid

关闭mysql日志

mysql的日志功能,一般没啥用,之前我的vps曾经因为mysql日志太多导致硬盘报警,所以这次我就直接关闭了:

删除日志

执行:/usr/local/mysql/bin/mysql -u root -p输入密码登录后再执行:reset master;

修改/etc/my.cnf 文件,找到

log-bin=mysql-binbinlog_format=mixed

开机自启动

修改/etc/rc.d/rc.local。需要用vi执行:vi /etc/rc.d/rc.local,比如要将memcached添加到自启动任务重,需要给rc.local 添加下面的命令:

/usr/local/memcached/bin/memcached -d -p 11214 -u root -m 10 -c 1024 -t 8 -P /tmp/memcached.pid/usr/local/memcached/bin/memcached -d -p 11211 -u root -m 14 -c 1024 -t 8 -P /tmp/memcached-main.pid

crontab定时任务

在命令行中执行crontab -e 进入定时任务页面,跟vi使用一样,编辑好了:wq就可以了。通过crontab 可以做日志切割,负载过高自动重启。

切割日志

#!/bin/bash# This script run at 00:00# The Nginx logs pathlogs_path="/xxx/logs/"mkdir -p ${logs_path}$(date -d "yesterday" +"%Y%m%d")/mv /home/wwwlogs/* ${logs_path}$(date -d "yesterday" +"%Y%m%d")/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

添加crontab,每天凌晨0点执行:00 00 * * * /bin/sh /xxx/bin/cut_nginx_logs.sh

负载过高自动重启负载

#!/bin/bash# script to check server for extremely high load and restart Apache if the condition is matchedcheck=`cat /proc/loadavg | sed 's/./ /' | awk '{print $1}'`check=$( printf "%.0f" $check )# define max load avarage when script is triggeredmax_load=15# log filehigh_load_log='/root/lnmp_high_load_restart.log'# location to Lnmp init scriptlnmp='/root/lnmp'if [ $check -gt "$max_load" ]; then    $lnmp stop    sleep 5    $lnmp restart    echo "$(date) : Lnmp Restart due to excessive load | $check |" >> $high_load_logfi

添加crontab,没十分钟检测一次:*/10 * * * * /bin/sh /root/lnmp_auto_restart.sh

增强php安全

我使用了phpsecinfo来查看php的配置,具体可以查看下http://phpsec.org/projects/phpsecinfo/。根据自己情况修改php.ini 然后重启php-fpm即可。

软连接ln

ln -s /home/www/webroot /webroot

nginx reload

当配置了新的nginx 虚拟主机,或者修改了nginx配置文件,可以通过下面的命令reload配置,而不需要重启nginx造成网站中断:

/usr/local/nginx/sbin/nginx -s reload

vps迁移记录和linux命令

相关文章:

你感兴趣的文章:

标签云: