4 Stimmen

Phusion Passenger Sub URI sym link Probleme

Ich bin Bereitstellen eines sub URI Schienen app auf Ubuntu mit Apache und Phusion Passenger zu

www.mydomain.com/suburi 

und habe Probleme, es zu konfigurieren. Im Moment erhalte ich diese Fehlermeldung:

Passenger Error #2
An error occurred while trying to access '/srv/www/mydomain/public/suburi': Cannot resolve possible symlink '/srv/www/mydomain/public/suburi': No such file or directory (2)

Sowohl die Rails-App für mydomain.com als auch die Rails-App für mydomain.com/suburi befinden sich in /srv/www/

Mein derzeitiger virtueller Host sieht folgendermaßen aus:

<VirtualHost 173.230.137.212:80> 
  ServerName www.mydomain.com
  ServerAlias mydomain.com
  DocumentRoot /srv/www/mydomain/public
  ErrorLog /srv/www/error.log
  RewriteEngine On
  RewriteOptions Inherit
  RailsEnv production

<directory /srv/www/mydomain/public>
  Options Indexes FollowSymLinks -MultiViews
  AllowOverride all
  Order allow,deny 
  allow from all
</directory>

RailsBaseURI /suburi                   
<Directory /srv/www/suburi>
  Options -MultiViews               
</Directory>

Ich weiß, dass die Pfade richtig sind, aber das ist das Einzige, von dem ich weiß, dass es richtig ist. Meine Serveradministrationskenntnisse sind nicht besonders gut.

Ich habe einen Sym-Link vom öffentlichen Ordner von mydomain.com zum öffentlichen Ordner der Unter-URI erstellt. Ich bin mir nicht sicher, ob ich das richtig gemacht habe, denn die Dokumentation ist nicht so toll. Gibt es etwas, das ich übersehe und/oder falsch mache? Habe ich die falsche Systemverknüpfung vorgenommen?

Ich wäre wirklich dankbar für jede Hilfe.

Oder wenn jemand eine bessere/einfachere Möglichkeit kennt, es mit einer Subdomain zu tun, wie subdomain.mywebsite.com, das würde auch funktionieren.

Dankeschön

2voto

Viktor Trón Punkte 8506

Wenn Sie suburi-s verwenden, dann

  1. <documentroot>/<suburi> soll auf das öffentliche Verzeichnis Ihrer Rails-App verweisen
  2. Das Root-Verzeichnis Ihrer Rails-App sollte ein Verzeichnis über dem Verzeichnis Ihrer öffentlichen Rails-App liegen.

Beides wird gelöst, wenn Sie ein eigenes öffentliches docroot für Ihre Domain haben und dann

ln -sf /path/to/suburi-rails-app/public <documentroot>/<suburi>

Die Dokumentation ist in der Tat nicht so toll. Ihre Lösung würde also lauten:

ln -sf /srv/www/suburi/public srv/www/mydomain/public/suburi

und die vhost conf:

<VirtualHost 173.230.137.212:80> 

  ServerName www.mydomain.com
  ServerAlias mydomain.com
  DocumentRoot /srv/www/mydomain/public
  ErrorLog /srv/www/error.log
  RewriteEngine On
  RewriteOptions Inherit
  RailsEnv production

  <Directory /srv/www/mydomain/public>
    Options FollowSymLinks -MultiViews
    AllowOverride all
    Order allow,deny 
    Allow from all
  </Directory>

  RailsBaseURI /suburi                   
  <Directory /srv/www/mydomain/public/suburi>
    Options -MultiViews               
  </Directory>

</VirtualHost> 

sagen Sie das: Sowohl die Rails-App für mydomain.com als auch die Rails-App für mydomain.com/suburi befinden sich in /srv/www/

Das hat mich etwas verwirrt. Ich glaube nicht, dass es eine gute Idee ist, eine Anwendung auf einer Domain und eine andere auf einer Suburi laufen zu lassen, da das Routing verwirrt werden kann. Verwenden Sie lieber 2 suburi-s, in diesem Fall tun

ln -sf /srv/www/suburi2/public srv/www/mydomain/public/suburi2

wobei /srv/www/suburi2 Ihr zweites Anwendungs-Root-Verzeichnis ist, und fügen Sie hinzu:

RailsBaseURI /suburi2                   
<Directory /srv/www/mydomain/public/suburi2>
  Options -MultiViews               
</Directory>

können Sie eine beliebige Anzahl von Suburis zum selben vhost hinzufügen.

Ich hoffe, das hat geholfen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X