分类目录归档:Linux

5分钟完成配置CentOS+Apache+MySQL+PHP5+Webmin+PPTP VPN+Subversion+etc

嗯,今天实在不知道的写什么,就只有把老本拿出来了:自己折腾了N台vps后整理出的快速配置centos的脚本,只要打开terminal一行行的粘进去回车就完事。
正常情况下是可以在5分钟内完成一台新vps的配置的,如果遇到非正常情况。。就。。。。。。
跑poptopd的前提是你的vps是xen架构,否则免谈

#安装epel+rpmforge
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt http://quattor.web.lal.in2p3.fr/packages/os/sl520-x86_64/base/RPM-GPG-KEYs/RPM-GPG-KEY-CentOS-5 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm –import RPM-GPG-KEY.dag.txt
rpm –import RPM-GPG-KEY-CentOS-5
rpm -Uhv rpmforge-release-0.5.1-1.el5.rf.i386.rpm

#更新系统
yum -y update
yum -y upgrade
#install php 5.2+ on centos5
vim /etc/yum.repos.d/CentOS-Testing.repo

[c5-testing]
name=CentOS-5Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=php*

#安装lamp和subversion+其他一些东西
yum -y install perl-Net-SSLeay gcc-c++ patch zlib-devel openssl-devel readline-devel mysql-devel mysql-server httpd-devel apr-devel iptables php-common php-gd php-mcrypt php-pear php-mhash php-mysql php-xml php-mbstring traceroute bind-utils setuptool mod_dav_svn subversion sqlite-devel ntp

#poptopd pptp vpn server
rpm -Uvh http://poptop.sourceforge.net/yum/stable/fc7/pptp-release-current.noarch.rpm
yum -y –enablerepo=poptop-stable install pptpd

vim /etc/pptpd.conf (修改localip、remoteip)
vim /etc/ppp/options (修改ms-dns),
vim /etc/ppp/chap-secrets (创建用户名、密码,指定ip)
vim /etc/sysctl.conf
#修改
net.ipv4.ip_forward = 1
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 内网ip段(eg. 192.168.100.0/24) -j SNAT –to 服务器的任意ip(eg. 1.2.3.4)
/etc/init.d/iptables save
/etc/init.d/iptables restart

#webmin图形化的web管理界面,减少命令行的折腾程度
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.520-1.noarch.rpm
rpm -i webmin-1.520-1.noarch.rpm

#subversion
svnadmin create /path/to/repo
chmod 777 -R /path/to/repo
htpasswd -c /path/to/svn/password username#下面这段丢给httpd.conf

DocumentRoot /path/to/svn/repo
ServerName svn.yourname.com

DAV svn
SVNPath /data/svn
AuthType Basic
AuthName “Subversion”
AuthUserFile /path/to/svn/password
Require valid-user

#大功告成^_^

非常NB的软7层交换机-haproxy在centos上最简化配置

yum -y install haproxy
vim /etc/haproxy/haproxy.cfg
#    use_backend static          if url_static  #注释掉这一行
server  app1 你的服务器真实ip:端口 check  #修改这一行
删掉其余两行server app1

保存退出完事
然后service haproxy start

自己hosts后就可以感受一下了,对于动态内容加速效果还是很明显的,支持非常强大的配置,等有空研究清楚了继续贴配置

之前搞错了- -haproxy主要是作为load balancer用,部署在最前端,后面一般是个squid群,squid之后才是应用服务器,应用服务器后面可以再来一层数据库服务器,这样的架构抗负载能力是非常强悍的。

目前我这个烂博客已经实现squid+apache+mysql分布在3台服务器,其中一台跑在xeex的网络后面作为前端,另外两个在Amazon的ec2上。估计是没必要考虑引入haproxy的了- –

又忘了mysql的密码- -囧

service mysqld stop

mysqld_safe  --skip-grant-tables

UPDATE mysql.user SET Password=PASSWORD('xinmima') WHERE User='root';

FLUSH PRIVILEGES;

 

mysql5.6以后,users表没有password了,需要:

SET PASSWORD FOR ‘root’ = PASSWORD(‘NewPass’);

DriveHQ替代品–FileServe

之前是打算拿DriveHQ做备份空间,一直速也还好,只是最近上去看了下发现每个文件都只有50M,就觉得很奇怪了,不会每天都那么整齐吧。冲到vps上看到每个文件都在170~180mb的样子,然后稍微看了看faq,简直就想说f*ck……每个文件限制50m,超过50m需要手动点继续。所以,又搜罗了一个新的在线文件存储服务商:FileServe

这家站其实是主要作为网盘存在的,但是可以通过ftp上传,所以拿来做备份空间也还好,唯一的限制就是超过60天没下载的文件会被删除,个人认为小网站嘛,有60天的dailybackup,足够了。

好处:

每人空间500G,单文件1G,直接就把DriveHQ鄙视下去了。

速度飞快,因为是做文件共享的,比较舍得成本。

安全第一——Linux系统每日备份脚本

由于某个垃圾主机商动作过于麻利,辛苦积累了几年的东西就灰飞烟灭了,这次是重新买了很出名的burst的vps,虽然不是xen的,不能很容易的架设pptp的vps了,不过也无所谓,安全第一
研究了一阵子,找到了个不错的免费ftp服务商DriveHQ,提供免费的1GB ftp存储空间,上行流量无限制,下行流量限制是每月200M,通过https://www.drivehq.com/Desktop.aspx#Group-GroupList这个页面升级为Group Account就可以把每月下载限制轻松提高到640M,虽然几乎不会用到下载 – –

2010-11-27 Update:

DriveHQ有个很头疼的限制——单文件50MB,所以换了FileServe做替代品

http://johnliu.info/others/drivehq_ti_dai_pin_-fileserve/

接下来就是写备份脚本了,我的备份方式比较粗鲁,直接打包MySQL文件和web目录文件,然后保存到以当天日期为名称的tgz文件中,直接上传到DriveHQ

废话不多说,上脚本了

tar cvzf /备份路径/$(date +%Y%m%d).tgz 要备份的目录(例如/data)
ftp -n<<!
open ftp.drivehq.com
user 用户名 密码
binary
put /备份路径/$(date +%Y%m%d).tgz /$(date +%Y%m%d).tgz
bye
!
rm -fr /备份路径/$(date +%Y%m%d).tgz