2017-01-29 1 views
1

Je suis en train d'installer R Shiny Server sur mon exemple Amazon Linux AWS EC2 et je reçois l'erreur suivante:Shiny Server Erreur sur la page Web: Une erreur s'est produite L'application n'a pas pu démarrer. L'application est sortie lors de l'initialisation

Une erreur est survenue

L'application n'a pas pu démarrer.

L'application est sortie pendant l'initialisation.

J'ai fait un sudo-serveur brillant pour voir ce qui se passe et voir l'erreur EADDRINUSE:

$ sudo shiny-server 
[2017-01-29 13:21:22.724] [INFO] shiny-server - Shiny Server  v1.5.1.834 (Node.js v6.9.1) 
[2017-01-29 13:21:22.728] [INFO] shiny-server - Using config file "/etc/shiny-server/shiny-server.conf" 
[2017-01-29 13:21:22.764] [INFO] shiny-server - Starting listener on 0.0.0.0:80 
[2017-01-29 13:21:22.771] [ERROR] shiny-server - HTTP server error (0.0.0.0:80): listen EADDRINUSE 0.0.0.0:80 
[2017-01-29 13:21:22.771] [INFO] shiny-server - Shutting down worker processes 

J'ai vérifié que brillant, rmarkdown et, brillant serveur et R sont correctement installés sur mon exemple:

R --version 
R version 3.2.2 (2015-08-14) -- "Fire Safety" 
Copyright (C) 2015 The R Foundation for Statistical Computing 
Platform: x86_64-redhat-linux-gnu (64-bit) 

R is free software and comes with ABSOLUTELY NO WARRANTY. 
You are welcome to redistribute it under the terms of the 
GNU General Public License versions 2 or 3. 
For more information about these matters see 
http://www.gnu.org/licenses/. 

> library(shiny) 
> library(rmarkdown) 
> 

J'ai également vérifié la connexion réseau sur mon instance EC2:

$ sudo netstat --tcp -nlpa | grep 80 
tcp  0  0 0.0.0.0:80     0.0.0.0:*     LISTEN  1875/shiny-server 

Mon instance EC2 groupe de sécurité réseau:

$ aws ec2 describe-security-groups --group-name launch-wizard-7 
{ 
"SecurityGroups": [ 
    { 
     "IpPermissionsEgress": [ 
      { 
       "IpProtocol": "-1", 
       "PrefixListIds": [], 
       "IpRanges": [ 
        { 
         "CidrIp": "0.0.0.0/0" 
        } 
       ], 
       "UserIdGroupPairs": [], 
       "Ipv6Ranges": [] 
      } 
     ], 
     "Description": "launch-wizard-7 created 2017-01-28T14:22:51.817-05:00", 
     "IpPermissions": [ 
      { 
       "PrefixListIds": [], 
       "FromPort": 80, 
       "IpRanges": [ 
        { 
         "CidrIp": "0.0.0.0/0" 
        } 
       ], 
       "ToPort": 80, 
       "IpProtocol": "tcp", 
       "UserIdGroupPairs": [], 
       "Ipv6Ranges": [] 
      }, 

(il y a une autre entrée, mais que ssh dans ma propre machine donc je ne vais pas mettre cette information)

et voici mon fichier-server.conf brillant de /etc/shiny-server/shiny-server.conf

$ cat /etc/shiny-server/shiny-server.conf 
# Instruct Shiny Server to run applications as the user "shiny" 
run_as shiny; 

# Define a server that listens on port 3838 
server { 
    listen 3838; 

# Define a location at the base URL 
location/{ 

# Host the directory of Shiny Apps stored in this directory 
    site_dir /srv/shiny-server; 

# Log all Shiny output to files in this directory 
    log_dir /var/log/shiny-server; 

# When a user visits the base URL rather than a particular application, 
# an index of the applications available in this directory will be shown. 
    directory_index on; 
} 
} 

Toute aide serait vraiment appréciée. J'ai essayé de laisser AWS écouter la demande pour le port 80 pour toutes les adresses IP et pour le serveur brillant car je pensais que les deux services ne devraient peut-être pas écouter le même port mais cela n'a pas fonctionné. Je suis juste en train de déployer l'exemple d'application fourni avec le serveur brillant.

url: http://34.198.107.126/sample-apps/hello/

+0

Je suis également errant si mon groupe de sécurité AWS devrait permettre le trafic entrant pour le port 80 pour toutes les adresses IP et serveur brillant écouter le port 3838 ou l'inverse. – jonathan1987

Répondre

1

Nevermind, compris ce qu'elle était; tout était correctement configuré mais mes paquets r n'étaient pas installés en tant que root mais en tant qu'utilisateur ec2; l'installation en tant que root a fonctionné car les permissions des pages/dossiers sont principalement root.