VPS 开发服务器初始配置

作者:王然 kxxoling@gmail.com

注:部分内容已失效

将域名配置到 DNSPOD

首先需要注册一个 DNSPOD 账号,并拥有一个未使用的一级域名,没有的话需要在域名提供商 (比如 GoDaddy )那里购买。

  • 在 DNSPOD 中添加你已注册的域名信息
  • 添加一级域名记录以及泛域名记录,并指向你的 VPS IP
  • 在域名购买商那里将域名解析服务器修改为 DNSPOD 提供的域名解析服务器

配置 VPS

根据邮件提示以 root 用户登录 VPS(ssh root@your.domain),系统已为你创建了一个叫做 zz 的用户,现在为他创建密码::

passwd zz

根据提示完成后退出 ssh。

接下来配置无密码登录 VPS。首次使用 ssh 密钥登录需要在本地创建 ssh 密钥:

Mac & Linux: ssh-keygen ,该命令会在 home 目录 .ssh 文件夹中创建两个文件: id_rsa 和 id_rsa.pub。形式如下:

将密钥拷贝到服务器:

Linux

`ssh-copy-id zz@your.domain`

Mac 下等价命令

`cat ~/.ssh/id_rsa.pub | ssh zz@your.domain "mkdir ~/.ssh; cat - >> authorized_keys"`

windows用户可以参考 xshell 客户端 配置xshell

配置开发环境

使用 zz 用户登录 VPS,并在本地生成密钥 ssh-keygen

pub 中全部内容(公钥)复制到 BitBuckethttps://bitbucket.org/account/user/youritbucket-b-id/ssh-keys/

fork 42web 源代码

修改 ~/.hgrc 文件,在此设置全局用户名&邮箱

修改 ~/42web/.hg/hgrc 文件,修改修改为如下:

[paths]
default = ssh://hg@bitbucket.org/your-bitbucket-id/42web
zsp = ssh://hg@bitbucket.org/zuroc/42web
接下来将代码更新到最新(要求当前目录在 hg 版本控制的目录)::
hg fetch zsp

如何 pull request

运行初始化脚本

在 ~/42web/zapp/SITE/misc/once 目录中运行脚本 ./init.sh (~/42web/zapp/SITE/misc/once/init.sh )

在 ~/42web/zapp/SITE/misc/config/_host/主机名.py 文件修改为如下内容,并注意将 HOST 修改为自己的域名:

import _env
from z42 import config

def prepare(o):
    config.SMTP.SENDER = config.SMTP.USERNAME = 'postmaster@42.sendcloud.org'
    config.SMTP.PASSWORD = '密码见Google Docs'
    config.SMTP.HOST = 'smtpcloud.sohu.com'
    config.HOST = "hi-acg.com"
    config.MYSQL_PASSWORD = "密码见Google Docs"
    config.MYSQL_HOST = "127.0.0.1"
    config.MYSQL_USER = "zz"


def finish(o):
    pass

因为用户配置的优先级 > 主机配置 > 全局

启动开发脚本,首次运行会比较缓慢。运行完成后请勿关闭此脚本:

~/42web/zapp/SITE/dev.sh

如开发过程中涉及到邮件功能,需要启另外一个脚本:

python ~/42web/zapp/SITE/model/gearman/server/run.py

(如需要启动 Gearman 请输入 sudo service gearmand restart

配置数据库

42web/zapp/SITE/misc/backup/mysql/ 目录下运行以下语句修改数据库:

mysql -h127.0.0.1 -uzz -prstfsgbcedh zz_42web < zz_42web.sql

配置 SMTP

修改配置文件中的邮件服务器配置。

全局配置:42web/z42/config/default.py 个人配置:42web/zapp/SITE/misc/config/_host/主机名.py

如个人配置与全局配置冲突,个人配置将覆盖全局配置。可以在 42web 目录下运行 ipython ,并输入 from z42.config import SMTP; print SMTP.HOST; print SMTP.PASSWD 测试是否覆盖配置成功。

最后,修改 42web/z42/web/smtp.py 中的邮箱并运行,测试是否配置成功。

配置 phpMyAdmin 访问域名

修改文件 /etc/nginx/config/phpmyadmin.conf ,将其中 server_name 修改为自己想用的二级域名,比如 admin.hi-acg.com。

安装 RockMongo

下载 RockMongo 源代码:

sudo git clone https://github.com/iwind/rockmongo.git /var/www/rockmongo

会将源代码下载在 /var/www 目录。

下载依赖:

sudo emerge =dev-php/pecl-mongo-1.5.1 --autounmask-write
sudo etc-update
-3
y
sudo emerge =dev-php/pecl-mongo-1.5.1

添加配置文件: sudo vi /etc/nginx/conf/rockmongo.conf 并添加以下内容:

server{
    listen       80;
    server_name  mongo.kanrss.com;       #这里修改为自己的域名
    index  index.php;
    root  /var/www/rockmongo;

    location ~ \.php$ {
        root  /var/www/rockmongo;

        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi.conf;
        include        fastcgi_params;
    }
}

再修改 rockmongo 配置文件 /var/www/rockmongo/config.php 中变量 $MONGO[“servers”][$i][“mongo_auth”] 和 $MONGO[“servers”][$i][“control_auth”] 为 false,以配置 rockmongo 无密码登录。

重新启动 php-fpm :sudo service php-fpm restart

Nginx 重新加载文件:sudo service nginx reload