文件和www服务器配置

需要运行www服务(systemsci.org——wordpress平台, learnm.org——汉字学习网站和wiki, bigphysics.org——研究小组静态网页, gndt.org, learningm.org, meaningfullearning.org, revdi.org, sciedu.org),云盘服务(owncloud.systemsci.org),概念地图服务(cmap.systemsci.org)和博弈实验服务(games.systemsci.org),版本控制服务(git.systemsci.org),配置一个服务器。

首先安装ubuntu server,安装和配置ssh server,Apache server(php, mysql),以及virtual hosts。每一个步骤的细节可以参考server world。一个简单的方法就是安装好ubuntu server之后选择自动安装openssh server, LAMP server以及PostgreSQL server。安装完成Apache Server之后,需要配置成功能够显示CGI, php和静态主页。

为了在本地服务器上先测试,需要通过域名而且是多个域名来访问本地服务器。这个可以通过安装自己的dns解析来完成,也可以通过修改服务器的hostname文件以及局域网测试访问的机器的hosts来实现。前者能够给每一个局域网机器一个稳定的名字,方便以后使用。甚至通过dhcp更换了局域网IP都不是问题。后者只能在服务器和这个测试登陆机器之间完成解析。但是,后者方便,这里就先用后者。dns或者dnsmasq的方法,以后有需求再实现。

为了给以后安装机器保留数据方便,单独建立www的分区,用来保存服务器数据。单独建立git、owncloud、game账号用来管理相应服务器。

然后安装和配置git server。其中,用户控制选择通过ssh来访问共同的账号git@git.systemsci.org来实现(例如 git remote add origin ssh://git@git.systemsci.org/~/oTreeApp.git)。git的用户目录直接用来存放所有的repositories(例如oTreeApp.git,Coherent.git等)。需要使用git的用户,请自行上传一个ssh公钥到服务器上(参考如下帖子,需要git用户密码,请跟我联系)。关于git使用,请自行学习(参考ProGit)。新建远程库也需要git密码,请跟我联系。建立远程库的方法建议采用先在服务器上建立一个文件夹(然后git init –bare),然后通过git clone来建立本地目录,接着修改本地文件的方式来实现。

详细安装过程和使用方法如下:

  1. 在服务器端安装git: sudo apt-get install git-core,并添加git用户(sudo adduser git,注意密码)
  2. 在服务器端建立一个项目:mkdir IO.git。在这里,整个git目录只用于存储项目。因此,所有的项目直接放在~/git/下面。
  3. 在项目目录下面,初始化项目目录结构:git init –bare。这时候指有目录结构,什么具体内容都还没有呢。
  4. 回到本地机器准备加入内容
    1. 生成和上传一个ssh公钥到服务器上(需要git用户密码,请跟我联系):ssh-keygen -t rsa,cat ~/.ssh/id_rsa.pub | ssh git@git.systemsci.org “mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys” 。完成这两步之后试试是否能够免密码访问服务器了。
    2. 已经存在的IO项目目录:把这个目录变成存储项目内容的本地目录(git init )。然后把远程项目拉过来同步到本地目录(git remote add origin ssh://git@git.systemsci.org/home/git/IO.git, git pull origin master)。接着把本地目录的内容加入到需要同步的列表(git add., git commit -m “massage” -a),然后把本地目录的内容推送到远程(git push origin master)
    3. 或者如果还没有这个项目的话,到预期存储IO项目的上一级目录(运行完成下面的目录会产生一个名字叫做IO的子目录)。然后运行:git clone git@git.systemsci.org:/home/git/IO.git,就会把整个服务器上的这个项目的内容完整地复制下来。
    4. 在本机这个项目目录下面编辑文档,并且用git add, commit, push之类的命令同步到服务器上。也可以安装图形客户端。
  5. 注意:最好只把文本文件当作git管理的对象,否则,由于要检查和跟踪变化,git会非常慢

注意有的系统在把公钥上传到服务器以后仍然需要git@git.systemsci.org的账号,这个时候,请在local(你自己的机器上)运行一下ssh-add。

接着,安装和配置wordpress服务器。安装目录为/var/www/wordpress。

接着,安装和配置owncloud服务器。安装目录为 /var/www/owncloud。

接着,安装和配置oTree服务器。安装目录为 /var/www/owncloud。

安装和配置cmapserver。这个server不能运行在apache下面,只能用它自己带的服务器,由于80端口已经被其他网站使用,给它单独的端口8088。

最后,把各个网站内容放到相应的/var/www/“DomainName”下面。

顺便整理一下其他做为一个大物理学的研究者的工具箱里面应该有的工具:

  1. 把问题模型化数学化的能力(抽象的过程)
  2. 建立所思考的各种问题之间的联系的能力(系联性思考、概念地图)
  3. 阅读、思考、批判和总结整理文献的能力(批判性思考、系联性思考)
  4. 物理学数学经济学是什么,少量的基本概念,以及不太多的分析技术(例如平均场理论、动力学方程稳定性分析)
  5. 编程语言:C,Python
  6. 基本数值运算(积分、插值等):gsl
  7. 线性代数:lapack(ATLAS, IntelMKL, AMDCML),BLAS,Petsc和Slepc(并行),ARPACK
  8. Monte Carlo:随机数生成器,通常不要用语言自带的,使用专门的包,并行的时候要特别注意。
  9. FFT: FFTW,或者IntelMKL, AMDCML
  10. 网络分析:iGraph(C、R和Python有接口),NetworkX(R和Python有接口)
  11. 统计学:R
  12. 做图:Python,R,gnuplot,grace
  13. 写作:LaTeX,bibtex文献管理,LaTeX beamer报告以及poster
  14. 微分方程数值解:Runge-Kutta, XMDS2

发表评论

电子邮件地址不会被公开。 必填项已用*标注