我选的是1GB的套餐,每个月$20,年付减10%,实付$230.21折合人民币1400多点。
操作系统: CentOS Linux 6.2 64bit
运行环境: Nginx+PHP+MySQL
准备工作
编译环境部署:
在服务器上启用编译环境是非常危险的做法,为了保证安全我专门用一个虚拟机来做编译工作,编译完成后再将程序部署至服务器即可。
根据VPS操作系统情况下载安装CentOS 6.2 64bit, 因为只是做编译机,所以只要装 Minimal 版就可以了,几百M,下载也很快。
历史版本的ISO文件可以在 http://vault.centos.org 找到。
Minimal版本安装好后不会自动启动网络,需要执行以下操作:
运行命令
dhclient -v eth0
修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0
在文件最后添加一行
BOOTPROTO=”dhcp”
再把ONBOOT=”no”改成ONBOOT=”yes”
这样以后启动都自动连接网络了。
用root登陆后在/root目录建立packages、build两个目录,分别用于放置安装包和解压后的程序目录。
# 安装
yum install gcc make cd mkdir packages build
创建用户
groupadd -g 500 www && useradd -g 500 -m -u 500 www groupadd -g 501 Hessian && useradd -g 501 -m -u 501 Hessian groupadd -g 27 mysql && useradd -d /www/database -M -g 27 -u 27 mysql
环境变量
修改文件/etc/profile,将下面的内容加到文件末尾
PATH=$PATH:/opt/mysql/bin PATH=$PATH:/opt/php/bin PATH=$PATH:/opt/nginx/sbin
添加完成后执行: . /etc/profile
(中间的空格可别漏)
Nginx
下载地址:http://nginx.org/en/download.html
1. 下载
cd ~/packages wget http://nginx.org/download/nginx-1.4.1.tar.gz
2. 解压
cd ~/build tar -zxf ~/packages/nginx-1.4.1.tar.gz
3. 解决依赖
yum install pcre-devel yum install zlib-devel
3. 编译
cd nginx-1.4.1 ./configure --prefix=/opt/nginx-1.4.1 --with-pcre --with-openssl=/usr make -j 2 && make install
MySQL
下载地址:http://dev.mysql.com/downloads/mysql
这里我选择的是Binary包
Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
mysql-5.6.11-linux-glibc2.5-x86_64.tar.gz
下载之后解压缩即可使用
PHP
虽然YUM有提供PHP,但是出于性能方面和个人需要的考虑我还是选择自己编译。
PHP版本我用的是5.3 主要是不知道5.4会不会带来什么兼容性问题。
下载地址:http://cn2.php.net/get/php-5.3.24.tar.bz2/from/a/mirror
1. 下载
cd ~/packages wget http://cn2.php.net/get/php-5.3.24.tar.bz2/from/this/mirror
2. 解压
cd ~/build tar -zjf ~/packages/php-5.3.24.tar.gz
3. 解决依赖
yum install libxml2-devel yum install libcurl-devel yum install libjpeg-devel yum install libpng-devel yum install freetype-devel yum install autoconf
libmcrypt 在yum里没有,可以从EPEL里下载
EPEL(Extra Packages for Enterprise Linux)是Fedora社区打造的为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
安装
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
3. 编译
cd php-5.3.24 ./configure --prefix=/opt/php-5.3.24 \ --with-config-file-path=/opt/php \ --with-mysql=mysqlnd \ --with-mysql-sock=/tmp/mysql.sock \ --with-iconv-dir=/usr \ --enable-xml \ --with-libxml-dir \ --disable-rpath \ --enable-safe-mode \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --with-gd \ --enable-zip \ --enable-sockets \ --enable-mbstring=all \ --with-mcrypt \ --enable-gd-native-ttf \ --with-freetype-dir=/usr \ --with-jpeg-dir=/usr \ --with-png-dir=/usr\ --with-pdo-mysql=mysqlnd \ --without-pdo-sqlite \ --enable-fpm \ --enable-cli make -j2 make install
4. 编译扩展
后续步骤
cd /opt ln -s mysql-5.6.11-linux-glibc2.5-x86_64 mysql ln -s nginx-1.4.1 nginx ln -s php-5.3.24 php tar -czf servers.tar.gz *
将配置文件、启动脚本以及servers.tar.gz 上传到服务器,解压到/opt,放置好配置文件和启动脚本。
VPS 安装步骤
解决依赖
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm yum install libpng libjpeg freetype yum install svn
创建用户
groupadd -g 500 www && useradd -g 500 -m -u 500 www groupadd -g 501 Hessian && useradd -g 501 -m -u 501 Hessian groupadd -g 27 mysql && useradd -d /www/database -M -g 27 -u 27 mysql
上传并解压
将servers.tar.gz、配置文件、启动脚本放到服务器
tar -zxf servers.tar.gz -C /opt tar -zxf init-scripts.tar.gz -C /etc/init.d
添加服务
chkconfig --add nginx chkconfig --add mysql chkconfig --add php-fpm
建立资源目录
mkdir /www mkdir /www/database mkdir /www/logs mkdir /www/svn-repos
调整目录权限
chown www:www -R /www chown mysql:mysql -R /www/database
环境变量
修改文件/etc/profile,将下面的内容加到文件末尾
PATH=$PATH:/opt/mysql/bin PATH=$PATH:/opt/php/bin PATH=$PATH:/opt/nginx/sbin
添加完成后执行: . /etc/profile
(中间的空格可别漏)
安全设置
SSH设置:
修改/etc/ssh/sshd_config
1. 禁用root登陆:PermitRootLogin no
2. 禁用密码登陆:PasswordAuthentication no
3. 启用密钥登陆:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
将公钥加入到服务器上 .ssh/authorized_keys中,生成密钥及具体设置方法参考:
http://stevenz.blog.hexun.com/15798089_d.html
在客户端可以通过下面的命令直接将公钥添加到服务器上:
cat ~/.ssh/id_rsa.pub | ssh zhaoy@192.168.1.1 "cat - >> ~/.ssh/authorized_keys"
执行完成后重启sshd
service sshd restart
如果无法登陆可以查看安全日志 /var/log/secure 确定问题原因。
防火墙设置:
创建文件/etc/sysconfig/iptables,加入以下内容
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
这里只开放了22、80、3690三个有限的端口,如果有其他需要再自己参考添加就行。
Read: 2566