如果有一个新的服务器你会做什么?

已经折腾过好几个云服务器了,发现对自己的技能提升很有帮助,所以分享一下自己的心得体会。当然如果你本身是计算机专业的,可以略过了。即使你没有云服务器,也可以在自己的电脑上面安装一个虚拟机安装ubuntu,或者直接拿mac来折腾。当然,mac折腾坏了我就不负责咯。

开通网页服务

  1. ## https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

  2. sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql

  3. sudo apt-get install mysql-server

  4. sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

  5. #sudo apt-get install phpmyadmin

  6. ## 上面的软件安装完毕后,就可以直接在浏览器里面输入下面的IP进行访问啦

  7. 127.0.0.1

  8. 127.0.0.1/info.php

  9. ## 如果你没有公网IP,就直接在你的云服务器本身自带的浏览器里面输入  localhost 吧!

  10. ## 当然网页服务的权限也要设置好,需要自己慢慢搜索理解

  11. sudo chgrp -R www-data /var/www

  12. sudo usermod -a -G www-data  jmzeng

  13. sudo chmod -R 2770 /var/www/html

安装必备的库

操作系统本身可以非常的精简,比如docker里面的ubuntu就一百多M的大小,但是真正要想用起来,仅仅是操作系统肯定是不够的,需要安装各种各样的软件,这些软件就需要各种各样的库文件的支持。这里,我们一劳永逸运行下面的代码:

  1. sudo apt-get -y install libcurl4-gnutls-dev

  2. sudo apt-get -y install libxml2-dev

  3. sudo apt-get -y install libssl-dev

  4. sudo apt-get -y install  libmariadb-client-lgpl-dev

安装R相关

这个从事生物信息学工作的就不用解释啦,直接上代码:

  1. sudo vi /etc/apt/sources.list

  2. # deb http://mirrors.xmu.edu.cn/CRAN/bin/linux/ubuntu/ xenial/

  3. sudo apt-get update

  4. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9

  5. sudo apt-get update

  6. sudo apt-get install r-base-core

  7. R --version

  8. ## http://deanattali.com/2015/05/09/setup-rstudio-shiny-server-digital-ocean/

  9. sudo su - \

  10. -c "R -e \"install.packages( c('RSQLite','shiny','devtools','RMySQL'), repos='https://cran.rstudio.com/')\""

  11. sudo apt-get -y install libapparmor1 gdebi-core

  12. wget https://download2.rstudio.org/rstudio-server-0.99.896-amd64.deb

  13. sudo gdebi rstudio-server-0.99.896-amd64.deb

  14. 127.0.0.1:8787

  15. wget https://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.4.2.786-amd64.deb

  16. sudo gdebi shiny-server-1.4.2.786-amd64.deb

  17. 127.0.0.1:3838

  18. sudo adduser  jimmy

  19. sudo groupadd shiny-apps

  20. sudo usermod -aG shiny-apps jimmy

  21. sudo usermod -aG shiny-apps shiny

  22. cd /srv/shiny-server

  23. sudo chown -R jimmy:shiny-apps .

  24. sudo chmod g+w .

  25. sudo chmod g+s .

  26. sudo su - \

  27. -c "R -e \"install.packages( c('shinydashboard','DT','reshape2'), repos='https://cran.rstudio.com/')\""

  28. sudo su - \

  29. -c "R -e \"install.packages( c('shinyBS','GGally','shinyAce','knitr'), repos='https://cran.rstudio.com/')\""

  30. sudo su - \

  31. -c "R -e \"install.packages( c('rmarkdown','shinyjs' ), repos='https://cran.rstudio.com/')\""

  32. sudo R

  33. source("https://bioconductor.org/biocLite.R")

  34. biocLite("Biobase")

  35. biocLite("Sushi")

  36. sudo systemctl restart shiny-server

  37. sudo systemctl kill -s HUP --kill-who=main shiny-server

  38. ## start /stop / status / enable /disable  

mysql数据库的配置

如果要远程服务mysql数据库,这里面的门道还有点多,直接上代码吧:

  1. mysql -u root -p

  2. ## 登录进入mysql交互界面后,输入下面的mysql命令

  3. select user,host from mysql.user;

  4. create database test_db;

  5. grant all privileges on test_db.* to 'jmzeng'@'%' identified by 'test$';

  6. select user,host from mysql.user;

  7. flush privileges;

  8. mysql  -u jmzeng -p

  9. mysql -h 127.0.0.1 -u jmzeng -p

  10. mysql -h localhost -u jmzeng -p

  11. mysql -h 127.0.0.1 -u jmzeng -p

  12. head /etc/mysql/my.cnf  

  13. head /etc/mysql/mysql.conf.d/mysqld.cnf

  14. netstat -an | grep 3306

  15. ps -Af | grep mysqld

  16. sudo systemctl status mysql

  17. ls -lh /var/run/mysqld

  18. sudo systemctl restart  mysql

安装Nginx

nginx可以给一个IP地址分配多个域名,这样一个云服务器就可以hold住多个博客或者论坛啦。

  1. #Shutting down apache2 first before installing nginx should fix this problem:

  2. sudo service apache2 stop

  3. # https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04

  4. ## 这个教程写明如何在16.04版本的ubuntu里面安装nginx

  5. # https://mediatemple.net/community/products/developer/204405534/install-nginx-on-ubuntu

  6. ## 这个教程写明如何把自己买的多个域名绑定到同一台主机的不同文件夹里面

  7. sudo apt-get update

  8. sudo apt-get install nginx

  9. sudo systemctl  start   nginx

  10. sudo systemctl status nginx

  11. ## list the applications configurations for the firewall

  12. sudo ufw app list

  13. sudo ufw allow 'Nginx HTTP'

  14. sudo ufw status

  15. ## server's public IP address

  16. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

  17. curl -4 icanhazip.com

  18. ls /etc/nginx

  19. ## sites-available  sites-enabled  snippets

  20. #给自己的shiny server设置域名:

  21. #https://www.r-statistics.com/2016/10/set-application-domain-name-with-shiny-server/

  22. #https://www.r-bloggers.com/shiny-server-series-part-1-setting-up/

  23. sudo ln -s /etc/nginx/sites-available/shiny.conf  /etc/nginx/sites-enabled/

  24. sudo systemctl restart nginx

  25. # https://www.datascienceriot.com/add-authentication-to-shiny-server-with-nginx/kris/

安装JBrowser

这是一个基因组浏览器,功能还挺多的,可以看成是高配版的网页IGV

  1. # 建立有写权限的目录

  2. sudo mkdir /var/www/jbrowse;

  3. sudo chown `whoami` /var/www/jbrowse;

  4. cd /var/www/jbrowse;

  5. # 下载最新的安装包

  6. curl -O http://jbrowse.org/releases/JBrowse-1.12.1.zip

  7. # 解压之后进入目录

  8. unzip JBrowse-x.x.x.zip

  9. cd JBrowse-x.x.x

  10. #运行目录内的setup.sh文件

  11. ./setup.sh

  12. 127.0.0.1/jbrowse/JBrowse-1.12.1/index.html?data=sample_data/json/volvox

  13. 127.0.0.1/jbrowse/JBrowse-1.12.1/index.html?data=sample_data/json/yeast

具有如下特点:

  • 快速、平滑的滚动和缩放,能较快的浏览你的基因组数据

  • 能够很容易的缩放若干Gbp和深覆盖度测序数据

  • 支持多种基因组学常用格式(如GFF3、BED、FASTA、Wiggle、BigWig、BAM、VCF等其它格式)

  • 对服务器的配置要求低,实际上JBrowse并没有多少后台服务器代码,除了一些转换格式的工具如转换成http文本

当web浏览器导入含有JBrowse的页面时,首先做的是读取由html页面传递的配置文件。 JBrowse里面支持两种配置文件格式,一种是JSOn格式,另外一种是和GBrowse类似的文本配置文件.conf,如果习惯了之前的GBrowse那么用.conf会更加习惯。

  • jborwse.conf配置文件是基因浏览器的全局配置文件。

  • tracks.conf是各个数据项的子配置文件。

参考序列就是相当于其它所有track的一个坐标轴,当放大到一定的尺度后上面的碱基是可以被显示出来的。 JBrowse中的参考序列都必须用prepare-refseqs.pl这个格式化脚本来创建。(可以接受.gz .gzip压缩格式的fasta文件)

http://www.cnblogs.com/freemao/p/3741259.html

  1. ref=/var/www/html/jbrowse/JBrowse-1.12.1/TF_data/raw/human_genome/hg38.fasta

  2. outDir=/var/www/html/jbrowse/JBrowse-1.12.1/TF_data/json/human

  3. rootDir=/var/www/html/jbrowse/JBrowse-1.12.1/bin/

  4. #$rootDir/prepare-refseqs.pl --fasta  $ref --out $outDir

  5. #$rootDir/flatfile-to-json.pl --gff outfile.txt  --tracklabel  peaks --out $outDir

  6. #$rootDir/flatfile-to-json.pl --gff hg38.chr1.gff3 --tracklabel  chr1  --out $outDir

  7. perl -alne '{ print if $F[0] eq "chr18"}' hg38.gff3 >hg38.chr18.gff3

  8. $rootDir/flatfile-to-json.pl --gff hg38.chr18.gff3 --tracklabel  chr18  --out $outDir

  9. $rootDir/flatfile-to-json.pl --bed 2.bed  --tracklabel  test2 --out $outDir

  10. ftp://ftp.ncbi.nih.gov/refseq/H_sapiens/RefSeqGene/GCF_000001405.25_refseqgene_alignments.gff3

  11. ftp://ftp.ncbi.nlm.nih.gov/genomes/H_sapiens/ARCHIVE/ANNOTATION_RELEASE.105/GFF/ref_GRCh37.p13_top_level.gff3.gz

  12. http://127.0.0.1/jbrowse/JBrowse-1.12.1/TF_data/json/human/tracks/peaks/chr18/trackData.json

  13. http://127.0.0.1/jbrowse/JBrowse-1.12.1/TF_data/raw/peaks/tmp.bed

  14. #https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04

配置docker

  1. sudo apt-get update

  2. sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  3. sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'

  4. sudo apt-get update

  5. apt-cache policy docker-engine

  6. sudo apt-get install -y docker-engine

  7. sudo systemctl status docker

  8. ps -Af | grep docker

  9. sudo usermod -aG docker $(whoami)

  10. id $(whoami)

  11. #  you need to close you session in order to have the change taken into account.

  12. sudo usermod -aG docker jimmy

  13. docker

  14. docker info

  15. docker version

  16. sudo docker search ubuntu

  17. sudo docker run hello-world

  18. docker images

  19. # http://blog.thoward37.me/articles/where-are-docker-images-stored/

  20. sudo docker pull taunometsalu/clustvis

  21. mkdir ~/customClustvis/

  22. cd ~/customClustvis/

  23. wget https://github.com/taunometsalu/ClustVis/archive/master.zip

  24. unzip master.zip

  25. docker run --help

  26. sudo docker run -d \

  27. --name customClustvis \

  28. -p  3840:3838 \

  29. -v ~/customClustvis/ClustVis-master/:/srv/shiny-server/:ro \

  30. taunometsalu/clustvis

  31. #To clear containers:

  32. docker rm -f $(docker ps -a -q)

  33. #To clear images:

  34. docker rmi -f $(docker images -a -q)

  35. #To clear volumes:

  36. docker volume rm $(docker volume ls -q)

  37. #To clear networks:

  38. docker network rm $(docker network ls | tail -n+2 | awk '{if($2 !~ /bridge|none|host/){ print $1 }}')

一些参考链接

http://dockone.io/article/111

Docker 命令大全 http://www.runoob.com/docker/docker-command-manual.html

(0)

相关推荐