Installing Shinny & Rstudio Open Source over Nginx
Today I will install in Centos 7:
#create user useradd admin/crodriguez passwd xxxxxx vi /etc/sudoers #Add user to wheel group for admin priviledges gpasswd -a crodriguez wheel #Or make him kindoff rootie User privilege speficication ;) admin ALL=(ALL) ALL # From now remember to use the created user to run all commands # 0. If you have less than 8 GB RAM #lets make swap bigger in 1 GB sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 sudo /sbin/mkswap /var/swap.1 sudo /sbin/swapon /var/swap.1 sudo sh -c 'echo "/var/swap.1 swap swap defaults 0 0 " >> /etc/fstab' #Now we're over with the preparations. Lets begin with the installation # 1. Lets install NgNx #install EPEL release sudo yum install epel-release sudo yum install nginx #start the web server #in centos 7 sudo systemctl start nginx # if you're using any flavor of ubuntu # sudo /etc/init.d/nginx start # Leave it as a service once the server starts sudo systemctl enable nginx # review if directory was created /usr/share/nginx/html # 2. install R from EPEL sudo yum install R #3. Download and install Rstudio for RH/Centos #change the version number if there's a newer release :) wget http://download2.rstudio.org/rstudio-server-rhel-0.99.491-x86_64.rpm sudo yum install --nogpgcheck rstudio-server-rhel-0.99.491-x86_64.rpm #4. install "shinny" package from cran sudo su - -c "R -e \"install.packages('shiny', repos='http://cran.rstudio.com/')\"" #5. Download shiny RPM wget https://download3.rstudio.org/centos5.9/x86_64/shiny-server-1.4.1.759-rh5-x86_64.rpm #6. Install shiny RPM :) sudo yum install --nogpgcheck shiny-server-1.4.1.759-rh5-x86_64.rpm #7. review shiny server status sudo systemctl status shiny-server #8 Create a group for shinny server config and server running sudo groupadd shiny-apps sudo usermod -aG shiny-apps crodriguez sudo usermod -aG shiny-apps shiny #change server directory owner and permissions #replace crodriguez for your user cd /srv/ sudo chown --recursive crodriguez:shiny-apps shiny-server/ #Change mode to all stuff in the dir cd shiny-server/ sudo chmod g+w . sudo chmod g+s . #we're really changing permissions over some hard links. ( ls -l ) lrwxrwxrwx 1 crodriguez shiny-apps 38 Jan 28 15:55 index.html -> /opt/shiny-server/samples/welcome.html lrwxrwxrwx 1 crodriguez shiny-apps 37 Jan 28 15:55 sample-apps -> /opt/shiny-server/samples/sample-apps #TODO everythin in /srv/shiny-server will be served as an app #9. Config NGINX so we can use it as proxy for Rstudio and NGINX. For pretty URLs you know ;) sudo mkdir /etc/nginx/sites-available sudo mkdir /etc/nginx/sites-enabled #9.1 Include links to recently created config dirs in nginx.conf. # inside http{} block and before server{} block include the two lines *.conf and add some memory for server names domain sudo vi /etc/nginx/nginx.conf include /etc/nginx/sites-enabled/*.conf; server_names_hash_bucket_size 64; #9.2 Add virtual locations on http{} block location /shiny/ { proxy_pass http://127.0.0.1:3838/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /rstudio/{ proxy_pass http://127.0.0.1:8787/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } #10. restart Nginx sudo systemctl restart nginx #10.1 Install Rmarkdown # Two easy steps #rebuild yum cache ( just because we haven't done this yet ) sudo yum makecache fast #install libcurl / libcurl-devel y openssl openssl-devel sudo yum -y install libcurl libcurl-devel openssl openssl-devel #install R devtools sudo su - -c "R -e \"install.packages('devtools', repos='http://cran.rstudio.com/')\"" #install rmarkdown sudo su - -c "R -e \"install.packages('rmarkdown', repos='http://cran.rstudio.com/')\"" #11. If everything it's ok #verify installation whereis rstudio-server sudo rstudio-server verify-installation sudo rstudio-server status #Bonus. with devtools and git you can install packages from github but "git" its allways a nice thing to have :) sudo yum install git
No comments:
Post a Comment