美文网首页盘子菜鸟
如果有一个云服务器你会做什么?

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

作者: 因地制宜的生信达人 | 来源:发表于2018-01-23 12:10 被阅读1861次

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

    开通网页服务

    ## https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04
    sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql
    sudo apt-get install mysql-server
    sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
    #sudo apt-get install phpmyadmin
    ## 上面的软件安装完毕后,就可以直接在浏览器里面输入下面的IP进行访问啦
    127.0.0.1 
    127.0.0.1/info.php
    ## 如果你没有公网IP,就直接在你的云服务器本身自带的浏览器里面输入  localhost 吧!
    
    ## 当然网页服务的权限也要设置好,需要自己慢慢搜索理解
    sudo chgrp -R www-data /var/www
    sudo usermod -a -G www-data  jmzeng
    sudo chmod -R 2770 /var/www/html 
    

    安装必备的库

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

    sudo apt-get -y install libcurl4-gnutls-dev
    sudo apt-get -y install libxml2-dev
    sudo apt-get -y install libssl-dev
    sudo apt-get -y install  libmariadb-client-lgpl-dev
    
    

    安装R相关

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

    sudo vi /etc/apt/sources.list
    # deb http://mirrors.xmu.edu.cn/CRAN/bin/linux/ubuntu/ xenial/
    sudo apt-get update
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
    sudo apt-get update
    sudo apt-get install r-base-core 
    R --version
    
    ## http://deanattali.com/2015/05/09/setup-rstudio-shiny-server-digital-ocean/
    
    sudo su - \
    -c "R -e \"install.packages( c('RSQLite','shiny','devtools','RMySQL'), repos='https://cran.rstudio.com/')\""
    
    sudo apt-get -y install libapparmor1 gdebi-core
    wget https://download2.rstudio.org/rstudio-server-0.99.896-amd64.deb
    sudo gdebi rstudio-server-0.99.896-amd64.deb
    127.0.0.1:8787
    wget https://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.4.2.786-amd64.deb
    sudo gdebi shiny-server-1.4.2.786-amd64.deb
    127.0.0.1:3838
    
    sudo adduser  jimmy
    sudo groupadd shiny-apps
    sudo usermod -aG shiny-apps jimmy
    sudo usermod -aG shiny-apps shiny
    cd /srv/shiny-server
    sudo chown -R jimmy:shiny-apps .
    sudo chmod g+w .
    sudo chmod g+s .
    
    sudo su - \
    -c "R -e \"install.packages( c('shinydashboard','DT','reshape2'), repos='https://cran.rstudio.com/')\""
    
    sudo su - \
    -c "R -e \"install.packages( c('shinyBS','GGally','shinyAce','knitr'), repos='https://cran.rstudio.com/')\""
    
    sudo su - \
    -c "R -e \"install.packages( c('rmarkdown','shinyjs' ), repos='https://cran.rstudio.com/')\""
    
    sudo R 
    
    source("https://bioconductor.org/biocLite.R")
    biocLite("Biobase")
    biocLite("Sushi")
    
    sudo systemctl restart shiny-server
    sudo systemctl kill -s HUP --kill-who=main shiny-server
    ## start /stop / status / enable /disable  
    
    
    

    mysql数据库的配置

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

    mysql -u root -p
    ## 登录进入mysql交互界面后,输入下面的mysql命令
    select user,host from mysql.user;
    create database test_db;
    grant all privileges on test_db.* to 'jmzeng'@'%' identified by 'test$'; 
    
    select user,host from mysql.user;
    flush privileges;
    
    mysql  -u jmzeng -p
    mysql -h 127.0.0.1 -u jmzeng -p
    mysql -h localhost -u jmzeng -p
    mysql -h 127.0.0.1 -u jmzeng -p 
    head /etc/mysql/my.cnf  
    head /etc/mysql/mysql.conf.d/mysqld.cnf
    netstat -an | grep 3306
    ps -Af | grep mysqld
    sudo systemctl status mysql
    ls -lh /var/run/mysqld 
    sudo systemctl restart  mysql
    

    安装Nginx

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

    #Shutting down apache2 first before installing nginx should fix this problem:
    sudo service apache2 stop
    # https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04
    ## 这个教程写明如何在16.04版本的ubuntu里面安装nginx
    # https://mediatemple.net/community/products/developer/204405534/install-nginx-on-ubuntu
    ## 这个教程写明如何把自己买的多个域名绑定到同一台主机的不同文件夹里面
    
    sudo apt-get update
    sudo apt-get install nginx
    sudo systemctl  start   nginx
    sudo systemctl status nginx
    ## list the applications configurations for the firewall 
    sudo ufw app list
    sudo ufw allow 'Nginx HTTP'
    sudo ufw status
    
    ## server's public IP address
    ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
    curl -4 icanhazip.com
    ls /etc/nginx
    ## sites-available  sites-enabled  snippets
    
    #给自己的shiny server设置域名:
    #https://www.r-statistics.com/2016/10/set-application-domain-name-with-shiny-server/
    #https://www.r-bloggers.com/shiny-server-series-part-1-setting-up/
    sudo ln -s /etc/nginx/sites-available/shiny.conf  /etc/nginx/sites-enabled/
    sudo systemctl restart nginx
    
    # https://www.datascienceriot.com/add-authentication-to-shiny-server-with-nginx/kris/
    
    

    安装JBrowser

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

    # 建立有写权限的目录
    sudo mkdir /var/www/jbrowse;
    sudo chown `whoami` /var/www/jbrowse;
    cd /var/www/jbrowse;
    # 下载最新的安装包
    curl -O http://jbrowse.org/releases/JBrowse-1.12.1.zip
    # 解压之后进入目录
    unzip JBrowse-x.x.x.zip
    cd JBrowse-x.x.x
    #运行目录内的setup.sh文件
    ./setup.sh
    
    127.0.0.1/jbrowse/JBrowse-1.12.1/index.html?data=sample_data/json/volvox
    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
    http://ju.outofmemory.cn/entry/162255

    paper:https://genomebiology.biomedcentral.com/articles/10.1186/s13059-016-0924-1
    安装指导: http://jbrowse.org/install
    jbrowse的wiki页面: http://gmod.org/wiki/JBrowse
    详细配置信息: http://gmod.org/wiki/JBrowse_Configuration_Guide
    quick-start tutorial:
    http://jbrowse.org/code/JBrowse-1.11.4/docs/tutorial/
    http://jbrowse.org/code/JBrowse-1.12.1/docs/tutorial/

    ref=/var/www/html/jbrowse/JBrowse-1.12.1/TF_data/raw/human_genome/hg38.fasta
    outDir=/var/www/html/jbrowse/JBrowse-1.12.1/TF_data/json/human
    rootDir=/var/www/html/jbrowse/JBrowse-1.12.1/bin/
    #$rootDir/prepare-refseqs.pl --fasta  $ref --out $outDir 
    #$rootDir/flatfile-to-json.pl --gff outfile.txt  --tracklabel  peaks --out $outDir
    #$rootDir/flatfile-to-json.pl --gff hg38.chr1.gff3 --tracklabel  chr1  --out $outDir
    perl -alne '{ print if $F[0] eq "chr18"}' hg38.gff3 >hg38.chr18.gff3
    $rootDir/flatfile-to-json.pl --gff hg38.chr18.gff3 --tracklabel  chr18  --out $outDir
    $rootDir/flatfile-to-json.pl --bed 2.bed  --tracklabel  test2 --out $outDir
    
    
    ftp://ftp.ncbi.nih.gov/refseq/H_sapiens/RefSeqGene/GCF_000001405.25_refseqgene_alignments.gff3
    ftp://ftp.ncbi.nlm.nih.gov/genomes/H_sapiens/ARCHIVE/ANNOTATION_RELEASE.105/GFF/ref_GRCh37.p13_top_level.gff3.gz
    
    
    http://127.0.0.1/jbrowse/JBrowse-1.12.1/TF_data/json/human/tracks/peaks/chr18/trackData.json 
    http://127.0.0.1/jbrowse/JBrowse-1.12.1/TF_data/raw/peaks/tmp.bed
    
    #https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04
    
    

    配置docker

    sudo apt-get update
    sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
    sudo apt-get update
    apt-cache policy docker-engine
    sudo apt-get install -y docker-engine
    sudo systemctl status docker
    ps -Af | grep docker
    
    
    sudo usermod -aG docker $(whoami)
    id $(whoami)
    #  you need to close you session in order to have the change taken into account.
    sudo usermod -aG docker jimmy 
    docker
    docker info
    docker version
    sudo docker search ubuntu
    sudo docker run hello-world
    docker images
    # http://blog.thoward37.me/articles/where-are-docker-images-stored/
    
    sudo docker pull taunometsalu/clustvis
    mkdir ~/customClustvis/
    cd ~/customClustvis/
    wget https://github.com/taunometsalu/ClustVis/archive/master.zip
    unzip master.zip
    docker run --help
    sudo docker run -d \
    --name customClustvis \
    -p  3840:3838 \
    -v ~/customClustvis/ClustVis-master/:/srv/shiny-server/:ro \
    taunometsalu/clustvis
    
    #To clear containers:
    docker rm -f $(docker ps -a -q)
    
    #To clear images:
    docker rmi -f $(docker images -a -q)
    
    #To clear volumes:
    docker volume rm $(docker volume ls -q)
    
    #To clear networks:
    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

    相关文章

      网友评论

        本文标题:如果有一个云服务器你会做什么?

        本文链接:https://www.haomeiwen.com/subject/pmhsaxtx.html