42qu.com 入门指南 : 程序员 篇#

作者:张沈鹏 zuroc.42qu.com

有任何问题 , 欢迎加我微信 : zsp042

前言#

42qu.com是一个开源项目 , 开源的初衷如下 :

看了 吉米·威尔士关于维基百科诞生的演讲

再一次被开源的力量所震撼 ,我觉得, 我应该也去搞一个NB的开源项目

因为发现很多初学者用python写网站没经验, 写出来的网站比较卡, 让我很痛心,于是这一次, 我又开始了一个坑 ,打算基于Python的Tornado, 打造一套可以抗千万PV的SNS/微博/轻博客的开源基础框架

让以后Python程序员写SNS, 省去很重复开发的工作 - 比如登录, 比如头像, 比如相册, 比如日记, 比如等等等...

对了 , 你也许会对下面这个感兴趣 - 42qu.com 开源项目 代码贡献者 奖励方案

欢迎参与, 前端, 美工, 程序员, 都可以!

申请开发权限#

我们提供了一个能很方便运行42qu.com代码的线上开发服务器

因为资源极度有限 , 此开发服务器仅对有能力贡献代码的开发者开放

首先, 在 bitbucket 上提交 issue

https://bitbucket.org/zuroc/zpage/issues/new

向管理员申请开发服务器的访问权限

申请中请注明

  1. 在42qu.com的主页地址

  2. 期望认领的任务

    • 方式 1 :

      http://42qutk.sinaapp.com/project-task-1.html 认领未分配的任务 (请附上任务编号)

      在任务被认领后, 我们将会给出更详尽的需求文档 :)

    • 方式 2 :

      如果你有自己想在42qu.com上实现的功能

      可以在bitbucket的issue中做详细说明

然后申请加入42qu.com开发者的 Google Groups my42

申请理由为刚刚在bitbucket上创建的issue的链接地址

管理员确认后 , 你会收到一份邮件

邮件里面会给出你所分配到的开发域名

注册开发域名#

https://www.dnspod.cn/ 注册一个帐号 , 绑定邮件里面提到的域名

../_images/dnspod.png

然后去 http://dot.tk/ 注册一个免费的顶级域名 (请先创建帐号, 然后注册)

../_images/tk.png

选择用自己的DNS服务器

../_images/tk2.png

把 dnspod 的 namesever 地址copy过来

../_images/dnspod_nameserver.png

最后在 dnspod 上 , 追加两个域名解析, 一个什么也不需要填 , 一个填写* , 都指向开发服务器的IP

  • e1.42qu.us
  • 113.11.199.20
../_images/dns_set.png

在域名生效前 , dnspod 会提示 “检测到域名没有填写DNS” 的错误 , 不要管它

../_images/dns_err.jpg

我们接着走下面的流程 , 域名生效要等上好几个小时 ...

人生充满了等待 ...

如果你的域名不幸被抢注了 , 那就随便注册一个吧 , 下文如何使用自定义域名的方法

登录服务器#

参阅 SSH 登录 Linux服务器 流程说明 , 强烈向windows用户推荐文中提到 xshell ssh客户端

SSH的端口是53002

注意 :

  1. ssh key 已经生成 , ssh-keygen 生成密钥 命令这一句可以跳过
  2. virtualenv 也已经安装

登录后请 执行 passwd 命令 , 修改密码

Fork zpage 项目 到自己的帐号#

../_images/fork.png

项目主页

注意 :

  1. fork的那个板块可能被折叠, 导致你看不见fork的链接 , 点击就可以把它展开
  2. 如果bitbucket提示出错, 不管它

添加自己的密钥到bitbucket#

ssh中

cat ~/.ssh/id_rsa.pub

然后 , 复制粘贴 ( https://bitbucket.org/account/ssh-keys/ )

../_images/bkssh.png

克隆代码库#

访问 https://bitbucket.org/repo/mine , 点击进入自己的项目

../_images/hg_ssh.png

注意 , 不要用privite的项目 , 不然将来没法给官方项目提交自己的修改

找到自己fork的项目ssh的地址 ( 注意不是https的地址 ) , 然后clone

../_images/hg_clone.png

请clone到自己home目录下的 zpage 文件夹 (不然会找不到静态文件)

人生充满了等待 ...

加入42qu的官方项目到 hgrc#

../_images/hg_rc.png

在 ~/zpage/.hg/hgrc 中加入

42qu = ssh://hg@bitbucket.org/zuroc/zpage

以后就可以通过

hg fetch 42qu

来同步官方代码到自己的fork

配置SMTP邮件服务器#

mailgun.net 注册一个免费的帐号

../_images/mailgun.png

找到用户名密码

../_images/smtp.png

编辑自己的配置文件

vi ~/zpage/config/user/$USER.py

修改为刚刚注册的SMTP服务器

../_images/smtp_config.png

注意 , 因为用户名和密码都写到了配置文件里面 , 而这些是会在开源代码库中公开 , 所以请不要用私人邮箱的SMTP

小贴士 :

Mailgun 是由美国著名的投资者/机构 Y Combinator, SV Angel, Yuri Milner, Maynard Webb, Paul Buchheit (Gmail 创始人之一), Geoff Ralson (Yahoo Mail 创始人) 等投资的一家新兴邮件发送服务提供商。

数据库#

管理的地址 http://e1sql.42qu.us/ , 用户名密码见邮件

注意 : zpage 和 zpage_google 的共用的开发数据库 , 请不要乱动

你可以创建名为 zpage_自己在42qu的个性网址/ID 数据库

启动服务器#

ping 一下开发测试的域名 , 看看ip是否已经指向了ssh服务器的IP

如果没有生效 , 你可以去看场电影

如果成功 , 就可以启动服务器了 , 第一次启动需要压缩css和js , 会稍微慢点

cd ~/zpage
./restart.dev

图片都是挂掉的 , 不管它

要关闭服务 , 请连续按两次 Ctrl + C

登录自己的42区#

为了保护网站用户的隐私 , 开发服务器的数据库对涉及个人隐私的数据都做了替换处理

不过你还是可以用自己帐号登录

首先, 我们要找到自己的邮箱对应的id , 比如访问

http://api.42qu.com/user/info/mail/id?mail=zsp007@gmail.com

其中zsp007@gmail.com为你在42qu.com的注册邮箱

可以看到返回 1 , 那么我们就可以用 1@42qu.com 登录在42qu.com上对应的帐号 (密码不变)

如果登录时提示帐号不存在 , 那就重新注册吧

向官方代码库提交自己的改动#

首先 fetch 线上的代码:

hg fetch 42qu

然后合并完成代码后 , 可以向42qu.com的官方代码库发起pull请求

还是访问 https://bitbucket.org/repo/mine , 点击进入自己的项目

然后, 如图

../_images/pull_request.png

域名被抢注了怎么办 ?#

如果你使用邮件里面的默认域名 , 可以无视这一节

首先编辑配置文件

vi ~/zpage/config/user/$USER.py

修改域名那一行为自己的域名

o.SITE_DOMAIN = 'z11e1.tk'

然后重新生成静态文件的引用

cd ~/zpage; rm static/.js_hash static/.css_hash ; python static/make.py

接着参考上文, 向官方代码库提交自己的改动 ; 请只包含配置文件的修改 ;

标题为 : 自定义使用域名 xxx.tk

等管理员确认, 合并, 并重新生成nginx配置文件后 , 就可以使用自己的域名了 :)

遇到问题怎么办 ?#

穿越火线后 , 加入

my42

这个邮件列表 , 然后提问

推荐用Gmail邮箱订阅

提问前 , 请仔细阅读 提问的智慧

管理员备忘#

  1. 开通开发人员的帐号

    1. 登录主机 e1 @ e1.42qu.us

      cd ~/zpage/misc/vps $
      vi vps_new.py  #设置需要开通哪些帐号
      ./vsp_new.sh
      

Table Of Contents

Previous topic

42qu.com 网站开发

Next topic

ZSAE 框架